orderService->addOnlineOrder($request->validated()); if (!is_int($orderMainId)) { return $this->result(ErrorCode::ORDER_FAILURE, '', $orderMainId); } return $this->success(['order_id' => $orderMainId]); } public function addOfflineOrder(OrderOfflineRequest $request) { $orderMainId = $this->orderService->addOfflineOrder($request->validated()); if (!is_int($orderMainId)) { return $this->result(ErrorCode::ORDER_FAILURE, '', $orderMainId); } return $this->success(['order_id' => $orderMainId]); } /** * 用户完成订单-确认收货 */ public function userComp() { $validator = $this->validationFactory->make( $this->request->all(), [ 'user_id' => 'required|nonempty|integer', 'order_id' => 'required|nonempty|numeric', ], [ '*.*' => ':attribute 参数不正确', ] ); if ($validator->fails()) { // Handle exception throw new ValidationException($validator); return; } $userId = $this->request->input('user_id'); $orderId = $this->request->input('order_id'); // TODO 等新订单列表接口处理完毕后全面转换成global_order_id $orderMain = OrderMain::query() ->where(['id' => $orderId, 'state' => OrderMain::ORDER_STATE_DELIVERY, 'user_id' => $userId]) ->first(); if (empty($orderMain)) { $this->log->event(LogLabel::ONLINE_COMPLETE_LOG, ['order_not_found' => 'order_not_found']); return $this->result(ErrorCode::SEPARATE_ACCOUNTS_ERROR, '', '操作失败,订单异常或不存在'); } Db::beginTransaction(); try { $this->orderService->onlineCompleted($orderMain->global_order_id); $this->separateAccountsService->orderOnlineCompleted($orderMain->global_order_id); Db::commit(); return $this->success(''); } catch (\Exception $e) { Db::rollBack(); $this->log->event(LogLabel::ONLINE_COMPLETE_LOG, ['exception' => $e->getMessage()]); return $this->result(ErrorCode::SEPARATE_ACCOUNTS_ERROR, '', '操作失败,请稍后重试'); } } /** * 用户取消订单 */ public function onlineCancel(){ $orderId = $this->request->input('order_id'); $orderMain = OrderMain::where('id',$orderId) ->select('global_order_id') ->first(); return $this->success($this->orderService->onlineCancel($orderMain->global_order_id)); } }