From ed5488699f469427e098da5987d646cde6bcd83c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 15 Oct 2025 19:16:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A2=E7=BA=A2=E5=8C=85=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E6=8F=90=E7=A4=BA=E8=AF=AD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/RedpacketService.php | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/application/common/service/RedpacketService.php b/application/common/service/RedpacketService.php index db1aa65..568f3a9 100644 --- a/application/common/service/RedpacketService.php +++ b/application/common/service/RedpacketService.php @@ -595,10 +595,37 @@ class RedpacketService */ private function checkUserOnMic($userId,$roomId) { - $onPit = Db::name('vs_room_pit')->where(['user_id' => $userId,'room_id' => $roomId])->value('pit_number'); - if ($onPit <= 0){ - return false; + $room_type = Db::name('vs_room')->where('id',$roomId)->field('type_id,label_id'); + //实际麦位 + if($room_type['type_id'] == 1 || $room_type['type_id'] == 7 || $room_type['type_id'] == 8){ + $onPit = Db::name('vs_room_pit')->where(['user_id' => $userId,'room_id' => $roomId])->value('pit_number'); + if ($onPit <= 0){ + return false; + } + }elseif($room_type['type_id'] ==2){//拍卖 + //获取房间的当前拍卖ID + $auctionId = Db::name('vs_room_auction')->where(['room_id' => $roomId,'status' => 2])->value('auction_id'); + $onPit = []; + if($auctionId){ + $onPits = model('api/RoomAuction')->room_auction_list_on($auctionId); + //提取数组里面的user_id的值 来判断用户是否在里面 + $onPit = array_column($onPits,'user_id'); + //拍卖位 从缓存中取 Cache::get('auction_user_'.$room_id) + $onpitNumber_10 = Cache::get('auction_user_'.$roomId); + if($onpitNumber_10){ + $onPit[] = $onpitNumber_10; + } + } + $onpitNumber_9 = Db::name('vs_room_pit')->where(['pit_number' => 9,'room_id' => $roomId])->value('user_id'); + if($onpitNumber_9){ + $onPit[] = $onpitNumber_9; + } + + if (!in_array($userId,$onPit)){ + return false; + } } + return true; }