diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java index 6d14bab25..b80b2f94d 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java @@ -19,6 +19,7 @@ public interface WxOrderMapper extends CommonMapper { List findList(WxOrder wxOrder); Integer countList(WxOrder wxOrder); + Integer countListProduct(WxOrder wxOrder); int countCouponConditionType1(WxOrder wxOrder); List findListOfUnpaidOrderByDate(Map dateMap); 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 e7208cc5d..749e30343 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -354,13 +354,13 @@ public class WxOrderServiceImpl implements WxOrderService { /** - * 用户购买的订单数量 + * 用户购买的订单产品数量 * * @param user * @param counpon * @return */ - private int getUserOrderCount(WxCUserBasicInfo user, WxCoupon counpon) { + private int getUserOrderProductCount(WxCUserBasicInfo user, WxCoupon counpon) { // + Order 待支付 try { WxOrder orderQ = new WxOrder(); @@ -374,7 +374,7 @@ public class WxOrderServiceImpl implements WxOrderService { statusS.add(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); orderQ.setStatusS(statusS); - return wxOrderMapper.countList(orderQ); + return wxOrderMapper.countListProduct(orderQ); } catch (Exception e) { logger.error("购买是否超限-DB, couponId: " + counpon.getId() + ", e:" + e.getMessage(),e); throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"["+counpon.getTitle()+"]查询待支付错误."+e.getMessage()); @@ -608,7 +608,7 @@ public class WxOrderServiceImpl implements WxOrderService { if (coupon.getSalePrice() > 0) { // 检查是否未支付订单 try { - unPaidcount = getUserOrderCount(user, coupon); + unPaidcount = getUserOrderProductCount(user, coupon); } catch (Exception e) { throw new MallinkException(ErrorCode.DB_FAIL.getCode(),"["+coupon.getTitle()+"]查询未支付订单失败."); } @@ -644,11 +644,9 @@ public class WxOrderServiceImpl implements WxOrderService { } //如果允许未支付的,则未支付的+已支付的不能超过限购 - if (allowUnPayOrder) { - if ((unPaidcount+paidCount) > coupon.getUseLimitQuantity()) { - logger.error("此券[未支付+已支付]购买数量已超限, couponId: " + couponIdStr + ", count: " + paidCount); - throw new MallinkException(ErrorCode.ORDER_IS_LIMITED.getCode(),"此券[未支付+已支付]购买数量已超限["+coupon.getTitle()+"], couponId: " + couponIdStr + ", count: " + paidCount); - } + if ((unPaidcount+paidCount) > coupon.getUseLimitQuantity()) { + logger.error("此券[未支付+已支付]购买数量已超限, couponId: " + couponIdStr + ", count: " + paidCount); + throw new MallinkException(ErrorCode.ORDER_IS_LIMITED.getCode(),"此券[未支付+已支付]购买数量已超限["+coupon.getTitle()+"], couponId: " + couponIdStr + ", count: " + paidCount); } try { diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index 530dde9d5..35e7db09c 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -161,6 +161,11 @@ select count(1) from wx_order + +