|
@@ -114,8 +114,10 @@ class RoomService
|
|
|
$roomTypeStr = isset($this->roomTypeArr[$roomType]) ? $this->roomTypeArr[$roomType] : '';
|
|
|
$getredisPartyInfo = $this->redis->get($roomTypeStr.'_'.$v['id']);
|
|
|
$foreachData = json_decode($getredisPartyInfo,true);
|
|
|
- if(!$foreachData || $foreachData["is_close"] == 1) continue;
|
|
|
- if(!$foreachData || $foreachData["party_pass"] != '') continue;
|
|
|
+ $isClose = isset($foreachData["is_close"]) ? $foreachData["is_close"] : 0;
|
|
|
+ $partyPass = isset($foreachData["party_pass"]) ? $foreachData["party_pass"] : '';
|
|
|
+ if(!$foreachData || $isClose == 1) continue;
|
|
|
+ if(!$foreachData || $partyPass != '') continue;
|
|
|
$mod = isset($foreachData["party_type"])?intval($foreachData["party_type"])%5:1;
|
|
|
if(isset($foreachData["type_name"]) && $foreachData["type_name"]) {
|
|
|
$type_name = $foreachData["type_name"];
|
|
@@ -135,19 +137,40 @@ class RoomService
|
|
|
}
|
|
|
if($foreachData["status"] != 1) $hasdata = false;
|
|
|
$foreachData = info_domain_image($foreachData,['party_logo']);
|
|
|
- $hasdata && $redisPartyInfo[] = [
|
|
|
- "id" => $foreachData["id"],
|
|
|
- "party_id" => $foreachData["party_id"],
|
|
|
- "r_id" => $foreachData["party_id"],
|
|
|
- "party_name" => $foreachData["party_name"],
|
|
|
- "party_pass" => $foreachData["party_pass"] ? $foreachData["party_pass"]:"",
|
|
|
- "party_hot" => $v['party_hot'],
|
|
|
- "party_logo" => $foreachData["party_logo"],
|
|
|
- "party_type" => $type_name,
|
|
|
- "avatar" => $roomType == 2 ? $foreachData["avatar"]:"",
|
|
|
- "party_type_color" => $mod == 0?5:$mod,
|
|
|
- "party_user" => isset($foreachData["party_user"]) ? array_values($foreachData["party_user"]) : []
|
|
|
- ];
|
|
|
+ $userIds = $this->redis->zRange("party_user_".$foreachData["id"],0,-1);
|
|
|
+ if ($hasdata) {
|
|
|
+ $field = 'id,avatar';
|
|
|
+ $fieldArr = explode(',',$field);
|
|
|
+ $userWhere['id'] = ['in', $userIds];
|
|
|
+ $userModel = new \app\common\model\User();
|
|
|
+ $userData = $userModel->field($field)->where($userWhere)->select();
|
|
|
+ $userDatas = [];
|
|
|
+ if (!empty($userData)) {
|
|
|
+ foreach($userData as $key => $value) {
|
|
|
+ foreach ($fieldArr as $fieldk => $fieldv) {
|
|
|
+ $userDatas[$key][$fieldv] = $value[$fieldv];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $userDatas = list_domain_image($userDatas,['avatar']);
|
|
|
+ }
|
|
|
+ $partyUserList = [
|
|
|
+ 'user_list' => $userDatas,
|
|
|
+ 'online_num' => count($userData),
|
|
|
+ ];
|
|
|
+ $redisPartyInfo[] = [
|
|
|
+ "id" => $foreachData["id"],
|
|
|
+ "party_id" => $foreachData["party_id"],
|
|
|
+ "r_id" => $foreachData["party_id"],
|
|
|
+ "party_name" => $foreachData["party_name"],
|
|
|
+ "party_pass" => $foreachData["party_pass"] ? $foreachData["party_pass"]:"",
|
|
|
+ "party_hot" => $v['party_hot'],
|
|
|
+ "party_logo" => $foreachData["party_logo"],
|
|
|
+ "party_type" => $type_name,
|
|
|
+ "avatar" => $roomType == 2 ? $foreachData["avatar"]:"",
|
|
|
+ "party_type_color" => $mod == 0?5:$mod,
|
|
|
+ "party_user" => $partyUserList,
|
|
|
+ ];
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if($index == 1) {
|