diff --git a/application/api/controller/RoomPit.php b/application/api/controller/RoomPit.php index 1e2061c..e19e333 100644 --- a/application/api/controller/RoomPit.php +++ b/application/api/controller/RoomPit.php @@ -19,17 +19,7 @@ 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_label = $res['data']['label_id']; $room_type = $res['data']['type_id']; diff --git a/application/api/model/RoomPit.php b/application/api/model/RoomPit.php index 9116893..38d0866 100644 --- a/application/api/model/RoomPit.php +++ b/application/api/model/RoomPit.php @@ -192,24 +192,30 @@ class RoomPit extends Model return ['code' => 0, 'msg' => '房间违规或关闭', 'data' => null]; } + if($pit_number == 9){ + //检查用户是否是房主或主持 + $is_room_owner =db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find(); + $is_room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->field('id')->find(); + if(!$is_room_owner && !$is_room_host){ + return ['code' => 0, 'msg' => '没有权限', 'data' => null]; + } + } + if($pit_number == 10){ return ['code' => 0, 'msg' => '请等待主持抱麦', 'data' => null]; } //检查是否在坑位上 $pit_infos = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->field('id,pit_number')->find(); -// if($pit_infos){ -// return ['code' => 0, 'msg' => '您已上麦', 'data' => null]; -// } if($room_info['label_id'] == 5 && $room_info['step'] != 1 && $pit_number < 9){ - return ['code' => 0, 'msg' => '交友房 此阶段不可操作', 'data' => null]; + return ['code' => 0, 'msg' => '互娱房 此阶段不可此操作', 'data' => null]; } //自由麦 if($room_info['room_up_pit_type'] == 2){ if($pit_number > 0){ - if($room_info['label_id'] == 5){//交友 + if($room_info['label_id'] == 5){//交友(互娱) if($pit_number == 7 || $pit_number == 8){ return ['code' => 0, 'msg' => '该麦位已锁定了', 'data' => null]; } @@ -228,15 +234,6 @@ class RoomPit extends Model if($pit_info['is_lock'] == 1){ return ['code' => 0, 'msg' => '该麦位被锁定', 'data' => null]; } - if($pit_number ==9){ - //检查用户是否是房主或主持 - $is_room_owner =db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find(); - $is_room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->field('id')->find(); - if(!$is_room_owner && !$is_room_host){ - return ['code' => 0, 'msg' => '您还不是房间主持人', 'data' => null]; - } - } - }else{ if($room_info['label_id'] == 5){//交友 $pit_number = $this->getRoomNullPitWithout($room_id, [7,8,9,10]); @@ -248,13 +245,9 @@ class RoomPit extends Model return ['code' => 0, 'msg' => '当前房间没有空麦位', 'data' => null]; } } + //换麦使用 if(isset($pit_infos) && $pit_infos['pit_number'] > 0){ -// //下麦 -// $dow = $this ->DownPit($user_id,$room_id,$pit_infos['pit_number']); -// if($dow['code'] != 1){ -// return ['code' => 0, 'msg' => '操作失败', 'data' => null]; -// } $exchange1 = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_infos['pit_number']])->update([ 'user_id' => 0]); $exchange = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->update([ 'user_id' => $user_id]); if(!$exchange || !$exchange1){ @@ -278,79 +271,81 @@ class RoomPit extends Model $text['to_pit_number'] = $pit_number; model('Chat')->sendMsg(1039,$room_id,$text); return ['code' => 1, 'msg' => '上麦成功', 'data' => null]; - } - $ompit = $this->OnPit($user_id,$room_id,$pit_number);//用户上了这个房间的几号麦位 - if($ompit['code'] != 1){ - return ['code' => 0, 'msg' => '上麦失败', 'data' => null]; - } - return ['code' => 1, 'msg' => '上麦成功', 'data' => null]; - }else{ - if($pit_number == 9){ - //检查用户是否是房主或主持 - $is_room_owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find(); - $is_room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->field('id')->find(); - //查看主持坑9坑 - $host_pit = $this->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id'); - if(($is_room_owner || $is_room_host) && $host_pit == 0){ - //查询用户是否在麦位上 - $is_on = $this->where(['room_id' => $room_id, 'user_id' => $user_id])->value('pit_number'); - if($is_on){ - //下麦 - $dow = $this ->DownPit($user_id,$room_id,$is_on); - if($dow['code'] != 1){ - return ['code' => 0, 'msg' => '操作失败', 'data' => null]; - } - } - //直接上主持麦 - $ont = $this->OnPit($user_id,$room_id,9);//用户上了这个房间的几号麦位 - if($ont['code'] != 1){ - return ['code' => 0, 'msg' => '上麦失败', 'data' => null]; - } - //查找是否在申请列表里 - $apply_pit = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id])->find(); - if($apply_pit){ - $this->clear_apply_pit_list($user_id, $room_id, $user_id); -// db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id])->delete(); -// $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' => '上麦成功', 'data' => null]; + }else{ + $ompit = $this->OnPit($user_id,$room_id,$pit_number);//用户上了这个房间的几号麦位 + if($ompit['code'] != 1){ + return ['code' => 0, 'msg' => '上麦失败', 'data' => null]; } + return ['code' => 1, 'msg' => '上麦成功', 'data' => null]; } - //检查用户是否已经申请 - $apply_pit_info = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id,'apply_type' =>1])->field('id')->find(); - if($apply_pit_info){ - return ['code' => 0, 'msg' => '请勿重复申请', 'data' => null]; - } + }else{//排麦 + if($pit_number == 9){ + $host_pit = $this->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id'); + if ($host_pit > 0) { + if ($host_pit == $user_id) { + return ['code' => 0, 'msg' => '您已在主持麦位', 'data' => null]; + } else { + return ['code' => 0, 'msg' => '该麦位有人', 'data' => null]; + } + }else{ + if(isset($pit_infos) && $pit_infos['pit_number'] > 0){ + $exchange1 = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_infos['pit_number']])->update([ 'user_id' => 0]); + $exchange = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->update([ 'user_id' => $user_id]); + if(!$exchange || !$exchange1){ + return ['code' => 0, 'msg' => '换麦失败', 'data' => null]; + } + $FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find(); + $FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标 + $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标 + $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1); + $FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $user_id,'room_id' => $room_id])->value('charm'); - if(isset($pit_infos) && $pit_infos['pit_number'] > 0){ - return ['code' => 0, 'msg' => '用户已在麦上,请先下麦后再申请', 'data' => null]; - } + $text['text'] = $FromUserInfo['nickname'].' 换到主持麦 '; + $text['FromUserInfo'] = $FromUserInfo; + $text['from_pit_number'] = $pit_infos['pit_number']; + $text['to_pit_number'] = $pit_number; + model('Chat')->sendMsg(1039,$room_id,$text); + return ['code' => 1, 'msg' => '上麦成功', 'data' => null]; + }else{ + //直接上主持麦 + $ont = $this->OnPit($user_id,$room_id,$pit_number);//用户上了这个房间的几号麦位 + if($ont['code'] != 1){ + return ['code' => 0, 'msg' => '上麦失败', 'data' => null]; + } + return ['code' => 1, 'msg' => '上麦成功', 'data' => null]; + } + } + }else{ + //检查用户是否已经申请 + $apply_pit_info = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id,'apply_type' =>1])->field('id')->find(); + if($apply_pit_info){ + return ['code' => 0, 'msg' => '请勿重复申请', 'data' => null]; + } - //放入等待区 - $data = [ - 'room_id' => $room_id, - 'user_id' => $user_id, - 'status' => 0, - 'apply_type' => 1 - ]; - $reslut = db::name('vs_room_pit_apply')->insert($data); - if(!$reslut){ - return ['code' => 0, 'msg' => '申请失败', 'data' => null]; + if(isset($pit_infos) && $pit_infos['pit_number'] > 0){ + return ['code' => 0, 'msg' => '用户已在麦上,请先下麦后再申请', 'data' => null]; + } + + //放入等待区 + $data = [ + 'room_id' => $room_id, + 'user_id' => $user_id, + 'status' => 0, + 'apply_type' => 1 + ]; + $reslut = db::name('vs_room_pit_apply')->insert($data); + if(!$reslut){ + return ['code' => 0, 'msg' => '申请失败', 'data' => null]; + } + $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' => '申请成功,请等待房主审核', 'data' => null]; } - $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' => '申请成功,请等待房主审核', 'data' => null]; } } @@ -366,15 +361,6 @@ class RoomPit extends Model 'a.status' => 0, ]; -// $res = model('Room')->get_room_label($room_id); -// $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)){ -// $where['a.apply_type'] = 1; -// }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){ -// $where['a.apply_type'] = 2; -// } - $list['regular'] = db::name('vs_room_pit_apply')->alias('a')->join('user b','a.user_id = b.id') ->where($where)->where('a.type',0)->field('a.user_id,a.rank_value,b.nickname,b.avatar') ->order('a.rank_value desc')->select();