AutoDecGoodsTrafficJob.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Console\Commands;
  3. use Illuminate\Console\Command;
  4. use App\Http\Models\OrderGoods;
  5. use App\Http\Models\User;
  6. use Log;
  7. class AutoDecGoodsTrafficJob extends Command
  8. {
  9. protected $signature = 'command:autoDecGoodsTrafficJob';
  10. protected $description = '自动扣除到期流量包的流量';
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. public function handle()
  16. {
  17. $orderGoods = OrderGoods::query()->with(['user', 'goods'])->where('is_expire', 0)->get();
  18. foreach ($orderGoods as $og) {
  19. if (empty($og->goods) || $og->goods->is_del || empty($og->user)) {
  20. continue;
  21. }
  22. // 到期自动处理
  23. if (date("Y-m-d H:i:s", strtotime("-" . $og->goods->days . " days")) >= $og->created_at) {
  24. if ($og->user->transfer_enable - $og->traffic * 1048576 <= 0) {
  25. User::query()->where('id', $og->user_id)->update(['transfer_enable' => 0]);
  26. } else {
  27. User::query()->where('id', $og->user_id)->decrement('transfer_enable', $og->traffic * 1048576);
  28. }
  29. OrderGoods::query()->where('id', $og->id)->update(['is_expire' => 1]);
  30. }
  31. }
  32. Log::info('定时任务:' . $this->description);
  33. }
  34. }