order_id; $order = Order::findOne($order_id); if (intval($order->trade_status) === Order::ORDER_FLOW_DEFAULT && intval($order->is_pay) === Order::IS_PAY_FALSE && $order->pay_type !== Order::PAY_TYPE_COD) { $over_time = time() - (15 * 60); if ($order->created_at < $over_time) { $order->trade_status = Order::ORDER_FLOW_CANCEL; if (!$order->save()) { throw new \Exception(json_encode($order->errors, JSON_UNESCAPED_UNICODE)); } // 商城商品总库存恢复 $order_detail_list = OrderDetail::find()->where(['order_id' => $order->id, 'is_delete' => 0])->asArray()->all(); foreach ($order_detail_list as $order_detail) { $goods = Goods::findOne($order_detail['goods_id']); $attr_id_list = []; foreach (json_decode($order_detail['attr'], true) as $item) { array_push($attr_id_list, $item['attr_id']); } $goods->numAdd($attr_id_list, $order_detail['num']); } } else { \queue_push(new OrderCancelJob(['order_id' => $order_id]), 900); } } } catch (\Exception $e) { debug_log([ 'msg' => $e->getMessage(), 'line' => $e->getLine() ], 'orderCancelJob.log'); } } }