From 28751fea44db1f193fe9443c56a489224072965d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Fri, 12 Dec 2025 17:56:26 +0800 Subject: [PATCH] =?UTF-8?q?bug=20=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Room.php | 2 +- application/api/controller/Sign.php | 3 +++ application/api/model/Room.php | 2 +- application/api/model/Sign.php | 6 ++++++ application/cron/controller/PerformPerSecond.php | 6 +++--- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/application/api/controller/Room.php b/application/api/controller/Room.php index 55fb3608..d0b6ecc2 100644 --- a/application/api/controller/Room.php +++ b/application/api/controller/Room.php @@ -222,7 +222,7 @@ class Room extends BaseCom { $room_id = input('room_id', 0); $page = input('page', 1); - $limit = input('limit', 5); + $limit = input('limit', 15); $reslut = model('Room')->room_online_list($room_id, $page, $limit); return V($reslut['code'], $reslut['msg'], $reslut['data']); } diff --git a/application/api/controller/Sign.php b/application/api/controller/Sign.php index 486e722e..a1470dc4 100644 --- a/application/api/controller/Sign.php +++ b/application/api/controller/Sign.php @@ -38,12 +38,15 @@ class Sign extends BaseCom //签约开始 public function start_sign() { + $key_name = "api:sign:start_sign:" . $this->uid; + redis_lock_exit($key_name); $room_id = input('room_id', 0); $user_id = input('user_id', 0); if ($room_id <= 0 || $user_id <= 0) { return V(0, '参数错误'); } $reslut = model('Sign')->start_sign($this->uid, $room_id, $user_id); + redis_unlock($key_name); return V($reslut['code'], $reslut['msg'], $reslut['data']); } diff --git a/application/api/model/Room.php b/application/api/model/Room.php index fca933cd..5ac94a27 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1778,7 +1778,7 @@ class Room extends Model //房间在线列表 - public function room_online_list($room_id, $page = 1, $limit = 5) + public function room_online_list($room_id, $page = 1, $limit = 15) { if (!$room_id) { return ['code' => 0, 'msg' => '参数错误']; diff --git a/application/api/model/Sign.php b/application/api/model/Sign.php index 6fdba622..8e9322f6 100644 --- a/application/api/model/Sign.php +++ b/application/api/model/Sign.php @@ -26,6 +26,12 @@ class Sign extends Model return ['code' => 0, 'msg' => '签约麦位没有用户', 'data' => null]; } + //判断房间内是否有正在签约的 + $is_sign = db::name('vs_room_sign')->where(['room_id' => $room_id,'sign_type' => 1])->count(); + if($is_sign > 0){ + return ['code' => 0, 'msg' => '房间内已有签约', 'data' => null]; + } + $is_first_sign = db::name('vs_user_sign')->where('sign_user_id',$sign_user_id)->count(); if($is_first_sign < 1){ //第一次被签默认时长 diff --git a/application/cron/controller/PerformPerSecond.php b/application/cron/controller/PerformPerSecond.php index 00f74011..184400c8 100644 --- a/application/cron/controller/PerformPerSecond.php +++ b/application/cron/controller/PerformPerSecond.php @@ -347,9 +347,9 @@ class PerformPerSecond //签约房时间结束处理和签约到期处理 public function sign_room_time_end(){ - $res = Db::name('vs_room_sign')->where('sign_type',1)->select(); - if($res){ - foreach ($res as $value){ + $ress = Db::name('vs_room_sign')->where('sign_type',1)->select(); + if($ress){ + foreach ($ress as &$value){ if($value['end_time'] <= time()){ model('api/Sign')->end_sign(0,$value['room_id'],$value['id'],$value['sign_user_id'],0); }