ExpiredOrder.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Task;
  3. use App\Model\CoinsOrderModel;
  4. use App\Model\VipOrderModel;
  5. use Hyperf\Crontab\Annotation\Crontab;
  6. use Hyperf\Di\Annotation\Inject;
  7. /**
  8. * @Crontab(name="expiredOrder", rule="/1 * * * *", callback="execute", memo="过期订单处理")
  9. */
  10. class ExpiredOrder
  11. {
  12. /**
  13. * @Inject()
  14. * @var \Hyperf\Contract\StdoutLoggerInterface
  15. */
  16. private $logger;
  17. public function execute()
  18. {
  19. $expiredTime = date('Y-m-d H:i:s', time() - 400);
  20. // vip订单
  21. $vipOrder = VipOrderModel::query()->where('created_at', '<', $expiredTime)->where('status', '3')->get(['id']);
  22. // 金币订单
  23. $coinsOrder = CoinsOrderModel::query()->where('created_at', '<', $expiredTime)->where('status', '3')->get(['id']);
  24. $updataData = ['status' => 2];
  25. if ($vipOrder->isNotEmpty()) {
  26. foreach ($vipOrder as $vipVal) {
  27. VipOrderModel::query()->where('id', $vipVal->id)->update($updataData);
  28. }
  29. }
  30. if ($coinsOrder->isNotEmpty()) {
  31. foreach ($coinsOrder as $coinsVal) {
  32. CoinsOrderModel::query()->where('id', $coinsVal->id)->update($updataData);
  33. }
  34. }
  35. }
  36. }