重连后房间处理
This commit is contained in:
@@ -451,4 +451,13 @@ class Room extends BaseCom
|
|||||||
$reslut = model('Room')->user_reconnect($this->uid, $room_id);
|
$reslut = model('Room')->user_reconnect($this->uid, $room_id);
|
||||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//用户在房间内切后台保留机制
|
||||||
|
public function user_in_room_background()
|
||||||
|
{
|
||||||
|
$room_id = input('room_id', 0);
|
||||||
|
$type = input('type', 1);//1-切后台,2-切前台
|
||||||
|
$reslut = model('Room')->user_in_room_background($this->uid, $room_id,$type);
|
||||||
|
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -2548,4 +2548,36 @@ class Room extends Model
|
|||||||
}
|
}
|
||||||
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
|
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function user_in_room_background($user_id,$room_id,$type)
|
||||||
|
{
|
||||||
|
if(!$room_id){
|
||||||
|
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
|
||||||
|
}
|
||||||
|
if($type == 1){//1-切后台,2-切前台
|
||||||
|
$is_bg = db::name('vs_user_in_room_bg')->where(['user_id' => $user_id,'room_id' => $room_id])->find();
|
||||||
|
if($is_bg){
|
||||||
|
$up_bg = [
|
||||||
|
'updatetime' => time(),
|
||||||
|
];
|
||||||
|
db::name('vs_user_in_room_bg')->where('id',$is_bg['id'])->update($up_bg);
|
||||||
|
}else{
|
||||||
|
$data = [
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'room_id' => $room_id,
|
||||||
|
'createtime' => time(),
|
||||||
|
'updatetime' => time(),
|
||||||
|
];
|
||||||
|
$room_background = db::name('vs_user_in_room_bg')->insert($data);
|
||||||
|
if(!$room_background){
|
||||||
|
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
db::name('vs_user_in_room_bg')->where(['user_id' => $user_id,'room_id' => $room_id])->delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -932,10 +932,14 @@ class Tencent extends Model
|
|||||||
$text['type'] = 2;
|
$text['type'] = 2;
|
||||||
model('Chat')->sendMsg(1058,$v['room_id'],$text);
|
model('Chat')->sendMsg(1058,$v['room_id'],$text);
|
||||||
}else{
|
}else{
|
||||||
|
//查询是否有切后台的操作
|
||||||
|
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
|
||||||
|
if(!$bg_room){
|
||||||
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} elseif ($action == 'Login') {
|
} elseif ($action == 'Login') {
|
||||||
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
|
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
|
||||||
|
|||||||
@@ -18,9 +18,14 @@ class TenSeconds
|
|||||||
echo "房间在线人数:\n";
|
echo "房间在线人数:\n";
|
||||||
$this->auction_end_notice();//拍卖房结束提醒
|
$this->auction_end_notice();//拍卖房结束提醒
|
||||||
echo "\n";
|
echo "\n";
|
||||||
|
//清理切后台超过5分钟的用户
|
||||||
|
echo "清理切后台超过5分钟的用户\n";
|
||||||
|
$this->clear_offline_user();
|
||||||
|
echo "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//在线人数
|
||||||
protected function auction_end_notice()
|
protected function auction_end_notice()
|
||||||
{
|
{
|
||||||
$auction_list = db::name('vs_room')->field('id')->where(['room_status'=>1,'apply_status' => 2,'type_id' =>['<>',6]])->select();
|
$auction_list = db::name('vs_room')->field('id')->where(['room_status'=>1,'apply_status' => 2,'type_id' =>['<>',6]])->select();
|
||||||
@@ -40,17 +45,6 @@ class TenSeconds
|
|||||||
$data_number++;
|
$data_number++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// else{
|
|
||||||
// if($on_pit_num > 0){
|
|
||||||
// $text = [
|
|
||||||
// 'online_number' => $on_pit_num,
|
|
||||||
// 'room_id' => $value['id'],//接受房间id
|
|
||||||
// ];
|
|
||||||
// model('api/Chat')->sendMsg(1036,$value['id'],$text);
|
|
||||||
// $data_number++;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
$data_count++;
|
$data_count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -58,4 +52,17 @@ class TenSeconds
|
|||||||
echo "房间在线人数>0 的总共" . $data_number . "条数据\n";
|
echo "房间在线人数>0 的总共" . $data_number . "条数据\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//清理切后台超过5分钟的用户
|
||||||
|
protected function clear_offline_user()
|
||||||
|
{
|
||||||
|
$time = time() - 300;
|
||||||
|
$user_list = db::name('vs_user_in_room_bg')->field('id')->where('updatetime', '<=', $time)->select();
|
||||||
|
if($user_list){
|
||||||
|
foreach ($user_list as &$value){
|
||||||
|
//删除
|
||||||
|
db::name('vs_user_in_room_bg')->delete($value['id']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user