memberGroup = $memberGroup; $this->memberGroupInfo = $memberGroupInfo; } /** * @param $request * @return array * 获取推荐用户 */ public function isSuggestMember($request){ $userInfo = $this->getUserInfo(); if (empty($userInfo)) { return jsonError('获取用户信息失败'); } $group = $this->memberGroup->where('is_suggest',1)->first(); $take = 50; if(!empty($request['take_count'])){ $take = $request['take_count']; } if($group){ $ids = $this->memberGroupInfo ->where('member_group_id',$group->id) ->orderBy('sort') ->take($take) ->pluck('uid') ->toArray(); if($ids){ $data = []; foreach($ids as $uid){ $user = Redis::HGETALL('userInfo:'.$uid); if(!$user){ $user = $this->userInfo($uid); } if($user){ $topics = Redis::zrevrange('topic.user_uid' . $user['uid'], 0, 2, 'withscores'); $names = []; foreach($topics as $key => $item){ $topicNameArray = Redis::ZRANGEBYSCORE('topic.name', $key, $key); if($topicNameArray){ $names[] = reset($topicNameArray); } } $data[] = [ 'uid' => intval($user['uid']), 'username' => subtext($user['username'], 10), 'avatar' => $user['avatar'], 'follow_status' => $this->getFollowStatus($userInfo['uid'], $user['uid']), 'follow_topic' => $names, 'topic_name' => $names[0]??'', ]; } } return jsonSuccess(['list'=>$data]); } } return jsonSuccess(); } }