diff --git a/application/api/controller/Room.php b/application/api/controller/Room.php index 8fbf5c6..801ef2f 100644 --- a/application/api/controller/Room.php +++ b/application/api/controller/Room.php @@ -266,7 +266,7 @@ class Room extends BaseCom public function change_room_type() { $room_id = input('room_id', 0); - $type = input('type', 1);//1-交友,2-拍卖,7-互娱,8-交友(不要了),9-点唱 + $type = input('type', 1);//1-交友,2-拍卖,7-互娱,8-交友(不要了),9-点唱,10-签约 $reslut = model('Room')->change_room_type($this->uid, $room_id, $type); return V($reslut['code'], $reslut['msg'], $reslut['data']); } diff --git a/application/api/model/GiveGift.php b/application/api/model/GiveGift.php index 4ecd269..2717e3a 100644 --- a/application/api/model/GiveGift.php +++ b/application/api/model/GiveGift.php @@ -196,7 +196,11 @@ class GiveGift extends Model return ['code' => 0, 'msg' => '收礼人收益配置有误', 'data' => null]; } //收礼人认证歌手等级升级 - model('SingerSong')->singerLevelUp($to_id,$gift_price); + model('api/SingerSong')->singerLevelUp($to_id,$gift_price); + //收礼人身价计算 + $coin_market_values = explode(',', get_system_config_value('coin_market_value')); + $change_value = ceil($gift_price / ($coin_market_values[0] ?? 100) * ($coin_market_values[1] ?? 1)); + model('api/MarketValue')->change($to_id,$change_value,0); //1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 5系统任务 6-cp房间送礼 if($from_type == 1 || $from_type == 2 || $from_type == 3 ||$from_type == 4 || $from_type == 6){ diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 4ca14e5..b60854a 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1818,7 +1818,7 @@ class Room extends Model //修改房间类型 - // $type //1-交友,2-拍卖,7-互娱,8-交友(不要了),9-点唱 + // $type 1-交友,2-拍卖,7-互娱,8-交友(不要了),9-点唱,10-签约 public function change_room_type($uid,$room_id,$type) { if(!$uid || !$room_id || !$type){ @@ -1846,10 +1846,14 @@ class Room extends Model } } + if($roomInfo['type_id'] == 10 && $roomInfo['sign_type'] != 0){ + return ['code' => 0, 'msg' => '请先结束签约后在修改房间类型', 'data' => null]; + } + //开启事务 db::startTrans(); $data = []; - if($type == 1 || $type == 3 || $type == 4 || $type == 8 || $type == 9){ + if($type == 1 || $type == 3 || $type == 4 || $type == 8 || $type == 9 || $type == 10){ $data = [ 'label_id' => 1, 'type_id' => $type, @@ -1894,12 +1898,19 @@ class Room extends Model model('RoomPit')->DownPit($v['user_id'], $room_id,$v['pit_number']); } } -// db::name('vs_room_pit')->where(['room_id' => $room_id])->update(['user_id' => 0]); + //转到type= 10 签约房 嘉宾麦有人也下麦 + if($type == 10){ + $jiabin = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 10])->value('user_id'); + if($jiabin){ + model('RoomPit')->DownPit($jiabin, $room_id,10); + } + } + db::name('vs_room_pit_simulate')->where(['room_id' => $room_id])->delete(); //申请上麦的全部下麦 model('RoomPit')->clear_apply_pit_list($uid, $room_id); - if($type == 1 || $type == 3 || $type == 4 || $type == 7 || $type == 8 || $type == 9){ + if($type == 1 || $type == 3 || $type == 4 || $type == 7 || $type == 8 || $type == 9 || $type == 10){ //查询拍卖房的状态 $room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select(); if($room_auction){ diff --git a/application/api/model/RoomPit.php b/application/api/model/RoomPit.php index ba260ea..bce7f47 100644 --- a/application/api/model/RoomPit.php +++ b/application/api/model/RoomPit.php @@ -566,6 +566,8 @@ class RoomPit extends Model $apply_type = 3;//拍卖 }elseif($room_type == 7){ $apply_type = 7;//交友 + }elseif($room_type == 10){ + $apply_type = 10;//签约 }else{ $apply_type = 1;//聊天 } @@ -752,6 +754,45 @@ class RoomPit extends Model ]; model('Chat')->sendMsg(1034,$room_id,$text); return ['code' => 1, 'msg' => $i . '位用户上麦成功', 'data' => null]; + }elseif($apply_type == 10){ + //(签约房:1号麦位是 被签约者【徒弟麦】,2号麦位是【师傅麦位】3、4、5是老板麦位,9号是主持位) + $uid = $to_user[0]; + //查询是否已经上麦 + $on_pit_number = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $uid])->value('pit_number'); + if ($on_pit_number == 1) { + return ['code' => 0, 'msg' => '用户已在麦上', 'data' => null]; + } + //查询1号麦位是否有人 + $is_one_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 1])->value('user_id'); + if ($is_one_pit) { + return ['code' => 0, 'msg' => '麦位上有人', 'data' => null]; + } + //制造上麦信息 + $FromUserInfo = db::name('user')->where('id',$uid)->field('id as user_id,nickname,avatar,sex')->find(); + $FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($uid);//财富图标 + $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($uid);//魅力图标 + $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($uid,1); + $FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $uid,'room_id' => $room_id])->value('charm'); + $Nobility = model('api/Nobility')->getUserNobilityInfo($uid); + $FromUserInfo['mic_cycle'] = model('api/Decorate')->user_decorate_detail($uid,3); + $FromUserInfo['nobility_image'] = $Nobility['play_image']; + $FromUserInfo['nickname_color'] = $Nobility['nick_name_color']; + //推送告诉前端上了几号麦位 + $text['text'] = $FromUserInfo['nickname'].' 上了签约麦位'; + $text['FromUserInfo'] = $FromUserInfo; + $text['pit_number'] = 1; + //聊天室推送系统消息 + model('Chat')->sendMsg(1003,$room_id,$text); + + //删除他的申请上麦 + db::name('vs_room_pit_apply')->where(['user_id' => $uid, 'room_id' => $room_id, 'status' => 0])->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' => 0, 'msg' => '请选择申请上麦的用户', 'data' => null]; @@ -881,8 +922,8 @@ class RoomPit extends Model if($pit_type == 1){ //房间模式 $room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id'); - if($room_type == 2){ - return ['code' => 0, 'msg' => '房间模式下,不允许切换麦位模式', 'data' => null]; + if($room_type == 2 || $room_type == 10){ + return ['code' => 0, 'msg' => '该房间模式下,不允许切换上麦模式', 'data' => null]; } $type = 2; }else{ @@ -915,6 +956,40 @@ class RoomPit extends Model } if($type == 1){//抱麦 + $room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id'); + if($room_type == 10){ + //$pit_number 只能是1、3、4、5 + if(!in_array($pit_number, [1,3,4,5])){ + return ['code' => 0, 'msg' => '签约房抱麦位只能是1、3、4、5', 'data' => null]; + } + //麦位上否有人 + $on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->value('user_id'); + if($on_pit){ + return ['code' => 0, 'msg' => '麦位有人', 'data' => null]; + } + //制造上麦信息 + $FromUserInfo = db::name('user')->where('id',$accept_user_id)->field('id as user_id,nickname,avatar,sex,market_value')->find(); + $FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($accept_user_id);//财富图标 + $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($accept_user_id);//魅力图标 + $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($accept_user_id,1); + $FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $accept_user_id,'room_id' => $room_id])->value('charm'); + $Nobility = model('api/Nobility')->getUserNobilityInfo($accept_user_id); + $FromUserInfo['mic_cycle'] = model('api/Decorate')->user_decorate_detail($accept_user_id,3); + $FromUserInfo['nobility_image'] = $Nobility['play_image']; + $FromUserInfo['nickname_color'] = $Nobility['nick_name_color']; + //推送告诉前端上了几号麦位 + if($pit_number == 1){ + $pit_text = '签约麦'; + }else{ + $pit_text = '老板麦'; + } + $text['text'] = $FromUserInfo['nickname'].' 上了 ' . $pit_text; + $text['FromUserInfo'] = $FromUserInfo; + $text['pit_number'] = $pit_number; + //聊天室推送系统消息 + model('Chat')->sendMsg(1003,$room_id,$text); + return ['code' => 1, 'msg' => '操作成功', 'data' => null]; + } if($pit_number == 10){ $on_9_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id'); if($on_9_pit != $user_id){