|
|
@@ -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));
|
|
|
}
|