diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 2365423b..b19216c0 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1824,8 +1824,8 @@ class Room extends Model // 第一页特殊处理,显示麦上用户 if ($page == 1) { $onPitUser = db::name('vs_room_visitor')->alias('a') -// ->join('user b', 'a.user_id = b.id','left') -// ->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit') + ->join('user b', 'a.user_id = b.id','left') + ->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit') ->where(['a.room_id' => $room_id,'a.is_onpit' => 0])//is_onpit:1-未上麦,0-已上麦 ->select(); if(!empty($onPitUser)){ @@ -1844,6 +1844,7 @@ class Room extends Model } unset($v); // 释放引用 $lists['on_pit'] = $onPitUser; + $onPitUserIds = array_column($lists['on_pit'], 'user_id'); } } @@ -1856,9 +1857,9 @@ class Room extends Model $needOffPitCount = $limit - $onPitCount; if ($needOffPitCount > 0) { $offPitUser = db::name('vs_room_visitor')->alias('a') -// ->join('user b', 'a.user_id = b.id','left') -// ->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit') - ->where(['a.room_id' => $room_id,'a.is_onpit' => 1]) // 非隐身且未上麦 + ->join('user b', 'a.user_id = b.id','left') + ->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit') + ->where(['a.room_id' => $room_id,'b.hide_status' => 0,'a.is_onpit' => 1,'a.user_id' => ['not in', empty($onPitUserIds) ? [0] : $onPitUserIds]]) // 非隐身且未上麦 ->limit(0, $needOffPitCount) ->order('a.id', 'desc') ->select(); @@ -1889,9 +1890,9 @@ class Room extends Model $offset = max(0, $offset); $offPitUser = db::name('vs_room_visitor')->alias('a') -// ->join('user b', 'a.user_id = b.id','left') -// ->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit') - ->where(['a.room_id' => $room_id,'a.is_onpit' => 1]) // 非隐身且未上麦 + ->join('user b', 'a.user_id = b.id','left') + ->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit') + ->where(['a.room_id' => $room_id,'b.hide_status' => 0,'a.is_onpit' => 1,'a.user_id' => ['not in', empty($onPitUserIds) ? [0] : $onPitUserIds]]) // 非隐身且未上麦 ->limit($offset, $limit) ->order('a.id', 'desc') ->select();