belongsTo('app\\common\\model\\user\\User'); } /** * 关联队长用户表 */ public function bonus() { return $this->belongsTo('app\\common\\model\\plus\\bonus\\User')->where('is_delete', '=', 0); } /** * 关联队长用户表 */ public function bonus1() { return $this->belongsTo('app\\common\\model\\plus\\bonus\\User', 'bonus_id')->where('is_delete', '=', 0); } /** * 获取上级用户id */ public static function getRefereeUserId($user_id, $level, $is_team = false) { $bonus_id = (new self)->where(compact('user_id', 'level')) ->value('bonus_id'); if (!$bonus_id) return 0; return $is_team ? (User::isBonusUser($bonus_id) ? $bonus_id : 0) : $bonus_id; } /** * 获取我的团队列表 */ public function getList($user_id, $level = -1) { $userIds=$this->getBonusUserIds($user_id); $model = new UserModel(); $ids = implode(",", $userIds); return $model->where('is_delete', '=', 0) ->where('user_id', 'in', $userIds) ->order(['create_time' => 'desc']) ->paginate(15); } /** * 获取队长的所有队员 */ public function getBonusUserIds($user_id) { $agentRefereeModel=new agentRefereeModel(); //获取下级团队成员ID集 $user_ids=$agentRefereeModel->getBonusUserIds($user_id, 1); $teamUserIds=array(); $cengji=0; while ($cengji<=10) { $cengji++; if(!empty($user_ids)){ $old=$user_ids; $new=array(); foreach($old as $key=>$value){ $teamUserIds[]=$value; $user_ids=$agentRefereeModel->getBonusUserIds($value, 1); $new=array_merge($new,$user_ids); } $user_ids=$new; }else{ break; } } return $teamUserIds; } /** * 创建分红层级关系 */ public static function createRelation($user_id, $referee_id) { $user = UserModel::detail($user_id); // 分红基本设置 $setting = Setting::getItem('basic', $user['app_id']); // 是否开启分红功能 if (!$setting['is_open']) { return false; } // 自分享 // if ($user_id == $referee_id) { // return false; // } // # 记录一级推荐关系 // 判断当前用户是否已存在推荐关系 // if (self::isExistReferee($user_id)) { // return false; // } // 判断推荐人是否为分销商 // if (!User::isBonusUser($referee_id)) { // return false; // } // 新增关系记录 $model = new self; $model->add($referee_id, $user_id, 1); return true; } /** * 新增关系记录 */ private function add($bonus_id, $user_id, $level = 1) { $user = UserModel::detail($user_id); // 新增推荐关系 $app_id = $user['app_id']; $create_time = time(); $this->insert(compact('bonus_id', 'user_id', 'level', 'app_id', 'create_time')); return true; } }