This commit is contained in:
2025-10-20 09:59:39 +08:00
parent e73091cdf3
commit a4858d47fc
2834 changed files with 6510 additions and 438740 deletions

View File

@@ -98,6 +98,16 @@ class RoomPit extends Model
];
model('Tencent')->batchsendmsg($remind_user,json_encode($content));
}
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $user_id, 'room_id' => $room_id, 'status' => 0])->delete();
if($reslut){
$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' => 1, 'msg' => '上麦成功', 'data' => null];
}
@@ -126,6 +136,10 @@ class RoomPit extends Model
if($is_pk > 0 && $pit_number == 9){
return ['code' => 0, 'msg' => '当前房间正在pk中', 'data' => null];
}
$step = db::name('vs_room')->where(['id' => $room_id, 'type_id' => 7])->value('step');
if($step && $step != 1 && $pit_number < 9){
return ['code' => 0, 'msg' => '交友房 此阶段不可操作', 'data' => null];
}
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
@@ -170,7 +184,7 @@ class RoomPit extends Model
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,label_id')->find();
$room_info = db::name('vs_room')->where(['id' => $room_id, 'apply_status' => 2])->field('id,room_status,room_up_pit_type,label_id,step')->find();
if(!$room_info){
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
}
@@ -178,19 +192,39 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '房间违规或关闭', 'data' => null];
}
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_number == 10){
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_infos){
return ['code' => 0, 'msg' => '您已上麦', 'data' => null];
if($room_info['label_id'] == 5 && $room_info['step'] != 1 && $pit_number < 9){
return ['code' => 0, 'msg' => '互娱房 此阶段不可此操作', 'data' => null];
}
//自由麦
if($room_info['room_up_pit_type'] == 2){
if($pit_number > 0){
if($room_info['label_id'] == 5){//交友(互娱)
if($pit_number == 7 || $pit_number == 8){
return ['code' => 0, 'msg' => '该麦位已锁定了', 'data' => null];
}
if($pit_number == 9){
if($pit_infos){
return ['code' => 0, 'msg' => '您已上麦', 'data' => null];
}
}
}
//查询当前麦位是否有人
$pit_info = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->field('id,user_id,is_lock')->find();
if($pit_info['user_id'] > 0){
@@ -200,106 +234,118 @@ class RoomPit extends Model
if($pit_info['is_lock'] == 1){
return ['code' => 0, 'msg' => '该麦位被锁定', 'data' => null];
}
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];
}
}
}else{
// if($room_info['label_id'] == 2){
if($room_info['label_id'] == 5){//交友
$pit_number = $this->getRoomNullPitWithout($room_id, [7,8,9,10]);
}else{
$pit_number = $this->getRoomNullPitWithout($room_id, [9, 10]);
// }else{
// $pit_number = $this->getRoomNullPitWithout($room_id, [9, 10, 11,12,13,14,15,16,17,18,19,20,21,22]);
// }
}
if(!$pit_number){
return ['code' => 0, 'msg' => '当前房间没有空麦位', 'data' => null];
}
}
//换麦使用
if(isset($pit_infos) && $pit_infos['pit_number'] > 0){
//下麦
$dow = $this ->DownPit($user_id,$room_id,$pit_infos['pit_number']);
if($dow['code'] != 1){
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
$exchange1 = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_infos['pit_number']])->update([ 'user_id' => 0]);
$exchange = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->update([ 'user_id' => $user_id]);
if(!$exchange || !$exchange1){
return ['code' => 0, 'msg' => '换麦失败', 'data' => null];
}
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
$FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $user_id,'room_id' => $room_id])->value('charm');
if($pit_number == 9){
$pit_text = '主持麦';
}elseif ($pit_number == 10) {
$pit_text = '嘉宾麦';
}else{
$pit_text = $pit_number . '号麦';
}
$text['text'] = $FromUserInfo['nickname'].' 换到 ' . $pit_text;
$text['FromUserInfo'] = $FromUserInfo;
$text['from_pit_number'] = $pit_infos['pit_number'];
$text['to_pit_number'] = $pit_number;
model('Chat')->sendMsg(1039,$room_id,$text);
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
}else{
$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];
}
$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];
}else{
}else{//排麦
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();
//查看主持坑9坑
$host_pit = $this->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id');
if(($is_room_owner || $is_room_host) && $host_pit == 0){
//查询用户是否在麦位上
$is_on = $this->where(['room_id' => $room_id, 'user_id' => $user_id])->value('pit_number');
if($is_on){
//下麦
$dow = $this ->DownPit($user_id,$room_id,$is_on);
if($dow['code'] != 1){
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
if ($host_pit > 0) {
if ($host_pit == $user_id) {
return ['code' => 0, 'msg' => '您已在主持麦位', 'data' => null];
} else {
return ['code' => 0, 'msg' => '该麦位有人', 'data' => null];
}
}else{
if(isset($pit_infos) && $pit_infos['pit_number'] > 0){
$exchange1 = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_infos['pit_number']])->update([ 'user_id' => 0]);
$exchange = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->update([ 'user_id' => $user_id]);
if(!$exchange || !$exchange1){
return ['code' => 0, 'msg' => '换麦失败', 'data' => null];
}
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
$FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $user_id,'room_id' => $room_id])->value('charm');
$text['text'] = $FromUserInfo['nickname'].' 换到主持麦 ';
$text['FromUserInfo'] = $FromUserInfo;
$text['from_pit_number'] = $pit_infos['pit_number'];
$text['to_pit_number'] = $pit_number;
model('Chat')->sendMsg(1039,$room_id,$text);
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
}else{
//直接上主持麦
$ont = $this->OnPit($user_id,$room_id,$pit_number);//用户上了这个房间的几号麦位
if($ont['code'] != 1){
return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
}
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
}
//直接上主持麦
$ont = $this->OnPit($user_id,$room_id,9);//用户上了这个房间的几号麦位
if($ont['code'] != 1){
return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
}
//查找是否在申请列表里
$apply_pit = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if($apply_pit){
$this->clear_apply_pit_list($user_id, $room_id, $user_id);
// db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id])->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' => 1, 'msg' => '上麦成功', 'data' => null];
}
}
//检查用户是否已经申请
$apply_pit_info = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id,'apply_type' =>1])->field('id')->find();
if($apply_pit_info){
return ['code' => 0, 'msg' => '请勿重复申请', 'data' => null];
}
}else{
//检查用户是否已经申请
$apply_pit_info = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id,'apply_type' =>1])->field('id')->find();
if($apply_pit_info){
return ['code' => 0, 'msg' => '请勿重复申请', 'data' => null];
}
if(isset($pit_infos) && $pit_infos['pit_number'] > 0){
return ['code' => 0, 'msg' => '用户已在麦上,请先下麦后再申请', 'data' => null];
}
if(isset($pit_infos) && $pit_infos['pit_number'] > 0){
return ['code' => 0, 'msg' => '用户已在麦上,请先下麦后再申请', 'data' => null];
}
//放入等待区
$data = [
'room_id' => $room_id,
'user_id' => $user_id,
'status' => 0,
'apply_type' => 1
];
$reslut = db::name('vs_room_pit_apply')->insert($data);
if(!$reslut){
return ['code' => 0, 'msg' => '申请失败', 'data' => null];
//放入等待区
$data = [
'room_id' => $room_id,
'user_id' => $user_id,
'status' => 0,
'apply_type' => 1
];
$reslut = db::name('vs_room_pit_apply')->insert($data);
if(!$reslut){
return ['code' => 0, 'msg' => '申请失败', 'data' => null];
}
$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' => 1, 'msg' => '申请成功,请等待房主审核', 'data' => null];
}
$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' => 1, 'msg' => '申请成功,请等待房主审核', 'data' => null];
}
}
@@ -315,15 +361,6 @@ class RoomPit extends Model
'a.status' => 0,
];
// $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)){
// $where['a.apply_type'] = 1;
// }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
// $where['a.apply_type'] = 2;
// }
$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();
@@ -432,6 +469,8 @@ class RoomPit extends Model
$apply_type = 2;//K歌
}elseif($room_type == 2){
$apply_type = 3;//拍卖
}elseif($room_type == 7){
$apply_type = 7;//交友
}else{
$apply_type = 1;//聊天
}
@@ -469,7 +508,7 @@ class RoomPit extends Model
continue;
}
//删除他的申请上麦
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0,'apply_type' => 1])->delete();
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete();
if (!$reslut) {
continue;
}
@@ -499,7 +538,7 @@ class RoomPit extends Model
break;
}
//删除他的申请上麦
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0,'apply_type' => 2])->delete();
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete();
if (!$reslut) {
continue;
}
@@ -548,14 +587,16 @@ class RoomPit extends Model
//有人就让他下麦
return ['code' => 0, 'msg' => '拍卖位上已有人,请先抱对方下麦', 'data' => null];
}
$i = 0;
foreach ($to_user as &$value) {
$i++;
// $i = 0;
// foreach ($to_user as &$value) {
// $i++;
$value = $to_user[0];
//删除他的申请上麦
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete();
if (!$reslut) {
continue;
}
// if (!$reslut) {
// continue;
// }
Cache::set('auction_user_'.$room_id,$value);
//聊天室推送系统消息
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value);//财富图标
@@ -566,13 +607,13 @@ class RoomPit extends Model
$text['pit_number'] = 888;
$text['type'] = 1 ;
model('Chat')->sendMsg(1022,$room_id,$text);
Cache::set('auction_user_'.$room_id,$value);
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('Room')->room_operation_record($user_id,$room_id,8,$value);
if($i >= 1){
break;
}
}
// if($i >= 1){
// break;
// }
// }
$count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count();
//申请上麦推送消息
$text = [
@@ -581,6 +622,41 @@ class RoomPit extends Model
];
model('Chat')->sendMsg(1034,$room_id,$text);
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
}elseif($apply_type == 7) {
$i = 0;
foreach ($to_user as &$value) {
//查询当前空麦位
$empty_pit = $this->getRoomNullPitWithout($room_id, [7,8,9,10]);
if (!$empty_pit) {
//退出循环 并终止循环
break;
}
//查询是否已经上麦
$is_on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $value])->field('id')->find();
if ($is_on_pit) {
continue;
}
//删除他的申请上麦
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete();
if (!$reslut) {
continue;
}
$on = $this->OnPit($value, $room_id, $empty_pit);//用户上了这个房间的几号麦位
if ($on['code'] != 1) {
continue;
}
$i++;
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('Room')->room_operation_record($user_id,$room_id,8,$value,$empty_pit);
}
$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' => 1, 'msg' => $i . '位用户上麦成功', 'data' => null];
}
}
return ['code' => 0, 'msg' => '请选择申请上麦的用户', 'data' => null];
@@ -738,10 +814,19 @@ class RoomPit extends Model
}
if($type == 1){//抱麦
$on_9_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id');
if($on_9_pit <= 0){
return ['code' => 0, '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){
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();
if(!$owner && !$host){
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
}
if(!$pit_number){
$room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id');
if($room_type == 2){
@@ -826,7 +911,7 @@ class RoomPit extends Model
if(!$pit_number || $pit_number == 888){
$roomInfo = db::name('vs_room')->where('id',$room_id)->field('label_id,type_id')->find();
if($roomInfo['type_id'] == 2){//拍卖
if($roomInfo['type_id'] == 2 || Cache::get('auction_user_'.$room_id)){//拍卖
//查询当前是否处于拍卖中
$auctioning = db::name('vs_room_auction')
->where(['room_id' => $room_id, 'status' => 2, 'user_id' => $accept_user_id])->find();
@@ -856,6 +941,10 @@ class RoomPit extends Model
}
}
}else{
$step = db::name('vs_room')->where(['id' => $room_id, 'type_id' => 7])->value('step');
if($step && $step != 1 && $pit_number < 9){
return ['code' => 0, 'msg' => '交友房 此阶段不可操作', 'data' => null];
}
$where['room_id'] = $room_id;
$where['pit_number'] = $pit_number;
$where['user_id'] = $accept_user_id;