Files
midi-php/application/cron/controller/TenSeconds.php
2025-09-28 18:16:58 +08:00

69 lines
2.1 KiB
PHP

<?php
namespace app\cron\controller;
use think\Db;
/*
* 定时任务,每秒执行的方法
*/
class TenSeconds
{
/*
* 运行函数
*/
function index()
{
echo "房间在线人数:\n";
$this->auction_end_notice();//拍卖房结束提醒
echo "\n";
//清理切后台超过5分钟的用户
echo "清理切后台超过5分钟的用户\n";
$this->clear_offline_user();
echo "\n";
}
//在线人数
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";
}
//清理切后台超过5分钟的用户
protected function clear_offline_user()
{
$time = time() - 300;
$user_list = db::name('vs_user_in_room_bg')->field('id')->where('updatetime', '<=', $time)->select();
if($user_list){
foreach ($user_list as $v){
//删除
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);
}
}
}
}