From d3e819eb421128c4be152638fb59a973c86c7186 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Mon, 27 Nov 2023 13:42:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eim=E6=B6=88=E6=81=AF=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Amqp/Consumer/UserImOffDelayDirectConsumer.php | 10 +++++++++- app/Services/UserService.php | 6 ------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/Amqp/Consumer/UserImOffDelayDirectConsumer.php b/app/Amqp/Consumer/UserImOffDelayDirectConsumer.php index eb679b2..a83ea66 100644 --- a/app/Amqp/Consumer/UserImOffDelayDirectConsumer.php +++ b/app/Amqp/Consumer/UserImOffDelayDirectConsumer.php @@ -41,7 +41,7 @@ class UserImOffDelayDirectConsumer extends ConsumerMessage // 获取用户数据 $params = array(); - $params['user_id'] = $data['Info']['To_Account']; + $params['user_id'] = $data['user_id']; $user = User::getOne($params); if (empty($user)){ Log::getInstance("queue-UserImOff")->error("无该用户"); @@ -64,6 +64,14 @@ class UserImOffDelayDirectConsumer extends ConsumerMessage return Result::ACK; } + $im_login_at = strtotime($user['im_login_at']); + + $diff_time = time() - $im_login_at; + if ($diff_time <= 3 * 60){ + Log::getInstance("queue-UserImOff")->info("用户刚上线未满30分钟,无需处理"); + return Result::ACK; + } + // 修改用户表在线状态 $params = array(); $params['user_id'] = $user['user_id']; diff --git a/app/Services/UserService.php b/app/Services/UserService.php index e4802d7..9724e41 100644 --- a/app/Services/UserService.php +++ b/app/Services/UserService.php @@ -1006,12 +1006,6 @@ class UserService extends BaseService $result['message'] = "在线状态存储失败"; return $result; } - - // 添加缓存 - $redis = $this->container->get(Redis::class); - $redis_key = "user_im_online_" . $user['user_id']; - $redis->set($redis_key,$msg_data['RequestTime'],3*60); - } elseif ($msg_data['Info']['Action'] == "Disconnect"){ // 点右上角退出/断网(如手机开启飞行模式)/微信切后台/杀掉微信进程 $time = strtotime($msg_data['RequestTime']) + 3*60;