diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 5f59b21..10c3f18 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -579,48 +579,6 @@ 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 && $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){ -// //退出其他房间 -// $this->quit_room($user_id, $room_user,$user_id); -// }elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 2){//k歌 -// //他的点歌列表 -// $song_list = db::name('vs_room_song')->where(['room_id' => $room_user, 'user_id' => $user_id])->select(); -// if(count($song_list) > 0){ -// foreach ($song_list as $value){ -// if($value['status'] == 2 && $value['times_status'] == 1){ -// //切歌 -// model('api/RoomSong')->change_song($room_id,$value['did']); -// } -// if($value['status'] == 1){ -// db::name('vs_room_song')->where(['did' => $value['did']])->update(['status' => 3]); -// } -// } -// } -// //记录用户退出房 -// $this->quit_room($user_id, $room_user,$user_id); -// }elseif($roomInfo['type_id'] == 2){ -// //是否在拍卖位 -// $pitNumber = Cache::get('auction_user_'.$room_user); -// if(isset($pitNumber) && $pitNumber == $user_id){ -// //用户在竞拍位 退出且不下麦 -// //记录用户退出房 -// db::name('vs_room_visitor')->where(['room_id' => $room_user, 'user_id' => $user_id])->delete(); -// $nickname = db::name('user')->where('id', $user_id)->value('nickname'); -// $text['text'] = '用户 ' . $nickname .' 退出了房间'; -// model('api/Chat')->sendMsg(1002,$room_user,$text,$user_id); -// }else{ -// //退出其他房间 -// $this->quit_room($user_id, $room_user,$user_id); -// } -// } -// -// } - //用户是否在其他房间(重构) //1:其他房间游戏中不让退出 给前端返回房间ID, //2:允许退出,强行退出…… @@ -644,6 +602,20 @@ class Room extends Model $room_name = db::name('vs_room')->where(['id' => $room_user])->value('room_name'); return ['code' => 202, 'msg' => '您在'.$room_name .'房间游戏中,不支持进入新房间', 'data' => ['room_id' => $room_user,'msg'=>'您在'.$room_name .'房间游戏中,不支持进入新房间']]; }else{ + //他的点歌列表 + $song_list = db::name('vs_room_song')->where(['room_id' => $room_user, 'user_id' => $user_id])->select(); + if(count($song_list) > 0){ + foreach ($song_list as $value){ + if($value['status'] == 2 && $value['times_status'] == 1){ + //切歌 + model('api/RoomSong')->change_song($room_id,$value['did']); + } + if($value['status'] == 1){ + db::name('vs_room_song')->where(['did' => $value['did']])->update(['status' => 3]); + } + } + } + //用户退出房 $this->quit_room($user_id, $room_user,$user_id); } } @@ -1236,7 +1208,7 @@ class Room extends Model $apply_type = 1; }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){ $apply_type = 2; - }elseif ($room_type == 7){//交友房 再开始阶段在麦位上不下麦 + }elseif ($room_type == 7){//互娱房 再开始阶段在麦位上不下麦 $apply_type = 3; }elseif($room_type == 6 && $room_label == 5){ //交友私密屋 $apply_type = 4; @@ -1272,6 +1244,11 @@ class Room extends Model $text['pit_number'] = ''; model('api/Chat')->sendMsg(1004,$room_id,$text); } + //获取拍卖位信息 + $auction_id = $catdc = Cache::get('auction_user_'.$room_id); + if($auction_id == $user_id){ + return ['code' => 0, 'msg' => '正在拍卖中,不能退出', 'data' => null]; + } }elseif ($apply_type == 3){ $roomInfoStep = db::name('vs_room')->where(['id' => $room_id])->value('step'); $room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find(); @@ -1279,6 +1256,8 @@ class Room extends Model if (isset($room_pit)) { model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']); } + }else{ + return ['code' => 0, 'msg' => '互娱游戏麦不能退出', 'data' => null]; } }elseif ($apply_type == 4){ model('api/Friend')->outRoom($uid, $room_id);