فهرست منبع

【功能】添加满送包邮功能

痴货 9 ماه پیش
والد
کامیت
7ef329f57a

+ 1 - 0
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/bo/TradePriceCalculateRespBO.java

@@ -68,6 +68,7 @@ public class TradePriceCalculateRespBO {
      */
     private Long bargainActivityId;
 
+
     /**
      * 是否包邮
      */

+ 5 - 3
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java

@@ -121,10 +121,12 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator {
      * @return 是否包邮
      */
     private boolean isGlobalExpressFree(TradePriceCalculateRespBO result) {
+
         TradeConfigDO config = tradeConfigService.getTradeConfig();
-        return config != null
-                && Boolean.TRUE.equals(config.getDeliveryExpressFreeEnabled()) // 开启包邮
-                && result.getPrice().getPayPrice() >= config.getDeliveryExpressFreePrice(); // 满足包邮的价格
+        return config == null
+                || Boolean.TRUE.equals(config.getDeliveryExpressFreeEnabled()) // 开启包邮
+                || result.getFreeDelivery() //满减包邮
+                || result.getPrice().getPayPrice() >= config.getDeliveryExpressFreePrice(); // 满足包邮的价格
     }
 
     private void calculateDeliveryPrice(List<OrderItem> selectedSkus,

+ 2 - 0
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeRewardActivityPriceCalculator.java

@@ -81,6 +81,8 @@ public class TradeRewardActivityPriceCalculator implements TradePriceCalculator
         Integer newDiscountPrice = rule.getDiscountPrice();
         // 2.2 计算分摊的优惠金额
         List<Integer> divideDiscountPrices = TradePriceCalculatorHelper.dividePrice(orderItems, newDiscountPrice);
+        //计算是否包邮
+        result.setFreeDelivery(rule.getFreeDelivery());
 
         // 3.1 记录使用的优惠劵
         result.setCouponId(param.getCouponId());