Files
ProxyPanel/app/Console/Commands/ServiceTimer.php
2020-09-12 13:40:20 +08:00

67 lines
1.8 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Components\Helpers;
use App\Models\Order;
use Illuminate\Console\Command;
use Log;
class ServiceTimer extends Command
{
protected $signature = 'serviceTimer';
protected $description = '服务计时器';
public function handle(): void
{
$jobStartTime = microtime(true);
// 扣减用户到期商品的流量
$this->decGoodsTraffic();
$jobEndTime = microtime(true);
$jobUsedTime = round(($jobEndTime - $jobStartTime), 4);
Log::info(
'---【' . $this->description . '】完成---,耗时' . $jobUsedTime . '秒'
);
}
// 扣减用户到期商品的流量
private function decGoodsTraffic(): void
{
//获取失效的套餐
foreach (
Order::activePlan()->where(
'expired_at',
'<=',
date('Y-m-d H:i:s')
)->with('user')->get() as $order
) {
// 清理全部流量,重置重置日期和等级 TODO 可用流量变动日志加入至UserObserver
$user = $order->user;
$user->update(
[
'u' => 0,
'd' => 0,
'transfer_enable' => 0,
'reset_time' => null,
'level' => 0,
]
);
Helpers::addUserTrafficModifyLog(
$user->id,
$order->id,
$user->transfer_enable,
0,
'[定时任务]用户所购商品到期,扣减商品对应的流量'
);
// 过期本订单
$order->update(['is_expire' => 1]);
}
}
}