1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?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')->whereHas('user')->get() as $order) {
- // 无用户订单,跳过
- // 清理全部流量,重置重置日期和等级
- $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]);
- }
- }
- }
|