在离线

This commit is contained in:
2025-12-02 17:30:33 +08:00
parent 4acf42aba3
commit f3104f30a8
3 changed files with 54 additions and 50 deletions

View File

@@ -461,9 +461,9 @@ class Login extends Model
//退出登录
public function logout($token){
$user_info = model('UserToken')->where('token', $token)->find();
$user_info = db::name('user_token')->where('token', $token)->find();
if($user_info){
model('UserToken')->where('id', $user_info['id'])->update(['token' => 1]);
db::name('user_token')->where('id', $user_info['id'])->update(['token' => 1]);
//断线
db::name('user')->where('id',$user_info['user_id'])->update(['is_online'=>2]);
//是否在房间内

View File

@@ -20,55 +20,9 @@ class FriendEnd
$this->clear_room_end();//清除私密小屋过期数据
echo "清除私密小屋过期数据结束 \n";
echo "查询在线状态:\n";
$this->online_status();
echo "\n";
}
//查询在线状态
protected function online_status()
{
$user_list = db::name('vs_xintiao')->select();
if($user_list){
foreach ($user_list as $value){
if(time() - $value['updatetime'] >= 183){//2秒刷新一次加上用户多 三分钟补偿3秒
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online');
if($is_online == 2){
//在线
continue;
}
//断线
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>2]);
//是否在房间内
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id');
if($room_id){
$text['text'] = '掉线!';
$text['user_id'] = $value['user_id'];
$text['type'] = 2;
model('Chat')->sendMsg(1058,$room_id,$text);
}
}else{
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online');
if($is_online == 1){
//在线
continue;
}else{
//修改在线状态
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>1]);
//是否在房间内
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id');
if($room_id){
$text['text'] = '重新上线!';
$text['user_id'] = $value['user_id'];
$text['type'] = 1;
model('Chat')->sendMsg(1058,$room_id,$text);
}
}
}
}
}
}
//清除交友房过期未结束数据
public function clearFriendingEndRoom()
@@ -83,7 +37,7 @@ class FriendEnd
if($friending_info){
//判断结束时间是否到期
if($friending_info['end_time'] <= time() || $room['step'] == 3){
model('Friend')->end_friend(0,$room['id'],$friending_info['id'],1);
model('api/Friend')->end_friend(0,$room['id'],$friending_info['id'],1);
}
}
}
@@ -98,7 +52,7 @@ class FriendEnd
$room_list = db::name('vs_room_cp_movie')->where(['status' => 1,'type'=>1,'time_day' =>['<',time()]])->select();
if(!empty($room_list)){
foreach ($room_list as $room) {
model('Friend')->outRoom(0,$room['room_id']);
model('api/Friend')->outRoom(0,$room['room_id']);
}
}
}

View File

@@ -24,8 +24,58 @@ class RoomPan
echo "盲盒转盘礼物补发:\n";
$this->blind_box_turntable_gift_send();//盲盒转盘礼物补发
echo "盲盒转盘礼物补发结束 \n";
echo "查询用户在线状态:\n";
$this->online_status();
echo "\n";
}
//查询在线状态
protected function online_status()
{
$user_list = db::name('vs_xintiao')->select();
if($user_list){
foreach ($user_list as $value){
if(time() - $value['updatetime'] >= 180){//三分钟没有上线
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online');
if($is_online == 2){
//在线
continue;
}
//断线
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>2]);
//是否在房间内
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id');
if($room_id){
$text['text'] = '掉线!';
$text['user_id'] = $value['user_id'];
$text['type'] = 2;
model('api/Chat')->sendMsg(1058,$room_id,$text);
}
}else{
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online');
if($is_online == 1){
//在线
continue;
}else{
//修改在线状态
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>1]);
//是否在房间内
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id');
if($room_id){
$text['text'] = '重新上线!';
$text['user_id'] = $value['user_id'];
$text['type'] = 1;
model('api/Chat')->sendMsg(1058,$room_id,$text);
}
}
}
}
}
}
/*
* 盲盒转盘礼物推送补发
*/