在离线状态查询

This commit is contained in:
2025-12-02 16:33:35 +08:00
parent 263cbe1bdc
commit 48f0c44fba
2 changed files with 8 additions and 36 deletions

View File

@@ -196,6 +196,7 @@ class Login extends Model
$save_data['loginip'] = request()->server('HTTP_X_REAL_IP') ?: request()->server('HTTP_X_FORWARDED_FOR') ?: request()->ip(); $save_data['loginip'] = request()->server('HTTP_X_REAL_IP') ?: request()->server('HTTP_X_FORWARDED_FOR') ?: request()->ip();
$save_data['updatetime'] = time(); $save_data['updatetime'] = time();
$save_data['prevtime'] = $user_info['logintime'];//上次登录时间 $save_data['prevtime'] = $user_info['logintime'];//上次登录时间
$save_data['is_online'] = 1;
$reslut = model('User')->update($save_data); $reslut = model('User')->update($save_data);
if (!$reslut) { if (!$reslut) {

View File

@@ -2730,46 +2730,17 @@ class Room extends Model
//用户在线状态 //用户在线状态
public function user_online_status($room_id,$user_id) public function user_online_status($room_id,$user_id)
{ {
if(!$room_id || !$user_id){ if(!$user_id){
return ['code' => 0, 'msg' => '参数错误~', 'data' => null]; return ['code' => 0, 'msg' => '参数错误~', 'data' => null];
} }
$user = explode(',',$user_id); $user = explode(',',$user_id);
//获取腾讯的在线用户 //获取腾讯的在线用户
$user_id_array = null; $data = [];
foreach ($user as $v) { foreach ($user as $v){
$user_id_array[] = 'u'.$v; $data[] = [
} 'user_id' => $v,
'is_online' => db::name('user')->where('id',$v)->value('is_online'),
$online_user = []; ];
$online_users = model('Tencent')->query_user_online_status($user_id_array);
if(isset($online_users['ActionStatus']) && $online_users['ActionStatus'] == 'OK'){
if($online_users['QueryResult']){
foreach ($online_users['QueryResult'] as $v){
if($v['Status'] == "Online"){
//截取用户ID前面的 u 并获取用户ID
$user_id = substr($v['To_Account'],1);
$online_user[] = $user_id;
}
}
}
}else{
return ['code' => 0, 'msg' => $online_users, 'data' => null];
}
$array = $online_user;
$data = null;
foreach ($user as &$v){
if(!in_array($v,$array)){
$data[] = [
'user_id' => $v,
'is_online' => 0,
];
}else{
$data[] = [
'user_id' => $v,
'is_online' => 1,
];
}
} }
return ['code' => 1, 'msg' => '操作成功', 'data' => $data]; return ['code' => 1, 'msg' => '操作成功', 'data' => $data];
} }