addError('订单ID无效'); return false; } if (!$userId || $userId <= 0) { $this->addError('用户ID无效'); return false; } try { // 查找订单 $order = MexOrder::where('id', $orderId) ->where('user_id', $userId) ->first(); if (!$order) { $this->addError('订单不存在'); return false; } // 验证订单状态是否可以取消 if ($order->status !== OrderStatus::PENDING) { $statusText = $this->getOrderStatusText($order->status); $this->addError("只能取消等待中的订单,当前订单状态:{$statusText}"); return false; } return true; } catch (\Exception $e) { Log::error('农贸市场订单存在性验证失败', [ 'order_id' => $orderId, 'user_id' => $userId, 'error' => $e->getMessage() ]); $this->addError('订单验证时发生错误'); return false; } } /** * 获取订单状态描述 * * @param OrderStatus $status 订单状态 * @return string */ private function getOrderStatusText(OrderStatus $status): string { return match ($status) { OrderStatus::PENDING => '等待中', OrderStatus::COMPLETED => '已完成', OrderStatus::CANCELLED => '已取消', OrderStatus::FAILED => '已失败', default => '未知状态' }; } }