在离线状态查询

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['updatetime'] = time();
$save_data['prevtime'] = $user_info['logintime'];//上次登录时间
$save_data['is_online'] = 1;
$reslut = model('User')->update($save_data);
if (!$reslut) {

View File

@@ -2730,46 +2730,17 @@ class Room extends Model
//用户在线状态
public function user_online_status($room_id,$user_id)
{
if(!$room_id || !$user_id){
if(!$user_id){
return ['code' => 0, 'msg' => '参数错误~', 'data' => null];
}
$user = explode(',',$user_id);
//获取腾讯的在线用户
$user_id_array = null;
foreach ($user as $v) {
$user_id_array[] = 'u'.$v;
}
$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,
];
}
$data = [];
foreach ($user as $v){
$data[] = [
'user_id' => $v,
'is_online' => db::name('user')->where('id',$v)->value('is_online'),
];
}
return ['code' => 1, 'msg' => '操作成功', 'data' => $data];
}