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')
->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();
foreach ($pit_list as &$value) {
$value['charm'] = 0;
@@ -1455,23 +1455,6 @@ class Room extends Model
if ($label_type['code'] != 1) {
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')
->join('user b', 'a.user_id = b.id')
@@ -1482,11 +1465,12 @@ class Room extends Model
->page($page, $limit)
->select();
if ($list) {
foreach ($list as &$v) {
foreach ($list as $key => &$v) {
//判断用户的隐身状态,隐身用户且不在麦位上不显示
$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');
if ($hinde_status == 1 && !$on_pit) {
unset($list[$key]); // 完全移除该用户
continue;
}
@@ -1502,6 +1486,9 @@ class Room extends Model
$v['role'] = $role['role'];
$v['pit_number'] = $role['pit_number'];
}
// 重新索引数组以避免键名不连续的问题
$list = array_values($list);
//根据角色排序 房主>管理员>主持人>普通用户
usort($list, function ($a, $b) {
if ($a['role'] == $b['role']) {