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 {