diff --git a/app/Console/Commands/OrderCloseExpired.php b/app/Console/Commands/OrderCloseExpired.php new file mode 100644 index 00000000..68cdd1cf --- /dev/null +++ b/app/Console/Commands/OrderCloseExpired.php @@ -0,0 +1,39 @@ +expired()->chunkById(1000, function ($orders) { + Order::whereIn('id', $orders->pluck('id')->all())->where('status', Order::STATUS_PENDING)->update([ + 'status' => Order::STATUS_CANCELLED, + ]); + }); + + return 0; + } +} diff --git a/app/Models/Order.php b/app/Models/Order.php index db88f085..144c98db 100644 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -71,6 +71,14 @@ class Order extends Model self::PAY_WAY_BALANCE => '余额', ]; + /** + * 仅查询支付过期的订单 + */ + public function scopeExpired() + { + return $this->where('status', static::STATUS_PENDING)->where('created_at', '<=', now()->subSeconds(1800)); + } + /** * 属于此订单的商品 */