Browse Source

新增店铺是否开启满减配送费活动;

codingliang 2 years ago
parent
commit
e74cc3c281

+ 2 - 0
src/main/java/com/sqx/modules/goods/entity/GoodsShop.java

@@ -159,6 +159,8 @@ public class GoodsShop implements Serializable {
     @ApiModelProperty("是否减免配送费")
     private Integer exemptErrandFlag;
 
+    @ApiModelProperty("是否开启满减配送费 0是 1否")
+    private Integer enableFullReductionFlag;
 
     @ApiModelProperty("最低起送金额")
     private BigDecimal minimumDelivery;

+ 22 - 17
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -662,29 +662,34 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
                 throw new SqxException("超出商家配送范围,无法点餐!");
             }
 
+            // 店铺是否开启配送费满减 0是 1否
+            Integer enableFullReductionFlag = goodsShop.getEnableFullReductionFlag() != null ? goodsShop.getEnableFullReductionFlag() : 1;
             // 店铺跑腿费
-            BigDecimal shopErrandMoney = goodsShop.getErrandMoney();
-
-            // 如果店铺减免配送费最小订单金额不为null 并且 店铺配送费不为null且大于0 并且 订单金额小于店铺减免配送费最小订单金额
-            // 则用户承担加跑腿费
-            if(goodsShop.getExemptMinMoney() != null
-                    && shopErrandMoney != null
-                    && shopErrandMoney.doubleValue() > 0
-                    && order.getPayMoney().doubleValue() < goodsShop.getExemptMinMoney().doubleValue()){
-                // 跑腿费加入订单总金额
-                order.setPayMoney(order.getPayMoney().add(shopErrandMoney));
-                // 更新订单跑腿费
-                order.setErrandMoney(shopErrandMoney);
-                order.setErrandMoneyIsShop("本单未达到商家满减金额,跑腿费由用户承担");
+            BigDecimal shopErrandMoney = goodsShop.getErrandMoney() != null ? goodsShop.getErrandMoney() : BigDecimal.ZERO;
+            // 减免配送费最小订单金额
+            BigDecimal exemptMinMoney = goodsShop.getExemptMinMoney() != null ? goodsShop.getExemptMinMoney() : BigDecimal.ZERO;
+
+            // 店铺开启了配送费满减
+            if ("0".equals(enableFullReductionFlag)) {
+                if(shopErrandMoney.doubleValue() > 0
+                        && order.getPayMoney().doubleValue() < exemptMinMoney.doubleValue()){
+                    // 跑腿费加入订单总金额
+                    order.setPayMoney(order.getPayMoney().add(shopErrandMoney));
+                    order.setErrandMoneyIsShop("本单未达到商家满减金额,跑腿费由用户承担");
+                } else {
+                    order.setErrandMoneyIsShop("本单已达到商家满减金额,跑腿费由商家承担");
+                }
             }
-            // 否则店铺承担跑腿费
+            // 店铺未开启配送费满减
             else {
-                order.setErrandMoneyIsShop("本单已达到商家满减金额,跑腿费由商家承担");
+                // 跑腿费加入订单总金额
+                order.setPayMoney(order.getPayMoney().add(shopErrandMoney));
+                order.setErrandMoneyIsShop("商家未开启配送费满减,跑腿费由用户承担");
             }
 
-            order.setErrandMoney(shopErrandMoney == null ? BigDecimal.ZERO : shopErrandMoney);
+            order.setErrandMoney(shopErrandMoney);
 
-            //判断订单金额是否大于最低起送金额
+            // 判断订单金额是否大于最低起送金额
             if(goodsShop.getMinimumDelivery() == null){
                 goodsShop.setMinimumDelivery(BigDecimal.valueOf(0));
             }