From 9566409a0c38f2f376ad92df076976e511f2b4eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Sat, 16 Aug 2025 11:29:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E5=8F=8B=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Room.php | 2 +- application/api/controller/RoomPit.php | 24 ++++++------- application/api/model/Friend.php | 30 ++++++++++++++++ application/api/model/Room.php | 16 +++++++-- application/api/model/RoomPit.php | 50 +++++++++++++++++++++++--- 5 files changed, 102 insertions(+), 20 deletions(-) create mode 100644 application/api/model/Friend.php diff --git a/application/api/controller/Room.php b/application/api/controller/Room.php index 02f7955..2f76512 100644 --- a/application/api/controller/Room.php +++ b/application/api/controller/Room.php @@ -260,7 +260,7 @@ class Room extends BaseCom public function change_room_type() { $room_id = input('room_id', 0); - $type = input('type', 1);//1-点唱,2-拍卖,3-男神,4-女神 + $type = input('type', 1);//1-点唱,2-拍卖,3-男神,4-女神,7-交友 $reslut = model('Room')->change_room_type($this->uid, $room_id, $type); return V($reslut['code'], $reslut['msg'], $reslut['data']); } diff --git a/application/api/controller/RoomPit.php b/application/api/controller/RoomPit.php index 13ddac0..14957c5 100644 --- a/application/api/controller/RoomPit.php +++ b/application/api/controller/RoomPit.php @@ -19,21 +19,21 @@ class RoomPit extends BaseCom if($res['code'] != 1){ return V(0, '房间不存在', null); } - //查询房间主持麦有人吗 - $room_host_info = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id'); - //房主,管理,主持不受此限制 - $room_owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $this->uid])->find(); - //管理 - $room_manager = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $this->uid,'type' => 2,'delete_time' => null])->find(); - //主持 - $room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $this->uid,'type' => 1,'delete_time' => null])->find(); - if($room_host_info == 0 && !$room_owner && !$room_manager && !$room_host){ - return V(0, '上麦请联系主持', null); - } +// //查询房间主持麦有人吗 +// $room_host_info = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id'); +// //房主,管理,主持不受此限制 +// $room_owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $this->uid])->find(); +// //管理 +// $room_manager = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $this->uid,'type' => 2,'delete_time' => null])->find(); +// //主持 +// $room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $this->uid,'type' => 1,'delete_time' => null])->find(); +// if($room_host_info == 0 && !$room_owner && !$room_manager && !$room_host){ +// return V(0, '上麦请联系主持', null); +// } $room_label = $res['data']['label_id']; $room_type = $res['data']['type_id']; - if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4))|| $room_type == 2){ + if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4))|| $room_type == 2 || $room_type == 7){ $reslut = model('RoomPit')->apply_pit($this->uid, $room_id,$pit_number); }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){ $reslut = model('RoomSong')->apply_kpit($this->uid, $room_id,$pit_number); diff --git a/application/api/model/Friend.php b/application/api/model/Friend.php new file mode 100644 index 0000000..b0c3563 --- /dev/null +++ b/application/api/model/Friend.php @@ -0,0 +1,30 @@ +give_gift($uid, $to_uid, $gift_id, $gift_num,$from_type,$type, $room_id,$pit_number); + if($res['code'] != 1){ + return $res; + } + //送礼成功后续操作 + // + + } +} \ No newline at end of file diff --git a/application/api/model/Room.php b/application/api/model/Room.php index af84228..0e174a0 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1247,6 +1247,8 @@ class Room extends Model return $res; }elseif($label_type['data']['type_id'] == 6){ return model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,6,$type, $room_id,$pit_number); + }elseif($label_type['data']['type_id'] == 7){ + return model('Friend')->room_give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number); }else{ $res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number); return $res; @@ -1648,12 +1650,12 @@ class Room extends Model foreach ($list as $v){ //清除有魅力值的用户 if(db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->find()){ - db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->update(['charm' => 0]); + db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->update(['charm' => 0,'clear_time' => time()]); } } } }else{ - $dd = db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $uid])->update(['charm' => 0]); + $dd = db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $uid])->update(['charm' => 0,'clear_time' => time()]); } //发送消息 $text['text'] = '清除魅力成功'; @@ -1693,6 +1695,14 @@ class Room extends Model 'is_song' => 1 ]; } + //交友房 + if($type == 7){ + $data = [ + 'label_id' => 5, + 'type_id' => $type, + 'room_up_pit_type' => 1, + ]; + } $res = db::name('vs_room')->where(['id' => $room_id])->update($data); if(!$res){ @@ -1734,7 +1744,7 @@ class Room extends Model } if($type == 2){ //清除房间此前的魅力值 - db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0]); + db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0,'clear_time' => time()]); //10号麦有人就下去 $pit_10 = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 10])->find(); if($pit_10 && $pit_10['user_id'] > 0){ diff --git a/application/api/model/RoomPit.php b/application/api/model/RoomPit.php index 6876605..92bfa5b 100644 --- a/application/api/model/RoomPit.php +++ b/application/api/model/RoomPit.php @@ -191,6 +191,11 @@ class RoomPit extends Model //自由麦 if($room_info['room_up_pit_type'] == 2){ if($pit_number > 0){ + if($room_info['label_id'] == 5){//交友 + if($pit_number == 7 || $pit_number == 8){ + return ['code' => 0, 'msg' => '该麦位已锁定了', 'data' => null]; + } + } //查询当前麦位是否有人 $pit_info = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->field('id,user_id,is_lock')->find(); if($pit_info['user_id'] > 0){ @@ -210,11 +215,11 @@ class RoomPit extends Model } }else{ -// if($room_info['label_id'] == 2){ + if($room_info['label_id'] == 5){//交友 + $pit_number = $this->getRoomNullPitWithout($room_id, [7,8,9,10]); + }else{ $pit_number = $this->getRoomNullPitWithout($room_id, [9, 10]); -// }else{ -// $pit_number = $this->getRoomNullPitWithout($room_id, [9, 10, 11,12,13,14,15,16,17,18,19,20,21,22]); -// } + } if(!$pit_number){ return ['code' => 0, 'msg' => '当前房间没有空麦位', 'data' => null]; @@ -432,6 +437,8 @@ class RoomPit extends Model $apply_type = 2;//K歌 }elseif($room_type == 2){ $apply_type = 3;//拍卖 + }elseif($room_type == 7){ + $apply_type = 7;//交友 }else{ $apply_type = 1;//聊天 } @@ -581,6 +588,41 @@ class RoomPit extends Model ]; model('Chat')->sendMsg(1034,$room_id,$text); return ['code' => 1, 'msg' => '上麦成功', 'data' => null]; + }elseif($apply_type == 7) { + $i = 0; + foreach ($to_user as &$value) { + //查询当前空麦位 + $empty_pit = $this->getRoomNullPitWithout($room_id, [7,8,9,10]); + if (!$empty_pit) { + //退出循环 并终止循环 + break; + } + //查询是否已经上麦 + $is_on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $value])->field('id')->find(); + if ($is_on_pit) { + continue; + } + //删除他的申请上麦 + $reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0,'apply_type' => 1])->delete(); + if (!$reslut) { + continue; + } + $on = $this->OnPit($value, $room_id, $empty_pit);//用户上了这个房间的几号麦位 + if ($on['code'] != 1) { + continue; + } + $i++; + //1-禁麦位,2-清空消息,3-清空魅力值,4-加入黑名单,5-踢出房间,6-关闭麦克风,7-申请上麦,8-同意上麦,9-拒绝上麦,10-点歌,11-开启PK', + model('Room')->room_operation_record($user_id,$room_id,8,$value,$empty_pit); + } + $count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count(); + //申请上麦推送消息(数据重置) + $text = [ + 'text' => '申请上麦', + 'count' => $count + ]; + model('Chat')->sendMsg(1034,$room_id,$text); + return ['code' => 1, 'msg' => $i . '位用户上麦成功', 'data' => null]; } } return ['code' => 0, 'msg' => '请选择申请上麦的用户', 'data' => null];