|
|
|
@ -647,6 +647,9 @@ class OrderOnlineService implements OrderOnlineServiceInterface |
|
|
|
|
|
|
|
public function autoCancel() |
|
|
|
{ |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
$orderMains = OrderMain::query() |
|
|
|
->select(['global_order_id', 'user_id']) |
|
|
|
->where(['state' => OrderState::UNPAID]) |
|
|
|
@ -655,11 +658,8 @@ class OrderOnlineService implements OrderOnlineServiceInterface |
|
|
|
|
|
|
|
foreach ($orderMains as $key => &$orderMain) { |
|
|
|
|
|
|
|
// 订单待支付
|
|
|
|
$orderMain->state = OrderState::CANCELED; |
|
|
|
if (!$orderMain->save()) { |
|
|
|
throw new ErrorCodeException(ErrorCode::ORDER_NOT_AVAILABLE); |
|
|
|
} |
|
|
|
// 订单取消
|
|
|
|
OrderMain::query()->where(['id' => $orderMain->id])->update(['state' => OrderState::CANCELED]); |
|
|
|
|
|
|
|
// 退还优惠券
|
|
|
|
$this->couponService->orderRefundCoupons($orderMain->global_order_id); |
|
|
|
@ -693,5 +693,10 @@ class OrderOnlineService implements OrderOnlineServiceInterface |
|
|
|
$orderChildIds = array_values(array_column($orders, 'store_id')); |
|
|
|
$this->badgeService->doByOrder($orderMain->user_id, $orderChildIds, $orderMain->global_order_id, OrderState::CANCELED); |
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception $e) { |
|
|
|
$this->log->event(LogLabel::ORDER_AUTO_CANCEL_FAIL_LOG, ['message' => $e->getMessage()]); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |