From 287bd8f2fa769ad01ea9fc15db6e5b2e24f7e50a Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Sun, 26 Sep 2021 20:38:41 +0800 Subject: [PATCH] fix order --- .../iformall/service/impl/WxOrderServiceImpl.java | 2 +- .../iformall/service/order/OrderAdapterService.java | 2 +- .../order/impl/SingleOrderAdapterService.java | 7 ++++++- .../impl/batch/BaseBatchOrderAdapterService.java | 13 +++++++------ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 43b3b05ac..b6f9fe7a8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -2158,7 +2158,7 @@ public class WxOrderServiceImpl implements WxOrderService { Long orderNumber; // 4.1 券价格 WxComposeChildOrderPrice price = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()) - .getChildCouponOrderPrice(coupon, orderdto.getSignleOrder().isPressOrder(), orderdto.getSignleOrder().getOrderGroupId(), couponNumber); + .getChildCouponOrderPrice(orderdto,coupon, orderdto.getSignleOrder().isPressOrder(), orderdto.getSignleOrder().getOrderGroupId(), couponNumber); Integer orderStatus = OrderHelper.getOrderStatusWxCoupon(coupon, orderdto.getSignleOrder().getOrderGroupId()); diff --git a/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java index 618a01b8a..34eb9689d 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java @@ -37,7 +37,7 @@ public interface OrderAdapterService { * @param coupon * @return */ - WxComposeChildOrderPrice getChildCouponOrderPrice(WxCoupon coupon,boolean isPress,Long orderGroupId,Integer couponNumber); + WxComposeChildOrderPrice getChildCouponOrderPrice(OrderComposeSaveDto orderdto,WxCoupon coupon,boolean isPress,Long orderGroupId,Integer couponNumber); /** * 计算每一个子订单的补贴 diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java index 8ab3dfcb9..5cc013195 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java @@ -13,6 +13,7 @@ import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxPayOrder; import com.iformall.enums.EnumComposeOrder; +import com.iformall.enums.EnumOrderShopingType; import com.iformall.enums.EnumPayWay; import com.iformall.mapper.WxOrderMapper; import com.iformall.service.order.OrderAdapterService; @@ -53,9 +54,13 @@ public class SingleOrderAdapterService implements OrderAdapterService { } @Override - public WxComposeChildOrderPrice getChildCouponOrderPrice(WxCoupon coupon, boolean isPress, Long orderGroupId, + public WxComposeChildOrderPrice getChildCouponOrderPrice(OrderComposeSaveDto orderdto,WxCoupon coupon, boolean isPress, Long orderGroupId, Integer couponNumber) { Integer perPrice = OrderHelper.getCouponPerPayment(coupon, isPress, orderGroupId); + //在线配送加上运费 + if (EnumOrderShopingType.DISTRIBUTION.getCode().equals(orderdto.getShippingType())) { + perPrice = perPrice + coupon.getFreightPrice(); + } return new WxComposeChildOrderPrice(perPrice, couponNumber, coupon.getId()); } diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java index 255e6a027..786e18d3b 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java @@ -40,8 +40,12 @@ public abstract class BaseBatchOrderAdapterService implements OrderAdapterServic WxOrderMapper wxOrderMapper; @Override - public WxComposeChildOrderPrice getChildCouponOrderPrice(WxCoupon coupon,boolean isPress,Long orderGroupId,Integer couponNumber) { + public WxComposeChildOrderPrice getChildCouponOrderPrice(OrderComposeSaveDto orderdto,WxCoupon coupon,boolean isPress,Long orderGroupId,Integer couponNumber) { Integer perPrice = OrderHelper.getCouponPerPayment(coupon, isPress, orderGroupId); + //在线配送加上运费 + if (EnumOrderShopingType.DISTRIBUTION.getCode().equals(orderdto.getShippingType())) { + perPrice = perPrice + coupon.getFreightPrice(); + } return new WxComposeChildOrderPrice(perPrice, couponNumber, coupon.getId()); } @@ -54,12 +58,9 @@ public abstract class BaseBatchOrderAdapterService implements OrderAdapterServic int payment = 0; for (OrderComposeSaveDto ocsd : orderSave) { boolean isPress = ocsd.getSignleOrder().isPressOrder(); - WxComposeChildOrderPrice price = getChildCouponOrderPrice(ocsd.getWxCoupon(), isPress, ocsd.getSignleOrder().getOrderGroupId(), ocsd.getCount()); + WxComposeChildOrderPrice price = getChildCouponOrderPrice(ocsd,ocsd.getWxCoupon(), isPress, ocsd.getSignleOrder().getOrderGroupId(), ocsd.getCount()); payment = payment+price.getRealPayMent(); - //在线配送加上运费 - if (EnumOrderShopingType.DISTRIBUTION.getCode().equals(ocsd.getShippingType())) { - payment = payment + ocsd.getWxCoupon().getFreightPrice(); - } + } order.setPayment(payment); order.setCreateDate(new Date());