修改房间类型 及房间类型列表

This commit is contained in:
2026-01-26 16:27:07 +08:00
parent eaddbdcd06
commit 232a447217
2 changed files with 161 additions and 130 deletions

View File

@@ -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,