This commit is contained in:
2025-12-02 11:51:49 +08:00
parent ef8b93c8d1
commit 2586346b73

View File

@@ -1048,7 +1048,7 @@ class Room extends Model
//麦位信息 //麦位信息
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left') $pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
->where(['a.room_id' => $room_id,'a.status' => 1]) ->where(['a.room_id' => $room_id,'a.status' => 1])
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code') ->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code,b.is_online')
->order('a.pit_number asc')->select(); ->order('a.pit_number asc')->select();
foreach ($pit_list as &$value) { foreach ($pit_list as &$value) {
$value['charm'] = 0; $value['charm'] = 0;
@@ -1455,23 +1455,6 @@ class Room extends Model
if ($label_type['code'] != 1) { if ($label_type['code'] != 1) {
return ['code' => 0, 'msg' => '房间不存在', 'data' => null]; return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
} }
//查询房间里面的用户
$room_user = db::name('vs_room_visitor')->where(['room_id' => $room_id])->select();
if($room_user){
foreach ($room_user as $vv){
if(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 1){
//不做处理
}else{
//查询是否有切后台的操作
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $room_id,'user_id' => $vv['user_id']])->find();
if(Db::name('user')->where('id', $vv['user_id'])->value('is_online') == 0 && !$bg_room){
model('Room')->quit_room($vv['user_id'], $room_id,$vv['user_id'],2);
}
}
}
}
$list = db::name('vs_room_visitor')->alias('a') $list = db::name('vs_room_visitor')->alias('a')
->join('user b', 'a.user_id = b.id') ->join('user b', 'a.user_id = b.id')
@@ -1482,11 +1465,12 @@ class Room extends Model
->page($page, $limit) ->page($page, $limit)
->select(); ->select();
if ($list) { if ($list) {
foreach ($list as &$v) { foreach ($list as $key => &$v) {
//判断用户的隐身状态,隐身用户且不在麦位上不显示 //判断用户的隐身状态,隐身用户且不在麦位上不显示
$hinde_status = db::name('user')->where('id', $v['user_id'])->value('hide_status'); $hinde_status = db::name('user')->where('id', $v['user_id'])->value('hide_status');
$on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $v['user_id']])->value('pit_number'); $on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $v['user_id']])->value('pit_number');
if ($hinde_status == 1 && !$on_pit) { if ($hinde_status == 1 && !$on_pit) {
unset($list[$key]); // 完全移除该用户
continue; continue;
} }
@@ -1502,6 +1486,9 @@ class Room extends Model
$v['role'] = $role['role']; $v['role'] = $role['role'];
$v['pit_number'] = $role['pit_number']; $v['pit_number'] = $role['pit_number'];
} }
// 重新索引数组以避免键名不连续的问题
$list = array_values($list);
//根据角色排序 房主>管理员>主持人>普通用户 //根据角色排序 房主>管理员>主持人>普通用户
usort($list, function ($a, $b) { usort($list, function ($a, $b) {
if ($a['role'] == $b['role']) { if ($a['role'] == $b['role']) {