出价后 麦位问题处理
This commit is contained in:
@@ -21,27 +21,24 @@ class Sign extends Model
|
|||||||
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
|
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
|
||||||
}
|
}
|
||||||
//修改房间状态
|
//修改房间状态
|
||||||
$sign_time = db::name('vs_room_sign')->where('room_id',$room_id)->order('id desc')->value('sign_time') + 1;
|
db::name('vs_room')->where('id',$room_id)->update([
|
||||||
$result = db::name('vs_room')->where('id',$room_id)->update([
|
'sign_type' => 1,//签约房状态:0-等待开始,1-进行中
|
||||||
'sign_type' => 1,
|
|
||||||
// 'sign_time' => $sign_time,
|
|
||||||
'updatetime' => time()
|
'updatetime' => time()
|
||||||
]);
|
]);
|
||||||
$res = db::name('vs_room_sign')->insertGetId([
|
$res = db::name('vs_room_sign')->insertGetId([
|
||||||
'room_id' => $room_id,
|
'room_id' => $room_id,
|
||||||
'sign_type' => 1,
|
'sign_type' => 1,
|
||||||
'sign_time' => $sign_time,
|
|
||||||
'end_time' => time() + 60 * 5,//签约时长5分钟
|
'end_time' => time() + 60 * 5,//签约时长5分钟
|
||||||
'sign_user_id' => $sign_user_id,
|
'sign_user_id' => $sign_user_id,
|
||||||
'createtime' => time()
|
'createtime' => time()
|
||||||
]);
|
]);
|
||||||
if($result){
|
if($res){
|
||||||
//给前端推送数据
|
//给前端推送数据
|
||||||
$text['text'] = '开始签约';
|
$text['text'] = '开始签约';
|
||||||
$text['sign_id'] = $res;
|
$text['sign_id'] = $res;
|
||||||
model('api/Chat')->sendMsg(1090,$room_id,$text);
|
model('api/Chat')->sendMsg(1090,$room_id,$text);
|
||||||
|
|
||||||
return ['code' => 1, 'msg' => '成功','data' => $sign_time];
|
return ['code' => 1, 'msg' => '成功','data' => $res];
|
||||||
}else{
|
}else{
|
||||||
return ['code' => 0, 'msg' => '网络错误,请重试','data' => null];
|
return ['code' => 0, 'msg' => '网络错误,请重试','data' => null];
|
||||||
}
|
}
|
||||||
@@ -351,76 +348,87 @@ class Sign extends Model
|
|||||||
//获取房间2号位上的用户
|
//获取房间2号位上的用户
|
||||||
$on_pit_user = db::name('vs_room_pit')
|
$on_pit_user = db::name('vs_room_pit')
|
||||||
->where(['room_id' => $room_id,'pit_number' => 2])->field('before_pit_number,user_id')->find();
|
->where(['room_id' => $room_id,'pit_number' => 2])->field('before_pit_number,user_id')->find();
|
||||||
|
|
||||||
//处理2号位
|
//处理2号位
|
||||||
if($on_pit_user['user_id']){
|
if($on_pit_user && $on_pit_user['user_id'] && $on_pit_user['user_id'] != $user_id){
|
||||||
//获取2号位上的用户前一个麦位上是否有用户
|
//2号位有其他用户,需要处理该用户
|
||||||
|
//获取2号位用户之前的位置上是否有用户
|
||||||
$before_pit_number = db::name('vs_room_pit')
|
$before_pit_number = db::name('vs_room_pit')
|
||||||
->where(['room_id' => $room_id,'pit_number' => $on_pit_user['before_pit_number']])->value('user_id');
|
->where(['room_id' => $room_id,'pit_number' => $on_pit_user['before_pit_number']])->value('user_id');
|
||||||
//有用户 就下麦
|
|
||||||
if($before_pit_number){
|
if($before_pit_number){
|
||||||
model('api/RoomPit')->DownPit($on_pit_user['user_id'], $room_id,2);
|
//之前位置有人,直接下麦
|
||||||
}else{//无用户 换麦
|
model('api/RoomPit')->DownPit($on_pit_user['user_id'], $room_id, 2);
|
||||||
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $on_pit_user['before_pit_number']])->update([ 'user_id' => $on_pit_user['user_id']]);
|
} else {
|
||||||
|
//之前位置无人,换麦
|
||||||
|
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $on_pit_user['before_pit_number']])
|
||||||
|
->update(['user_id' => $on_pit_user['user_id']]);
|
||||||
|
|
||||||
$FromUserInfo = db::name('user')->where('id',$on_pit_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find();
|
//推送换麦消息
|
||||||
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($on_pit_user['user_id']);//财富图标
|
$this->sendPitChangeMessage($on_pit_user['user_id'], $room_id, 2, $on_pit_user['before_pit_number']);
|
||||||
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($on_pit_user['user_id']);//魅力图标
|
|
||||||
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($on_pit_user['user_id'],1);
|
|
||||||
$FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $on_pit_user['user_id'],'room_id' => $room_id])->value('charm');
|
|
||||||
$Nobility = model('api/Nobility')->getUserNobilityInfo($on_pit_user['user_id']);
|
|
||||||
$FromUserInfo['nobility_info'] = $Nobility;
|
|
||||||
$FromUserInfo['mic_cycle'] = model('api/Decorate')->user_decorate_detail($on_pit_user['user_id'],3);
|
|
||||||
$FromUserInfo['nobility_image'] = $Nobility['play_image'];
|
|
||||||
$FromUserInfo['nickname_color'] = $Nobility['nick_name_color'];
|
|
||||||
|
|
||||||
$text['text'] = $FromUserInfo['nickname'].' 换到老板位';
|
|
||||||
$text['FromUserInfo'] = $FromUserInfo;
|
|
||||||
$text['from_pit_number'] = 2;
|
|
||||||
$text['to_pit_number'] = $on_pit_user['before_pit_number'];
|
|
||||||
model('Chat')->sendMsg(1039,$room_id,$text);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
//判断是否在麦位上
|
|
||||||
$on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id'=>$user_id])->value('pit_number');
|
|
||||||
if($on_pit){
|
|
||||||
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $on_pit])
|
|
||||||
->update([ 'before_pit_number' => $on_pit,'pit_number' => 0]);
|
|
||||||
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 2])
|
|
||||||
->update(['user_id'=>$user_id]);
|
|
||||||
|
|
||||||
$FromUserInfo = db::name('user')->where('id',$on_pit_user['user_id'])->field('id as user_id,nickname,avatar,sex')->find();
|
|
||||||
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($on_pit_user['user_id']);//财富图标
|
|
||||||
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($on_pit_user['user_id']);//魅力图标
|
|
||||||
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($on_pit_user['user_id'],1);
|
|
||||||
$FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $on_pit_user['user_id'],'room_id' => $room_id])->value('charm');
|
|
||||||
$Nobility = model('api/Nobility')->getUserNobilityInfo($on_pit_user['user_id']);
|
|
||||||
$FromUserInfo['nobility_info'] = $Nobility;
|
|
||||||
$FromUserInfo['mic_cycle'] = model('api/Decorate')->user_decorate_detail($on_pit_user['user_id'],3);
|
|
||||||
$FromUserInfo['nobility_image'] = $Nobility['play_image'];
|
|
||||||
$FromUserInfo['nickname_color'] = $Nobility['nick_name_color'];
|
|
||||||
|
|
||||||
$text['text'] = $FromUserInfo['nickname'].' 换到老板位';
|
|
||||||
$text['FromUserInfo'] = $FromUserInfo;
|
|
||||||
$text['from_pit_number'] = $on_pit;
|
|
||||||
$text['to_pit_number'] = 2;
|
|
||||||
model('Chat')->sendMsg(1039,$room_id,$text);
|
|
||||||
}else{
|
|
||||||
model('api/RoomPit')->OnPit($user_id, $room_id, 2);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{//下麦
|
//处理当前用户上2号位
|
||||||
//在麦位上的用户 全部下麦
|
if($user_id){
|
||||||
$on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'status' => 1,'user_id'=>['>',0],'pit_number' => ['<',3]])->select();
|
//查询当前用户是否已在麦上
|
||||||
if($on_pit){
|
$user_pit_info = db::name('vs_room_pit')
|
||||||
foreach ($on_pit as $v){
|
->where(['room_id' => $room_id, 'user_id' => $user_id])
|
||||||
model('RoomPit')->DownPit($v['user_id'], $room_id,$v['pit_number']);
|
->field('pit_number')->find();
|
||||||
|
|
||||||
|
if($user_pit_info && $user_pit_info['pit_number']){
|
||||||
|
//用户已在麦上,换到2号位
|
||||||
|
//记录原麦位信息
|
||||||
|
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 2])
|
||||||
|
->update(['user_id' => $user_id]);
|
||||||
|
|
||||||
|
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $user_pit_info['pit_number']])
|
||||||
|
->update(['before_pit_number' => $user_pit_info['pit_number'], 'pit_number' => 0]);
|
||||||
|
|
||||||
|
//推送换麦消息
|
||||||
|
$this->sendPitChangeMessage($user_id, $room_id, $user_pit_info['pit_number'], 2);
|
||||||
|
} else {
|
||||||
|
//用户不在麦上,直接上2号麦
|
||||||
|
model('api/RoomPit')->OnPit($user_id, $room_id, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//下麦 - 在麦位上的用户全部下麦
|
||||||
|
$on_pit_users = db::name('vs_room_pit')
|
||||||
|
->where(['room_id' => $room_id, 'status' => 1, 'user_id' => ['>', 0], 'pit_number' => ['<', 3]])
|
||||||
|
->select();
|
||||||
|
|
||||||
|
if($on_pit_users){
|
||||||
|
foreach ($on_pit_users as $pit_user){
|
||||||
|
model('RoomPit')->DownPit($pit_user['user_id'], $room_id, $pit_user['pit_number']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 发送麦位变更消息
|
||||||
|
*/
|
||||||
|
private function sendPitChangeMessage($user_id, $room_id, $from_pit, $to_pit){
|
||||||
|
$userInfo = db::name('user')->where('id', $user_id)->field('id as user_id,nickname,avatar,sex')->find();
|
||||||
|
$userInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
|
||||||
|
$userInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
|
||||||
|
$userInfo['dress'] = model('Decorate')->user_decorate_detail($user_id, 1);
|
||||||
|
$userInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $user_id, 'room_id' => $room_id])->value('charm');
|
||||||
|
$nobility = model('api/Nobility')->getUserNobilityInfo($user_id);
|
||||||
|
$userInfo['nobility_info'] = $nobility;
|
||||||
|
$userInfo['mic_cycle'] = model('api/Decorate')->user_decorate_detail($user_id, 3);
|
||||||
|
$userInfo['nobility_image'] = $nobility['play_image'];
|
||||||
|
$userInfo['nickname_color'] = $nobility['nick_name_color'];
|
||||||
|
|
||||||
|
$text['text'] = $userInfo['nickname'].' 换到老板位';
|
||||||
|
$text['FromUserInfo'] = $userInfo;
|
||||||
|
$text['from_pit_number'] = $from_pit;
|
||||||
|
$text['to_pit_number'] = $to_pit;
|
||||||
|
model('Chat')->sendMsg(1039, $room_id, $text);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 签约延时
|
* 签约延时
|
||||||
|
|||||||
Reference in New Issue
Block a user