From 3d66a47226621b9a09e46c21c695406ef7dc6d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Sun, 28 Sep 2025 13:26:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E8=BF=9E=E5=90=8E=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Room.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 50e2c1e..42f7389 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -2528,12 +2528,23 @@ class Room extends Model if(!$room_id){ $room_id = Db::name('vs_room_visitor')->where('user_id', $user_id)->order('id desc')->value('room_id'); } - $room = db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->find(); - if(!$room){ - $room_info = db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time()]); + //查询用户在几个房间 + $room = db::name('vs_room_visitor')->where('user_id', $user_id)->select(); + $room_list = []; + foreach ($room as $v){ + $room_list[] = $v['room_id']; + } + $count = count($room_list); + if($count <= 1 && $room_id == $room_list[0]){ + $room_info = db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time(),'remarks' =>'断线后重连']); if(!$room_info){ return ['code' => 0, 'msg' => '加入房间失败', 'data' => null]; } + }else{ + //退出除过最后一个房间 + for ($i = 0; $i < $count - 1; $i++){ + db::name('vs_room_visitor')->where('user_id', $user_id)->where('room_id', $room_list[$i])->delete(); + } } return ['code' => 1, 'msg' => '操作成功', 'data' => null]; }