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

90 lines
2.8 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";
//房间营业时间结束后把用户踢出房间
// echo "房间营业时间结束后把用户踢出房间\n";
// $this->room_end_kick_user();
// echo "\n";
echo "清除房间热度值:\n";
$this->clear_room_today_hot_value();//整点以后房间热度值清零
echo "\n";
}
//房间营业时间结束后把用户踢出房间
public function room_end_kick_user()
{
//查找房间有人的用户
$room_user_list = Db::name('vs_room_visitor')->group('room_id')->select();
if($room_user_list){
foreach ($room_user_list as $room_user){
//查找房间营业时间
$room_info = Db::name('vs_room')->where('id',$room_user['room_id'])->find();
//房间是否在营业时间
$startTime = $room_info['start_time'];
$endTime = $room_info['end_time'];
//查看现在时间是否在营业时间
$isBusinessHours = model('api/Room')-> isBetweenTime($startTime, $endTime);
//当前时间不在营业时间内
if (!$isBusinessHours) {
$user_list = Db::name('vs_room_visitor')->where('room_id',$room_user['room_id'])->select();
if($user_list){
foreach ($user_list as $user){
model('Room')->quit_room($room_info['user_id'], $room_user['room_id'],$user['user_id'],1);
}
}
}
echo "房间:".$room_user['room_id']."营业时间结束,把用户踢出房间\n";
}
}
}
/*
* 整点以后房间热度值清零
* 配置:
*/
public function clear_room_today_hot_value() {
$where = [];
$where['delete_time'] = 0;
$where['is_show_room'] = 1;
$room = db::name('vs_room')->where($where)->select();
echo date('Y-m-d H:i:s').' 开始清零:'.count($room)."\n";
foreach ($room as $key => $value) {
$data = [
'today_hot_value' => 0,
];
db::name('vs_room')->where(['id' => $value['id']])->update($data);
}
echo date('Y-m-d H:i:s').' 完成'."\n";
}
}