酒吧房相关

This commit is contained in:
2026-01-05 15:16:42 +08:00
parent c0a175092f
commit c2765a0260
5 changed files with 243 additions and 216 deletions

View File

@@ -91,6 +91,10 @@ class RoomPit extends Model
$pit_text = $pit_number . '号麦';
}
}
if($roomtype == 11){
$pit_time = db::name('vs_room_bar')->where('id',$room_id)->value('pit_time') ?? 5;
$text['end_time'] = time()+$pit_time * 60;
}
$text['text'] = $FromUserInfo['nickname'].' 上了 ' . $pit_text;
$text['FromUserInfo'] = $FromUserInfo;
@@ -142,7 +146,7 @@ class RoomPit extends Model
}
//用户下麦
public function DownPit($user_id,$room_id,$pit_number,$type = 0)
public function DownPit($user_id,$room_id,$pit_number = 0,$type = 0)
{
$roomtype = db::name('vs_room')->where(['id' => $room_id])->value('type_id');
@@ -166,6 +170,7 @@ class RoomPit extends Model
}
}
}
if($roomtype == 10){
if($pit_number == 1){
$pit_text = '签约麦';
@@ -272,9 +277,6 @@ class RoomPit extends Model
//申请上麦
public function apply_pit($user_id,$room_id,$pit_number = 0)
{
if($room_id <= 0){
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
//查询房间状态
$room_info = db::name('vs_room')->where(['id' => $room_id, 'apply_status' => 2])->field('id,room_status,room_up_pit_type,type_id,label_id,step')->find();
if(!$room_info){
@@ -333,7 +335,7 @@ class RoomPit extends Model
//自由麦
if($room_info['room_up_pit_type'] == 2){
if($pit_number > 0){
if($room_info['label_id'] == 5){//交友(互娱)
if($room_info['label_id'] == 5 || $room_info['label_id'] == 8){//互娱||酒吧
if($pit_number == 7 || $pit_number == 8){
return ['code' => 0, 'msg' => '该麦位已锁定了', 'data' => null];
}
@@ -353,7 +355,7 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '该麦位被锁定', 'data' => null];
}
}else{
if($room_info['label_id'] == 5){//交友
if($room_info['label_id'] == 5 || $room_info['label_id'] == 8){//互娱||酒吧
$pit_number = $this->getRoomNullPitWithout($room_id, [7,8,9,10]);
}else{
$pit_number = $this->getRoomNullPitWithout($room_id, [9, 10]);
@@ -483,22 +485,83 @@ class RoomPit extends Model
}
}
public function apply_pit_bar($user_id,$room_id,$gift_id,$pit_number = 0)
{
//查询房间状态
$room_info = db::name('vs_room')->where(['id' => $room_id, 'apply_status' => 2])->field('id,room_status,room_up_pit_type,type_id,label_id,step')->find();
if(!$room_info){
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
}
if($room_info['room_status'] != 1){
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_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_infos){
return ['code' => 0, 'msg' => '您已在麦上', 'data' => null];
}
}
if($pit_number == 10){
return ['code' => 0, 'msg' => '请等待主持抱麦', 'data' => null];
}
if($pit_number){
//查询麦位是否有用户
$pit_info = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->field('id,user_id')->find();
if($pit_info){
if($pit_info['user_id']){
return ['code' => 0, 'msg' => '麦位有人', 'data' => null];
}
}
}else{
//查询当前空麦位
$empty_pit = $this->getRoomNullPitWithout($room_id, [7,8,9,10]);
if (!$empty_pit) {
return ['code' => 0, 'msg' => '没有空麦位', 'data' => null];
}
}
//上麦成功后设置礼物
$gift_info = model('api/BarRoom')->join_pit_choose_gift($user_id,$room_id,$gift_id);
if($gift_info['code'] != 1){
return ['code' => 0, '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];
}
//申请上麦列表
public function apply_pit_list($userId,$room_id)
{
if(!$room_id){
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
$where = [
'a.room_id' => $room_id,
'a.status' => 0,
];
//常规通道 type 0普通通道1优先通道
$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();
$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();
foreach ($list['regular'] as $k => $v){
//查询用户的爵位
$jue_wei = model('Nobility')->getUserNobilityInfo($v['user_id']);
@@ -554,12 +617,6 @@ class RoomPit extends Model
//上麦助力
public function help_apply_pit($user_id,$room_id,$apply_id)
{
if(!$room_id){
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
if(!$apply_id){
return ['code' => 0, 'msg' => '请选择助力用户', 'data' => null];
}
//查询当前房间设置的助力;礼物
$gift_info = db::name('vs_room_pit_apply_help_gift')->where(['room_id' => $room_id])->field('id,gift_id,gift_price')->find();
@@ -567,24 +624,15 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '当前房间没有设置助力礼物', 'data' => null];
}
// $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)){
// $apply_type = 1;
// }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
// $apply_type = 2;
// }
//助力
$data = [
'user_id' => $user_id,
'help_user_id' => $apply_id,
'room_id' => $room_id,
'rank_value' => $gift_info['gift_price'],
// 'apply_type' => $apply_type,
'createtime'=> time(),
];
//开启事务
db::startTrans();
$reslut = db::name('vs_room_pit_apply_help')->insert($data);
@@ -628,12 +676,6 @@ class RoomPit extends Model
//同意上麦
public function agree_pit($user_id,$room_id,$apply_id,$tpe = 0)
{
if(!$room_id){
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
if(!$apply_id){
return ['code' => 0, 'msg' => '请选择申请用户', 'data' => null];
}
$res = model('Room')->get_room_label($room_id);
$room_label = $res['data']['label_id'];
@@ -644,29 +686,14 @@ class RoomPit extends Model
$apply_type = 2;//K歌
}elseif($room_type == 2){
$apply_type = 3;//拍卖
}elseif($room_type == 7){
$apply_type = 7;//交友
}elseif($room_type == 7 || $room_type == 11){//互娱和酒吧
$apply_type = 7;
}elseif($room_type == 10){
$apply_type = 10;//签约
}else{
$apply_type = 1;//聊天
}
// if($apply_type == 1){
// //判断当前用户是否是房主或在主持麦位上的主持
// $is_room_owner = model('Room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
// $is_room_host = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id,'pit_number' => 9])->field('id')->find();
// if(!$is_room_owner && !$is_room_host){
// return ['code' => 0, 'msg' => '您不是房主 或 不在主持位,没有权限操作', 'data' => null];
// }
// }else{
// $is_room_host = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id,'pit_number' => 9])->field('id')->find();
// if(!$is_room_host){
// return ['code' => 0, 'msg' => '您不在主持位,没有权限操作', 'data' => null];
// }
// }
$to_user = explode(',',$apply_id);
if(count($to_user) >= 1){
@@ -885,25 +912,12 @@ class RoomPit extends Model
//清空上麦申请
public function clear_apply_pit_list($userId,$room_id,$apply_id = 0)
{
if(!$room_id){
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
//判断当前用户是否是房主或主持
$is_room_owner = model('Room')->where(['id' => $room_id, 'user_id' => $userId])->field('id')->find();
$is_room_host = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $userId,'pit_number' => 9])->field('id')->find();
if(!$is_room_owner && !$is_room_host){
return ['code' => 0, 'msg' => '您不是房主 或 不在主持麦,没有权限操作', 'data' => null];
}
// $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)){
// $apply_type = 1;
// }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
// $apply_type = 2;
// }else{
// $apply_type = 1;
// }
if($apply_id){
$to_user = explode(',',$apply_id);
@@ -937,12 +951,6 @@ class RoomPit extends Model
//设置插麦礼物
public function set_room_pit_apply_help_gift($user_id,$room_id,$gift_id,$gift_price)
{
if(!$room_id){
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
if(!$gift_id){
return ['code' => 0, 'msg' => '请选择礼物', 'data' => null];
}
//礼物不能是CP礼物
$cp_gift_ids = explode(',', get_system_config_value('cp_gift_id'));
if (in_array($gift_id, $cp_gift_ids)) {
@@ -990,10 +998,6 @@ class RoomPit extends Model
//修改房间上麦模式
public function change_room_up_pit_type($user_id,$room_id)
{
if(!$room_id){
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
//判断当前用户是否有权限
$owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
$host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find();
@@ -1031,15 +1035,6 @@ class RoomPit extends Model
//1-抱麦 2-踢下去
public function host_user_pit($user_id,$room_id,$pit_number,$accept_user_id,$type)
{
if(!$room_id){
return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
}
if(!$accept_user_id){
return ['code' => 0, 'msg' => '请选择用户', 'data' => null];
}
$room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id');
if($type == 1){//抱麦
//判断该用户是否在主持麦上
@@ -1051,8 +1046,10 @@ class RoomPit extends Model
if($accept_user_is_on_pit){
return ['code' => 0, 'msg' => '该用户已在麦位上', 'data' => null];
}
if($room_type == 7 && ($pit_number == 7 || $pit_number == 8)){
return ['code' => 0, 'msg' => '互娱房 不能上7、8号麦位', 'data' => null];
if($room_type == 7 || $room_type == 11){
if($pit_number == 7 || $pit_number == 8){
return ['code' => 0, 'msg' => '此类型房间 不能上7、8号麦位', 'data' => null];
}
}
$room_label = db::name('vs_room')->where(['id' => $room_id])->value('label_id');
if($room_type == 1 && $room_label == 2 && !$pit_number){
@@ -1184,11 +1181,11 @@ class RoomPit extends Model
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
}
}
if($room_type == 7){
if($room_type == 7 || $room_type == 11){
//查询当前空麦位
$empty_pit = $this->getRoomNullPitWithout($room_id, [7,8,9, 10]);
$empty_pit = $this->getRoomNullPitWithout($room_id, [7,8,9,10]);
}else{
$empty_pit = $this->getRoomNullPitWithout($room_id, [9, 10]);
$empty_pit = $this->getRoomNullPitWithout($room_id, [9,10]);
}
if(!$empty_pit){