12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- namespace App\Console\Commands;
- use App\Models\User;
- use App\Components\Helpers;
- use App\Notifications\AccountExpire;
- use Illuminate\Console\Command;
- use Log;
- class UserFree extends Command
- {
- protected $signature = 'userfree';
- 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
- {
- //获取用户10G的用户 定时改到期
- foreach (User::whereEnable(1)->where("transfer_enable",'=',MB * ((int) sysConfig('default_traffic')))->get() as $user) {
- // 用户名不是邮箱的跳过
- if (filter_var($user->email, FILTER_VALIDATE_EMAIL) === false) {
- continue;
- }
- //$expired_at = strtotime('-1 day',$user->expired_at);
- $user->update([
- "expired_at" => date('y-m-d',strtotime('-2 day')),
- "enable" => 0
- ]);
- $user->notify(new AccountExpire($user->expired_at));
- }
- //获取失效的套餐
- // 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]);
- // }
- }
- }
|