params['user_id']; $level = $this->params['level'] ?? 1; $where= []; if(isset($this->params['keyword'])){ $where[] = ['sn|nickname','like','%'.$this->params['keyword'].'%']; } switch ($level){ case 1: $where[] = ['first_leader','=',$user_id]; break; case 2: $where[] = ['second_leader','=',$user_id]; break; } return $where; } public function extend(): array { $user_id = $this->params['user_id']; $statistics['first_count'] = User::where(['first_leader'=>$user_id])->count(); $statistics['second_count'] = User::where(['second_leader'=>$user_id])->count(); return $statistics; } /** * @notes 用户粉丝列表 * @return array * @author cjhao * @date 2021/9/11 15:16 */ public function lists(): array { $list = User::with('user_level') ->where($this->setSearch()) ->field('id,sn,nickname,level,first_leader,avatar,mobile,create_time,register_source') ->select()->toArray(); $userIds = array_column($list,'first_leader'); $userList = User::where(['id'=>$userIds])->column('nickname,avatar','id'); foreach ($list as $key => $user){ $list[$key]['leader_name'] = $userList[$user['first_leader']]['nickname'] ?? ''; $list[$key]['leader_avatar'] = $userList[$user['first_leader']]['avatar'] ?? ''; $list[$key]['register_source'] = UserTerminalEnum::getTermInalDesc($user['register_source']); } return $list; } /** * @notes 会员等级总数 * @return int * @author cjhao * @date 2021/7/28 15:52 */ public function count(): int { return User::where($this->setSearch())->count(); } }