Files
midi-php/application/cron/controller/TenSeconds.php

69 lines
2.1 KiB
PHP
Raw Normal View History

2025-08-13 10:43:56 +08:00
<?php
namespace app\cron\controller;
use think\Db;
/*
* 定时任务,每秒执行的方法
*/
class TenSeconds
{
/*
* 运行函数
*/
function index()
{
echo "房间在线人数:\n";
$this->auction_end_notice();//拍卖房结束提醒
echo "\n";
2025-09-28 15:48:36 +08:00
//清理切后台超过5分钟的用户
echo "清理切后台超过5分钟的用户\n";
$this->clear_offline_user();
echo "\n";
2025-08-13 10:43:56 +08:00
}
2025-09-28 15:48:36 +08:00
//在线人数
2025-08-13 10:43:56 +08:00
protected function auction_end_notice()
{
$auction_list = db::name('vs_room')->field('id')->where(['room_status'=>1,'apply_status' => 2,'type_id' =>['<>',6]])->select();
$data_count = 0;
$data_number = 0;
if($auction_list){
foreach ($auction_list as &$value){
$num = model('api/Room')->room_online_number($value['id']);
// $on_pit_num = db::name('vs_room_pit')->field('user_id')->where(['room_id' => $value['id'],'user_id' => ['<>',0]])->count();
if($num['code'] == 1){
if($num['data']['online_number'] > 0){
$text = [
'online_number' => $num['data']['online_number'],
'room_id' => $value['id'],//接受房间id
];
model('api/Chat')->sendMsg(1036,$value['id'],$text);
$data_number++;
}
}
$data_count++;
}
}
echo "房间共" . $data_count . "条数据\n";
echo "房间在线人数>0 的总共" . $data_number . "条数据\n";
}
2025-09-28 15:48:36 +08:00
//清理切后台超过5分钟的用户
protected function clear_offline_user()
{
2025-09-28 19:45:23 +08:00
$time = time() - 300;
2025-09-28 18:49:49 +08:00
$user_list = db::name('vs_user_in_room_bg')->where('updatetime', '<=', $time)->select();
2025-09-28 15:48:36 +08:00
if($user_list){
2025-09-28 18:16:58 +08:00
foreach ($user_list as $v){
2025-09-28 15:48:36 +08:00
//删除
2025-09-28 18:16:58 +08:00
db::name('vs_user_in_room_bg')->delete($v['id']);
model('api/Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
2025-09-28 15:48:36 +08:00
}
}
}
2025-08-13 10:43:56 +08:00
}