diff --git a/application/api/controller/Room.php b/application/api/controller/Room.php index b78ecd98..0912820c 100644 --- a/application/api/controller/Room.php +++ b/application/api/controller/Room.php @@ -194,30 +194,6 @@ class Room extends BaseCom } - //直播间送礼【1.6废弃】 - // - public function room_give_gift() - { - $key_name = "api:room:gift:" . $this->uid; - redis_lock_exit($key_name); - $room_id = input('room_id', 0); - $gift_id = input('gift_id', 0); - $gift_num = input('gift_num', 1); - $to_uid = input('to_uid', 0);//收礼人ID,逗号隔开的字符串 - $type = input('type', 1);//1金币购买 2送背包礼物 - $pit_number = input('pit_number', 0); - $heart_id = input('heart_id', 0); - - $pool_gift_id = db::name('bb_lottery_config')->where(['key' => 'pool_gift_id'])->value('value'); - if($gift_id == $pool_gift_id){ - $reslut = model('Lottery')->gift($this->uid, $to_uid, $gift_id, $room_id,$gift_num); - }else{ - $reslut = model('Room')->room_gift($this->uid, $to_uid, $gift_id, $gift_num, $type, $room_id, $pit_number,$heart_id); - } - redis_unlock($key_name); - return V($reslut['code'], $reslut['msg'], $reslut['data']); - } - //房间送礼 背包一键全清 public function room_gift_all_clear() { @@ -281,6 +257,8 @@ class Room extends BaseCom $reslut = model('HeadLine')->current_headline(); return V(1, '成功', $reslut); } + + //发(抢)头条 public function send_headline() { @@ -331,11 +309,77 @@ class Room extends BaseCom } + //房间类型列表 + public function room_type_list() + { + $http = get_system_config_value("web_site"); + //1-交友,2-拍卖,7-互娱,8-交友(不要了),9-点唱,10-签约,11-酒吧房 + $reslut = [ + [ + 'id' => 1, + 'name' => '交友', + 'icon' => $http.'/data/avatar/head_pic.png', + 'sort' => 1, + ], + [ + 'id' => 2, + 'name' => '拍卖', + 'icon' => $http.'/data/avatar/head_pic.png', + 'sort' => 2, + ], + [ + 'id' => 7, + 'name' => '互娱', + 'icon' => $http.'/data/avatar/head_pic.png', + 'sort' => 3, + ], + [ + 'id' => 9, + 'name' => '点唱', + 'icon' => $http.'/data/avatar/head_pic.png', + 'sort' => 4, + ], + [ + 'id' => 10, + 'name' => '签约', + 'icon' => $http.'/data/avatar/head_pic.png', + 'sort' => 5, + ], + [ + 'id' => 11, + 'name' => '酒吧', + 'icon' => $http.'/data/avatar/head_pic.png', + 'sort' => 6, + ], + [ + 'id' => 99, + 'name' => '练歌', + 'icon' => $http.'/data/avatar/head_pic.png', + 'sort' => 7, + ], + ]; + //根据sort 排序 + usort($reslut, function ($a, $b) { + return $a['sort'] - $b['sort']; + }); + return V(1, '成功', $reslut); + } + + //修改房间类型 public function change_room_type() { $room_id = input('room_id', 0); - $type = input('type', 1);//1-交友,2-拍卖,7-互娱,8-交友(不要了),9-点唱,10-签约,11-酒吧房 + $type = input('type', 1);//1-交友,2-拍卖,7-互娱,9-点唱,10-签约,11-酒吧房,99-练歌 + + if(!$room_id || !$type){ + return V(0, '参数错误'); + } + $owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $this->uid])->field('id')->find(); + $host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $this->uid,'delete_time' => null])->find(); + if(!$owner && !$host){ + return V(0, '没有权限操作'); + } $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/Room.php b/application/api/model/Room.php index 618a54cc..13890710 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -2943,31 +2943,22 @@ class Room extends Model //修改房间类型 - // $type 1-交友,2-拍卖,7-互娱,8-交友(不要了),9-点唱,10-签约,11-酒吧房 + // $type 1-交友,2-拍卖,7-互娱,9-点唱,10-签约,11-酒吧房 99-练歌 public function change_room_type($uid,$room_id,$type) { - if(!$uid || !$room_id || !$type){ - return ['code' => 0, 'msg' => '参数错误', 'data' => null]; - } - $owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $uid])->field('id')->find(); - $host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $uid,'delete_time' => null])->find(); - if(!$owner && !$host){ - return ['code' => 0, 'msg' => '没有权限操作', 'data' => null]; - } - $roomInfo = db::name('vs_room')->where(['id' => $room_id])->find(); if($roomInfo['type_id'] == $type && $roomInfo['type_id'] != 1){ return ['code' => 0, 'msg' => '房间类型已存在', 'data' => null]; } if($roomInfo['type_id'] == 7 && ($roomInfo['step'] == 2 || $roomInfo['step'] == 3)){ - return ['code' => 0, 'msg' => '请先结束交友后在修改房间类型', 'data' => null]; + return ['code' => 0, 'msg' => '请先结束交友后再修改房间类型', 'data' => null]; } if($roomInfo['type_id'] == 2){ $room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select(); if($room_auction){ - return ['code' => 0, 'msg' => '请先结束竞拍后在修改房间类型', 'data' => null]; + return ['code' => 0, 'msg' => '请先结束竞拍后再修改房间类型', 'data' => null]; } } @@ -2976,11 +2967,97 @@ class Room extends Model } if($roomInfo['type_id'] == 10 && $roomInfo['sign_type'] != 0){ - return ['code' => 0, 'msg' => '请先结束签约后在修改房间类型', 'data' => null]; + return ['code' => 0, 'msg' => '请先结束签约再在修改房间类型', 'data' => null]; } - //开启事务 - db::startTrans(); + if($roomInfo['type_id'] == 1){ + $is_pk = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->where(['status' => ['in',[2,3,4]]])->find(); + $is_pk1 = db::name('vs_room_pk')->where(['room_id_b' => $room_id])->where(['status' => ['in',[2,3,4]]])->find(); + if($is_pk || $is_pk1){ + return ['code' => 0, 'msg' => '请先结束PK再在修改房间类型', 'data' => null]; + } + } + + $data = []; + //1-交友 + if($type == 1 || $type == 3 || $type == 4 || $type == 8){ + $data = [ + 'label_id' => 1, + 'type_id' => $type, + 'room_up_pit_type' => 1,//1-排麦模式,2-自由模式 + 'is_song' => 1 //1-等待点歌申请 + ]; + } + + //拍卖 + if($type == 2){ + $data = [ + 'label_id' => 3, + 'type_id' => $type, + 'room_up_pit_type' => 1,//1-排麦模式,2-自由模式 + 'is_song' => 1 //1-等待点歌申请 + ]; + //清除房间此前的魅力值 + db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0,'clear_time' => time()]); + } + + //(互娱) + if($type == 7){ + $data = [ + 'label_id' => 5, + 'type_id' => $type, + 'room_up_pit_type' => 1,//1-排麦模式,2-自由模式 + 'step' => 1 //1-等待开始 + ]; + } + + //点唱房 (让别人唱歌) + if($type == 9){ + $data = [ + 'label_id' => 6, + 'type_id' => $type, + 'room_up_pit_type' => 1,//1-排麦模式,2-自由模式 + ]; + } + + //签约房 + if($type == 10){ + $data = [ + 'label_id' => 7, + 'type_id' => $type, + 'room_up_pit_type' => 1,//1-排麦模式,2-自由模式 + 'sign_type' => 0 //0-等待签约 + ]; + } + + //酒吧房 + if($type == 11){ + $data = [ + 'label_id' => 8, + 'type_id' => $type, + 'room_up_pit_type' => 1, + 'room_background' => db::name('vs_room_background')->where(['id' => 11])->value('image_url') + ]; + } + + //练歌房 + if($type == 99){ + if($roomInfo['type_id'] == 1 && $roomInfo['type_id'] == 2){ + return ['code' => 0, 'msg' => '房间类型已存在', 'data' => null]; + } + $res1 = model('RoomSong')->agree_song($uid,$room_id,1); + if($res1['code'] == 0){ + return ['code' => 0, 'msg' => $res1['msg'], 'data' => null]; + }else{ + $res = 1; + } + }else{ + $res = db::name('vs_room')->where(['id' => $room_id])->update($data); + } + + if(!$res){ + return ['code' => 0, 'msg' => '修改失败', 'data' => null]; + } //在麦位上的用户 全部下麦 $on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => ['>',0],'pit_number' => ['<>',9]])->select(); @@ -2998,70 +3075,6 @@ class Room extends Model } } - $data = []; - //1-交友,3、4、8-不要了 - if($type == 1 || $type == 3 || $type == 4 || $type == 8){ - $data = [ - 'label_id' => 1, - 'type_id' => $type, - 'room_up_pit_type' => 1, - 'is_song' => 1 - ]; - } - - //拍卖 - if($type == 2){ - $data = [ - 'label_id' => 3, - 'type_id' => $type, - 'room_up_pit_type' => 1, - 'is_song' => 1 - ]; - } - - //(互娱) - if($type == 7){ - $data = [ - 'label_id' => 5, - 'type_id' => $type, - 'room_up_pit_type' => 1, - ]; - } - - //点唱房 (让别人唱歌) - if($type == 9){ - $data = [ - 'label_id' => 6, - 'type_id' => $type, - 'room_up_pit_type' => 1, - ]; - } - - //签约房 - if($type == 10){ - $data = [ - 'label_id' => 7, - 'type_id' => $type, - 'room_up_pit_type' => 1, - ]; - } - - //酒吧房 - if($type == 11){ - $data = [ - 'label_id' => 8, - 'type_id' => $type, - 'room_up_pit_type' => 1, - 'room_background' => db::name('vs_room_background')->where(['id' => 11])->value('image_url') - ]; - } - $res = db::name('vs_room')->where(['id' => $room_id])->update($data); - - if(!$res){ - db::rollback(); - return ['code' => 0, 'msg' => '修改失败', 'data' => null]; - } - //如果房间正在点唱中,结束点唱 $romm_song = db::name('vs_room_song')->where(['room_id' => $room_id])->order('did desc')->find(); if(isset($romm_song) && ($romm_song['status'] == 1 || $romm_song['status'] == 2)){ @@ -3075,32 +3088,6 @@ class Room extends Model //申请上麦的全部下麦 model('RoomPit')->clear_apply_pit_list($uid, $room_id); - if($type == 1 || $type == 3 || $type == 4 || $type == 7 || $type == 8 || $type == 9 || $type == 10 || $type == 11){ - //查询拍卖房的状态 - $room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select(); - if($room_auction){ - foreach ($room_auction as $v){ - model('RoomAuction')->room_auction_end($room_id,$v['auction_id']); - } - } - //拍卖位上是否有人 - $an = Cache::get('auction_user_'.$room_id); - if($an){ - //拍卖位下麦 - model('api/RoomPit')->host_user_pit($uid,$room_id,888,$an,2); - } - } - if($type == 2){ - //清除房间此前的魅力值 - 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){ - model('RoomPit')->DownPit($pit_10['user_id'], $room_id,10); - } - } - - db::commit(); //推送给前端 $text = [ 'room_id' => $room_id,