From bea5255927add3a1c4b3cbbabbd338b761a2c589 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 3 Sep 2025 08:31:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=B7=BB=E5=8A=A0=E9=9B=B6?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E8=AE=A2=E5=8D=95=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 getPaymentParams 方法中增加对订单金额的检查- 如果订单金额为 0 或空,则自动将订单状态设置为已支付 - 更新数据库中的订单信息 - 返回一个特殊的 PaymentParamsResponse,表示免费订单 -非零金额订单则按原有流程处理 --- .../basic/service/pc/impl/OrderServiceImpl.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java index 37b6768..ac7b5ee 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java @@ -843,10 +843,23 @@ public class OrderServiceImpl implements OrderService { @Override public ApiResponse getPaymentParams(Long orderId, Long userId, PaymentParamsRequest request) { + OrderEntity order = orderMapper.get(orderId); + + // 检查订单金额是否为0 + if (order.getPayPrice() == null || order.getPayPrice().compareTo(BigDecimal.ZERO) == 0) { + // 零金额订单:设置needPay为false,直接标记为已支付 + order.setStatus(1); // 1表示已支付 + order.setPayAt(new Date()); + orderMapper.updateOrder(order); + + // 返回免费订单响应 + return ApiResponse.success(PaymentParamsResponse.free(orderId, orderId.toString())); + } + + // 非零金额订单:按原流程处理 PaymentParamsResponse response = new PaymentParamsResponse(); response.setOrderId(orderId); response.setOrderNo(orderId.toString()); - OrderEntity order = orderMapper.get(orderId); response.setNeedPay(true); List orderItems = orderMapper.getOrderItems(orderId); try {