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

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

@@ -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']);
}

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,