App_Task_ExpiredOrder.proxy.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. use \Hyperf\Di\Aop\ProxyTrait;
  13. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  14. function __construct()
  15. {
  16. $this->__handlePropertyHandler(__CLASS__);
  17. }
  18. /**
  19. * @Inject()
  20. * @var \Hyperf\Contract\StdoutLoggerInterface
  21. */
  22. private $logger;
  23. public function execute()
  24. {
  25. $expiredTime = date('Y-m-d H:i:s', time() - 400);
  26. // vip订单
  27. $vipOrder = VipOrderModel::query()->where('created_at', '<', $expiredTime)->where('status', '3')->get(['id']);
  28. // 金币订单
  29. $coinsOrder = CoinsOrderModel::query()->where('created_at', '<', $expiredTime)->where('status', '3')->get(['id']);
  30. $updataData = ['status' => 2];
  31. if ($vipOrder->isNotEmpty()) {
  32. foreach ($vipOrder as $vipVal) {
  33. VipOrderModel::query()->where('id', $vipVal->id)->update($updataData);
  34. }
  35. }
  36. if ($coinsOrder->isNotEmpty()) {
  37. foreach ($coinsOrder as $coinsVal) {
  38. CoinsOrderModel::query()->where('id', $coinsVal->id)->update($updataData);
  39. }
  40. }
  41. }
  42. }