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 5d987703c..8e8477d8d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -778,15 +778,25 @@ public class WxOrderServiceImpl implements WxOrderService { if (null != checkPressResult) { WxPressBatch pressBatch = checkPressResult.getPressBatch(); List cids = checkPressResult.getCouponIdList(); - couponOrderQ.setCouponIds(cids); - if (pressBatch.getPromoterLimitRule().equals(EnumCouponUseLimitRule.TOBEUSED_USELIMIT.getCode())) { - couponOrderQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); - } - int _count = wxCouponOrderMapper.findProductCount(couponOrderQ)+couponNumber; - if (_count > pressBatch.getPromoterAllowCount()) { - throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"当前用户已达砍价["+counpon.getTitle()+"]所在批次活动发起次数上限."); + if (null != cids && cids.size() > 0 ) { + couponOrderQ.setCouponIds(cids); + //判断这些券发起中+已完成的 + WxOrder order = new WxOrder(); + order.setCouponIds(cids); + //if (pressBatch.getPromoterLimitRule().equals(EnumCouponUseLimitRule.TOBEUSED_USELIMIT.getCode())) { + List statusS = new ArrayList(); + statusS.add(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); + statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); + order.setStatusS(statusS); + //} + int _count = wxOrderMapper.countCouponConditionType1(order); + if (_count > pressBatch.getPromoterAllowCount()) { + throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"当前用户已达砍价["+counpon.getTitle()+"]所在批次活动发起次数上限."); + } + return _count; + }else { + throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"砍价批次["+pressBatch.getName()+"]未设置券."); } - return _count; }else { if (counpon.getUseLimitRule().equals(EnumCouponUseLimitRule.TOBEUSED_USELIMIT.getCode())) { couponOrderQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode());