cup 3 年之前
父節點
當前提交
80d5f0ea94

+ 33 - 22
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelOrderController.java

@@ -208,28 +208,8 @@ public class ChannelOrderController extends BaseApiController {
       }
     }
 
-    // 运费计算
-    Integer freightAmt = 0;
-    // 计算运费
-    UserAddr userAddr = orderSettleVO.getAddr();
-    // TODO: 4L上线需要调整,后期放开就是取的商品里配的运费模板id
-    ShippingTemplateCalculateVO shippingTemplateCalculateVO = shippingTemplateRuleService.getShippingTemplateRuleByTemplateIdAndAreaInfo(shippingTemplateId, userAddr.getProvinceId(), userAddr.getCityId());
-    // 无法查到运费模板则默认为0
-    if (Objects.nonNull(shippingTemplateCalculateVO)) {
-
-      orderSettleVO.setFreightRemark(shippingTemplateCalculateVO.getRemark());
-      orderSettleVO.setFreightType(shippingTemplateCalculateVO.getType());
-
-      if (ShippingTemplateRuleTypeEnum.SHIP.getValue().equals(shippingTemplateCalculateVO.getType())) {
-        int orderNum = param.getOrderNum();
-        freightAmt = shippingTemplateCalculateVO.getDefaultPrice();
-        if (orderNum - shippingTemplateCalculateVO.getDefaultNumber() >= shippingTemplateCalculateVO.getCreateNumber()) {
-          // 运费:首件价格 + ((商品数量 - 首件数量) / 续件数量)向上取整 * 续件价格
-          int createNumber = shippingTemplateCalculateVO.getCreateNumber();
-          freightAmt += ((int) Math.ceil(NumberUtil.div(orderNum - shippingTemplateCalculateVO.getDefaultNumber(), createNumber))) * shippingTemplateCalculateVO.getCreatePrice();
-        }
-      }
-    }
+    // 购买数量
+    int orderNum = 0;
 
     // 订单金额计算
     Integer orderAmt = 0;
@@ -245,6 +225,8 @@ public class ChannelOrderController extends BaseApiController {
         cartVO.setOrderNum(channelCart.getOrderNum());
         orderSettleVO.getItems().add(cartVO);
         pkgNum += channelCart.getOrderNum();
+        // 获取购买数量
+        orderNum += channelCart.getOrderNum();
       }
     } else {
       TicketBox ticketBox = ticketBoxService.getById(param.getBoxId());
@@ -253,7 +235,36 @@ public class ChannelOrderController extends BaseApiController {
       cartVO.setOrderNum(param.getOrderNum());
       orderSettleVO.getItems().add(cartVO);
       pkgNum += param.getOrderNum();
+      // 获取购买数量
+      orderNum = param.getOrderNum();
+    }
+
+
+    // 运费计算
+    Integer freightAmt = 0;
+    // 计算运费
+    UserAddr userAddr = orderSettleVO.getAddr();
+    // TODO: 4L上线需要调整,后期放开就是取的商品里配的运费模板id
+    ShippingTemplateCalculateVO shippingTemplateCalculateVO = shippingTemplateRuleService.getShippingTemplateRuleByTemplateIdAndAreaInfo(shippingTemplateId, userAddr.getProvinceId(), userAddr.getCityId());
+    // 无法查到运费模板则默认为0
+    if (Objects.nonNull(shippingTemplateCalculateVO)) {
+
+      orderSettleVO.setFreightRemark(shippingTemplateCalculateVO.getRemark());
+      orderSettleVO.setFreightType(shippingTemplateCalculateVO.getType());
+
+      if (ShippingTemplateRuleTypeEnum.SHIP.getValue().equals(shippingTemplateCalculateVO.getType())) {
+        freightAmt = shippingTemplateCalculateVO.getDefaultPrice();
+        if (orderNum - shippingTemplateCalculateVO.getDefaultNumber() >= shippingTemplateCalculateVO.getCreateNumber()) {
+          // 运费:首件价格 + ((商品数量 - 首件数量) / 续件数量)向上取整 * 续件价格
+          int createNumber = shippingTemplateCalculateVO.getCreateNumber();
+          freightAmt += ((int) Math.ceil(NumberUtil.div(orderNum - shippingTemplateCalculateVO.getDefaultNumber(), createNumber))) * shippingTemplateCalculateVO.getCreatePrice();
+        }
+      }
     }
+
+
+
+
     // 设置运费
     orderSettleVO.setFreightAmt(freightAmt);