在离线

This commit is contained in:
2025-12-02 19:08:07 +08:00
parent 6f9d80c744
commit c4b03097bf
2 changed files with 41 additions and 44 deletions

View File

@@ -11,19 +11,20 @@ use app\common\controller\BaseCom;
class Xintiao extends BaseCom class Xintiao extends BaseCom
{ {
//房间内保持心跳
public function keep_xintiao() public function keep_room_heartbeat()
{ {
$room_id = input('room_id');
$user_id = $this->uid; $user_id = $this->uid;
$is_xintiao = db::name('vs_xintiao')->where('user_id' , $user_id)->find(); $is_xintiao = db::name('vs_room_heartbeat')->where(['user_id' => $user_id, 'room_id' => $room_id])->find();
if($is_xintiao){ if($is_xintiao){
db::name('vs_xintiao')->where('user_id' , $user_id)->update(['updatetime' => time()]); db::name('vs_room_heartbeat')->where('user_id' , $user_id)->update(['updatetime' => time()]);
}else{ }else{
db::name('vs_xintiao')->insert([ db::name('vs_room_heartbeat')->insert([
'user_id' => $user_id, 'user_id' => $user_id,
'createtime' => time(), 'createtime' => time(),
'updatetime' => time() 'updatetime' => time()
]); ]);
} }
return V(1, '成功', null); return V(1, '成功', null);
} }
@@ -33,7 +34,4 @@ class Xintiao extends BaseCom
} }

View File

@@ -25,57 +25,56 @@ class RoomPan
$this->blind_box_turntable_gift_send();//盲盒转盘礼物补发 $this->blind_box_turntable_gift_send();//盲盒转盘礼物补发
echo "盲盒转盘礼物补发结束 \n"; echo "盲盒转盘礼物补发结束 \n";
echo "查询用户在线状态\n"; echo "查询用户是否在房间内保持心跳\n";
$this->online_status(); $this->keep_room_heartbeat();
echo "\n"; echo "\n";
} }
//查询在线状态
protected function online_status() /*
{ * 查询用户是否在房间内保持心跳
$user_list = db::name('vs_xintiao')->select(); */
public function keep_room_heartbeat(){
$user_list = db::name('vs_room_heartbeat')->select();
if($user_list){ if($user_list){
foreach ($user_list as $value){ foreach ($user_list as $value){
if(time() - $value['updatetime'] >= 180){//三分钟没有上线 $is_online = db::name('vs_room_visitor')
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online'); ->where(['user_id' => $value['user_id'],'room_id' => $value['room_id']])
if($is_online == 2){ ->order('id desc')
//在线 ->field('id,is_online,room_id')
continue; ->find();
} if($is_online){//现在 在房间内
//断线 if(time() - $value['updatetime'] >= 180){//三分钟没有心跳
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>2]); if($is_online['is_online'] == 2){//之前就是离开
//是否在房间内 continue;
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id'); }else{//之前就是在线则改为离开
if($room_id){ db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>2]);
$text['text'] = '掉线!'; $text['text'] = '离开';
$text['user_id'] = $value['user_id']; $text['user_id'] = $value['user_id'];
$text['type'] = 2; $text['type'] = 2;
model('api/Chat')->sendMsg(1058,$room_id,$text); model('api/Chat')->sendMsg(1058,$is_online['room_id'],$text);
} }
}else{
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online');
if($is_online == 1){
//在线
continue;
}else{ }else{
//修改在线状态 if($is_online['is_online'] == 1){//之前就是在线
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>1]); continue;
//是否在房间内 }else{//之前就是离开则改为在线
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id'); db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>1]);
if($room_id){ $text['text'] = '回到房间';
$text['text'] = '重新上线!';
$text['user_id'] = $value['user_id']; $text['user_id'] = $value['user_id'];
$text['type'] = 1; $text['type'] = 1;
model('api/Chat')->sendMsg(1058,$room_id,$text); model('api/Chat')->sendMsg(1058,$is_online['room_id'],$text);
} }
} }
}else{
//删掉
db::name('vs_room_heartbeat')->where('id',$value['id'])->delete();
} }
} }
} }
} }
/* /*
* 盲盒转盘礼物推送补发 * 盲盒转盘礼物推送补发
*/ */