From 9a2a1ca9c86aa59a37f05e1e628098fc891a25b7 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 8 Sep 2021 20:36:41 +0800 Subject: [PATCH] fix order --- .../java/com/iformall/domain/po/WxCoupon.java | 10 ++++ .../service/impl/WxOrderServiceImpl.java | 54 ++++++++++++------- 2 files changed, 44 insertions(+), 20 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java index c987285fe..d826704f9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -340,5 +340,15 @@ public class WxCoupon extends TenantEntity { } return false; } + + public boolean oneNumberOneOrder() { + if (type == null) { + return true; + } + if (type.intValue() == EnumCouponType.COUPON_DISTRIBUTION.getCode().intValue()) { + return false; + } + return true; + } } 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 393b90ebc..474a7bc1e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -1984,26 +1984,40 @@ public class WxOrderServiceImpl implements WxOrderService { for (int i = 0 ; i < orderSave.size(); i ++) { OrderComposeSaveDto orderdto = orderSave.get(i); - // 是否砍价 - boolean isPress = orderdto.getSignleOrder().getPress() != null ? orderdto.getSignleOrder().getPress() : false; - WxOrder order = null; - if (checkCouponIsFree(orderdto.getWxCoupon())) { - // 免费券 - order = proxy.saveFreeOrderForCoupon(composeOrder,user, orderdto.getWxCoupon(),orderdto.getCount(), orderdto.getSignleOrder().getCouponChannelId(), orderdto.getSignleOrder().getFormId(), null,payWay); - if (order != null) { - // 6. 下订单完成,发送内部消息 - // 下订单完成,发送内部消息 - try { - proxy.sendOrderSuccessActionMsg(order); - } catch (Exception e) { - logger.error("内部消息发送失败: " + e.getMessage(),e); - throw new MallinkException(ErrorCode.MSG_INSIDE_ERROR); - } - } - } else { - // 有价券 - order = proxy.saveNoFreeOrderForCoupon(composeOrder,user, orderdto.getWxCoupon(),orderdto.getCount(), orderdto.getSignleOrder().getCouponChannelId(), isPress, orderdto.getSignleOrder().getOrderGroupId(), orderdto.getSignleOrder().getFormId()); - } + + //券是一个数量一个订单, 实物是一个产品一个订单 + int totalOrderCount = 1; + if (orderdto.getWxCoupon().oneNumberOneOrder()) { + totalOrderCount = orderdto.getCount(); + } + int perCouponNumber = 1; + if (totalOrderCount==1) { + perCouponNumber = orderdto.getCount(); + } + for (int j =0 ; j < totalOrderCount ; j ++) { + // 是否砍价 + boolean isPress = orderdto.getSignleOrder().getPress() != null ? orderdto.getSignleOrder().getPress() : false; + WxOrder order = null; + if (checkCouponIsFree(orderdto.getWxCoupon())) { + // 免费券 + order = proxy.saveFreeOrderForCoupon(composeOrder,user, orderdto.getWxCoupon(),perCouponNumber, orderdto.getSignleOrder().getCouponChannelId(), orderdto.getSignleOrder().getFormId(), null,payWay); + if (order != null) { + // 6. 下订单完成,发送内部消息 + // 下订单完成,发送内部消息 + try { + proxy.sendOrderSuccessActionMsg(order); + } catch (Exception e) { + logger.error("内部消息发送失败: " + e.getMessage(),e); + throw new MallinkException(ErrorCode.MSG_INSIDE_ERROR); + } + } + } else { + // 有价券 + order = proxy.saveNoFreeOrderForCoupon(composeOrder,user, orderdto.getWxCoupon(),perCouponNumber, orderdto.getSignleOrder().getCouponChannelId(), isPress, orderdto.getSignleOrder().getOrderGroupId(), orderdto.getSignleOrder().getFormId()); + } + } + + // couponActionLog // try { // wxCouponActionLogService.addOne(order, order.getProductId(), order.getOrderNumber(), EnumCouponSendSendType.ACTIVE.getCode(), orderdto.getSignleOrder().getCouponChannelId(),0L);