From cc74849b2bbf387eb69f089885c6308944b4cf73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Mon, 22 Sep 2025 20:36:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E5=90=8E=E5=8F=B0=20=E5=9B=9E?= =?UTF-8?q?=E6=9D=A5=E5=90=8E=20=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Room.php | 8 ++++++++ application/api/model/Room.php | 18 ++++++++++++++++-- application/api/model/Tencent.php | 5 +---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/application/api/controller/Room.php b/application/api/controller/Room.php index 05f6e91..c56e057 100644 --- a/application/api/controller/Room.php +++ b/application/api/controller/Room.php @@ -443,4 +443,12 @@ class Room extends BaseCom // } // return['code' => 1, 'msg' => '成功创建了'.$i.'个房间', 'data' => null]; // } + + //用户重连 + public function user_reconnect() + { + $room_id = input('room_id', 0); + $reslut = model('Room')->user_reconnect($this->uid, $room_id); + return V($reslut['code'], $reslut['msg'], $reslut['data']); + } } \ No newline at end of file diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 4227f35..ed5805c 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -564,7 +564,7 @@ class Room extends Model //用户是否在其他房间 $room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->order('id desc')->value('room_id'); - if (isset($room_user) && $room_user != $room_id) { + if (isset($room_user) && $room_user != $room_id && $room_user != 0) { //根据所在房间状态判断是否要退出房间并且下麦 $roomInfo = db::name('vs_room')->where(['id' => $room_user,'apply_status' => 2])->find(); if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 1){ @@ -684,7 +684,7 @@ class Room extends Model if (!$is_join) { db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time()]); } - Db::name('user_data')->where('user_id', $user_id)->update(['room_id' => $room_id]); +// db::name('user_data')->where('user_id', $user_id)->update(['room_id' => $room_id]); $room['is_use_code'] = 0; $liang = model('api/Decorate')->user_decorate_detail($room['id'],7); @@ -2507,4 +2507,18 @@ class Room extends Model } return ['code' => 1, 'msg' => '操作成功', 'data' => $list]; } + + //用户重连 + public function user_reconnect($user_id,$room_id) + { + if(!$room_id){ + $room_id = Db::name('vs_room_visitor')->where('user_id', $user_id)->order('id desc')->value('room_id'); + } + + $room_info = db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time()]); + if(!$room_info){ + return ['code' => 0, 'msg' => '加入房间失败', 'data' => null]; + } + return ['code' => 1, 'msg' => '操作成功', 'data' => null]; + } } \ No newline at end of file diff --git a/application/api/model/Tencent.php b/application/api/model/Tencent.php index 3c076ad..e89d39e 100644 --- a/application/api/model/Tencent.php +++ b/application/api/model/Tencent.php @@ -940,10 +940,7 @@ class Tencent extends Model } elseif ($action == 'Login') { Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]); $room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id'); - if(!$room){ - $room = db::name('user_data')->where(['user_id' => $uid])->value('room_id')??0; - db::name('vs_room_visitor')->insert(['room_id' => $room, 'user_id' => $uid, 'createtime' => time()]); - } + $text['text'] = '重新上线!'; $text['user_id'] = $uid; $text['type'] = 1;