diff --git a/src/main/java/com/ycwl/basic/model/aio/resp/AioDeviceCreateOrderResp.java b/src/main/java/com/ycwl/basic/model/aio/resp/AioDeviceCreateOrderResp.java index b1d8c89..80a0c79 100644 --- a/src/main/java/com/ycwl/basic/model/aio/resp/AioDeviceCreateOrderResp.java +++ b/src/main/java/com/ycwl/basic/model/aio/resp/AioDeviceCreateOrderResp.java @@ -4,6 +4,7 @@ import lombok.Data; @Data public class AioDeviceCreateOrderResp { + private boolean skipPay; private Long orderId; private String payCode; } diff --git a/src/main/java/com/ycwl/basic/service/aio/impl/AioDeviceServiceImpl.java b/src/main/java/com/ycwl/basic/service/aio/impl/AioDeviceServiceImpl.java index 8674880..8a81f01 100644 --- a/src/main/java/com/ycwl/basic/service/aio/impl/AioDeviceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/aio/impl/AioDeviceServiceImpl.java @@ -52,8 +52,13 @@ public class AioDeviceServiceImpl implements AioDeviceService { if (face == null) { throw new BaseException("请选择人脸"); } + AioDeviceCreateOrderResp resp = new AioDeviceCreateOrderResp(); int sum = req.getItems().stream().mapToInt(AioDeviceCreateOrderReq.AioDeviceOrderItem::getCount).sum(); BigDecimal totalPrice = config.getEachPrice().multiply(new BigDecimal(sum)); + if (totalPrice.compareTo(BigDecimal.ZERO) <= 0) { + resp.setSkipPay(true); + return resp; + } OrderEntity order = new OrderEntity(); Long orderId = SnowFlakeUtil.getLongId(); order.setId(orderId); @@ -80,7 +85,6 @@ public class AioDeviceServiceImpl implements AioDeviceService { int addOrderItems = orderMapper.addOrderItems(orderItems); // 支付 IPayAdapter scenicPayAdapter = scenicService.getScenicPayAdapter(aioDevice.getScenicId()); - AioDeviceCreateOrderResp resp = new AioDeviceCreateOrderResp(); if (scenicPayAdapter instanceof WxMpPayAdapter adapter) { NativePayService service = new NativePayService.Builder().config(adapter.getConfig()).build(); PrepayRequest request = new PrepayRequest();