|
@@ -329,19 +329,76 @@ class Party extends Common
|
|
|
|
|
|
/**
|
|
|
* 获取派对列表排序
|
|
|
- * getPartyRankList改的,少传入了room_type,所有room_type的都给返回了
|
|
|
*/
|
|
|
public function getPartyList() {
|
|
|
- $thispage = input('page',1,"intval"); // 当前页数
|
|
|
- $pagenum = input('listrow',10,"intval"); // 每页显示条数0=不做分页
|
|
|
- $type_id = 0; //input('type_id'); // 派对类型
|
|
|
- $is_recommend = input('is_recommend',0); // 推荐0=否1=是
|
|
|
- $all = 1; //input('all'); // 全部分类0=否1=是
|
|
|
- $index = input('index',0); // 全部分类0=否1=是
|
|
|
+ $order = input('orderby','new');
|
|
|
|
|
|
- $start = ($thispage-1)*$pagenum;
|
|
|
- $end = $start+($pagenum-1);
|
|
|
+ $this->reset_all_party();
|
|
|
+
|
|
|
+ //
|
|
|
+ $orderby = 'party.party_hot desc, party.id desc';
|
|
|
+ $where = [];
|
|
|
+
|
|
|
+ if($order == 'recommend'){
|
|
|
+ $where['party.is_recommend'] = 1;
|
|
|
+ }
|
|
|
+ if($order == 'follow'){
|
|
|
+ $follow_party_ids = Db::name('party_follow')->where('user_id',$this->auth->id)->column('party_id');
|
|
|
+ $where['party.id'] = ['IN',$follow_party_ids];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $where['party.status'] = 1; //正常
|
|
|
+ $where['party.is_online'] = 1; //在线
|
|
|
+ $where['party.is_close'] = 0; //未关闭
|
|
|
+
|
|
|
+ $field = 'party.id,party.room_type,party.party_id,party.party_name,party.party_hot,party.party_logo,party.party_pass,party.party_type,party.easemob_room_id,type.name as type_name';
|
|
|
+ $list = Db::name('party')->alias('party')
|
|
|
+ ->join('party_type type','party.party_type = type.id','LEFT')
|
|
|
+ ->field($field)->where($where)->order($orderby)->select();
|
|
|
+ if (!empty($list)) {
|
|
|
+
|
|
|
+ $roomService = new RoomService();
|
|
|
+
|
|
|
+ foreach($list as $k => $v) {
|
|
|
+
|
|
|
+ $mod = isset($v["party_type"]) ? intval($v["party_type"])%5 : 1;
|
|
|
|
|
|
+ //房间用户列表
|
|
|
+ $userDataResult = $roomService->getPartyUserList(['party_id'=>$v['id']]);
|
|
|
+ $userDataRes = isset($userDataResult['data']) ? $userDataResult['data'] : [];
|
|
|
+ $userData = isset($userDataRes['member_list']) ? $userDataRes['member_list'] : [];
|
|
|
+ $userDatas = [];
|
|
|
+ if (!empty($userData)) {
|
|
|
+ $userDatas = $userData;
|
|
|
+ $userDatas = list_domain_image($userDatas,['avatar']);
|
|
|
+ }
|
|
|
+ $partyUserList = [
|
|
|
+ 'user_list' => $userDatas,
|
|
|
+ 'online_num' => count($userData),
|
|
|
+ ];
|
|
|
+
|
|
|
+ $resdata[] = [
|
|
|
+ "id" => $v["id"],
|
|
|
+ "room_type" => $v['room_type'],
|
|
|
+ "party_id" => $v["party_id"],
|
|
|
+ "r_id" => $v["party_id"],
|
|
|
+ "party_name" => $v["party_name"],
|
|
|
+ "party_pass" => $v["party_pass"] ? $v["party_pass"]:"",
|
|
|
+ "party_hot" => $v['party_hot'],
|
|
|
+ "party_logo" => $v["party_logo"],
|
|
|
+ "party_type" => $v['type_name'],
|
|
|
+ "party_type_color" => $mod == 0?5:$mod,
|
|
|
+ "party_user" => $partyUserList,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->success("获取成功!",$list);
|
|
|
+ }
|
|
|
+
|
|
|
+ private function reset_all_party(){
|
|
|
//rediskey:派对热度
|
|
|
$redisPartyRankList = $this->redis->zRevRange("partyRank",0,-1,true);
|
|
|
//rediskey:派对热度
|
|
@@ -358,30 +415,6 @@ class Party extends Common
|
|
|
$roomLiveRes = $roomService->roomRedis($roomParams);
|
|
|
$redisLiveRankList = $roomLiveRes['data'];
|
|
|
}
|
|
|
- $redisRoomListIds = [];
|
|
|
- $partyIds = !empty($redisPartyRankList) ? array_keys($redisPartyRankList) : [];
|
|
|
- $liveIds = !empty($redisLiveRankList) ? array_keys($redisLiveRankList) : [];
|
|
|
- $redisRoomListIds = array_merge($redisRoomListIds,$partyIds,$liveIds);
|
|
|
- if(!empty($redisRoomListIds)) {
|
|
|
- $roomListParams = [
|
|
|
- 'ids' => $redisRoomListIds,
|
|
|
- 'type_id' => $type_id,
|
|
|
- 'is_recommend' => $is_recommend,
|
|
|
- 'all' => $all,
|
|
|
- 'start' => $start,
|
|
|
- 'end' => $end,
|
|
|
- 'index' => $index,
|
|
|
- ];
|
|
|
- $resultInfo = $roomService->getRoomList($roomListParams);
|
|
|
- if (!$resultInfo['status']) {
|
|
|
- $this->error($resultInfo['msg']);
|
|
|
- }
|
|
|
- }
|
|
|
- if (!isset($resultInfo['data'])) {
|
|
|
- $resultInfo['data'] = [];
|
|
|
- }
|
|
|
- $this->success("获取成功!",$resultInfo['data']);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|