From 0d36a906ff1aeb70032d37b547b828068b9b018a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Thu, 4 Dec 2025 19:42:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E6=88=BF=E9=97=B4=E5=86=85=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E8=B6=85=E8=BF=8724=E5=B0=8F=E6=97=B6=20=E6=B8=85?= =?UTF-8?q?=E7=90=86=E5=87=BA=E6=88=BF=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/cron/controller/DaySeconds.php | 24 +++++++++++++++++++++- application/cron/controller/RoomPan.php | 4 ++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/application/cron/controller/DaySeconds.php b/application/cron/controller/DaySeconds.php index db93ef2..246c15b 100644 --- a/application/cron/controller/DaySeconds.php +++ b/application/cron/controller/DaySeconds.php @@ -18,12 +18,34 @@ class DaySeconds echo "清除房间热度值:\n"; $this->clear_room_today_hot_value();//0点以后房间热度值清零 echo "\n"; + + echo "清除房间离线超24小时的用户:\n"; + $this->clear_room_offline_user();//0点以后清除房间离线超24小时用户 + echo "\n"; + } + + + /* + * 0点以后清除房间离线超24小时用户 + * 配置:定时脚本每天 0点 执行 + * 配置: + */ + public function clear_room_offline_user() { + $room = db::name('vs_room_visitor')->where(['is_online' => 2])->select(); + if($room){ + foreach ($room as $value) { + $time = time() - $value['updatetime']; + if($time > 86400){ + model('api/Room')->quit_room($value['user_id'], $value['room_id'],$value['user_id']); + } + } + } } /* * 0点以后房间热度值清零 * 配置:定时脚本每天 0点 执行 - * 配置:http://vschat.qxmier.com/api/Cron/DaySeconds + * 配置: */ public function clear_room_today_hot_value() { $where = []; diff --git a/application/cron/controller/RoomPan.php b/application/cron/controller/RoomPan.php index ae855f1..33a1062 100644 --- a/application/cron/controller/RoomPan.php +++ b/application/cron/controller/RoomPan.php @@ -48,7 +48,7 @@ class RoomPan if($is_online['is_online'] == 2){//之前就是离开 continue; }else{//之前就是在线则改为离开 - db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>2]); + db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>2,'updatetime'=>time()]); db::name('user')->where('id',$value['user_id'])->update(['is_online'=>2]); $text['text'] = '离开'; $text['user_id'] = $value['user_id']; @@ -59,7 +59,7 @@ class RoomPan if($is_online['is_online'] == 1){//之前就是在线 continue; }else{//之前就是离开则改为在线 - db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>1]); + db::name('vs_room_visitor')->where('id',$is_online['id'])->update(['is_online'=>1,'updatetime' => time()]); db::name('user')->where('id',$value['user_id'])->update(['is_online'=>1]); $text['text'] = '回到房间'; $text['user_id'] = $value['user_id'];