From af56a1e9ea2d02d1fc2f4db7cd41269349f8a28a Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Sat, 1 Mar 2025 17:33:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E8=AE=A2=E5=8D=95=E6=97=B6?= =?UTF-8?q?=20=E4=B8=8D=E6=A0=A1=E9=AA=8C=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderInfoServiceImpl.java | 48 ++++++------------- 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java index abdbd8923..b9ea3b33b 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java @@ -170,10 +170,6 @@ public class OrderInfoServiceImpl extends ServiceImpl orderDetails = cartService.getCartByTableCode(shopInfo.getId(), param.getTableCode(), param.getPlaceNum()); - log.info("下单1 {}", JSONObject.toJSONString(orderDetails)); - //总打包费 - BigDecimalDTO packAmount = new BigDecimalDTO(BigDecimal.ZERO); - //总商品支付金额 不包含打包费 用来计算后续 - BigDecimal totalAmount = processOrderDetails(orderDetails, packAmount, param.isVipPrice()); - log.info("下单2 总金额{} {}", totalAmount, JSONObject.toJSONString(orderDetails)); - if (packAmount.getPrice().compareTo(param.getPackFee()) != 0) { - throw new ValidateException("生成订单失败,打包费不正确"); - } - log.info("下单3 打包费{} 金额{}", param.getPackFee(), param.getOriginAmount()); - //总金额 - if (totalAmount.add(param.getPackFee()).compareTo(param.getOriginAmount()) != 0) { - throw new ValidateException("生成订单失败,订单金额不正确"); - } + processOrderDetails(orderDetails); //生成订单 OrderInfo orderInfo = initOrderInfo(param, shopInfo, table); orderDetailService.createOrderDetails(orderInfo.getId(), orderDetails); @@ -234,6 +216,11 @@ public class OrderInfoServiceImpl extends ServiceImpl orderDetails, BigDecimalDTO packAmount, boolean isVipPrice) { - BigDecimal totalAmount = BigDecimal.ZERO; + private void processOrderDetails(List orderDetails) { for (OrderDetail detail : orderDetails) { if (detail.getDiscountSaleAmount() != null && detail.getDiscountSaleAmount().compareTo(BigDecimal.ZERO) > 0) { detail.setUnitPrice(detail.getDiscountSaleAmount()); - }else { - if (isVipPrice) { - detail.setUnitPrice(detail.getMemberPrice()); - }else { + } else { + if (detail.getDiscountSaleAmount() != null && detail.getDiscountSaleAmount().compareTo(BigDecimal.ZERO) > 0) { + detail.setUnitPrice(detail.getDiscountSaleAmount()); + } else { detail.setUnitPrice(detail.getPrice()); + } } - if (detail.getPackNumber().compareTo(BigDecimal.ZERO) > 0 && detail.getPackAmount().compareTo(BigDecimal.ZERO) > 0) { - packAmount.setPrice(packAmount.getPrice().add(detail.getPackAmount().multiply(detail.getPackNumber()))); - } detail.setPayAmount(detail.getNum().multiply(detail.getUnitPrice())); - totalAmount = totalAmount.add(detail.getPayAmount()); } - return totalAmount; } /** @@ -651,8 +633,8 @@ public class OrderInfoServiceImpl extends ServiceImpl