|
|
|
@@ -189,6 +189,30 @@ public class WxOrderServiceImpl implements WxOrderService { |
|
|
|
return new ResultData(resultMap); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 拼团数量 |
|
|
|
* |
|
|
|
* @param user |
|
|
|
* @param counpon |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private int getUserOrderGroupCount(WxCUser user, WxCoupon counpon) { |
|
|
|
// + Order 待支付 |
|
|
|
try { |
|
|
|
WxOrder orderQ = new WxOrder(); |
|
|
|
orderQ.setTenantId(user.getTenantId()); |
|
|
|
orderQ.setProductId(counpon.getId()); |
|
|
|
orderQ.setType(EnumOrderType.COUPON.getCode()); |
|
|
|
orderQ.setCUserId(user.getId()); |
|
|
|
orderQ.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode()); |
|
|
|
return wxOrderMapper.countList(orderQ); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("购买是否超限-DB, couponId: " + counpon.getId() + ", e:" + e.getMessage()); |
|
|
|
throw new MallinkException(ErrorCode.ORDER_IS_FAIL); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 用户购买的订单数量 |
|
|
|
@@ -209,7 +233,6 @@ public class WxOrderServiceImpl implements WxOrderService { |
|
|
|
statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); |
|
|
|
statusS.add(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); |
|
|
|
statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); |
|
|
|
statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode()); |
|
|
|
orderQ.setStatusS(statusS); |
|
|
|
return wxOrderMapper.countList(orderQ); |
|
|
|
} catch (Exception e) { |
|
|
|
@@ -419,6 +442,21 @@ public class WxOrderServiceImpl implements WxOrderService { |
|
|
|
throw new MallinkException(ErrorCode.ORDER_UNPAID); |
|
|
|
} |
|
|
|
} |
|
|
|
//检查拼团中的数量 |
|
|
|
try { |
|
|
|
count = getUserOrderGroupCount(user, coupon); |
|
|
|
} catch (Exception e) { |
|
|
|
//解锁 |
|
|
|
redisLock.unlock(couponIdStr, timeStr); |
|
|
|
throw new MallinkException(ErrorCode.DB_FAIL); |
|
|
|
} |
|
|
|
if (count >= coupon.getUseLimitQuantity()) { |
|
|
|
//解锁 |
|
|
|
redisLock.unlock(couponIdStr, timeStr); |
|
|
|
logger.error("此券购买数量已超限, couponId: " + couponIdStr + ", count: " + count); |
|
|
|
throw new MallinkException(ErrorCode.ORDER_IS_LIMITED); |
|
|
|
} |
|
|
|
|
|
|
|
// 检查用户已购买数量 |
|
|
|
try { |
|
|
|
count = getUserCouponOrderCount(user, coupon); |
|
|
|
@@ -1586,8 +1624,8 @@ public class WxOrderServiceImpl implements WxOrderService { |
|
|
|
record.setCUserId(user.getId()); |
|
|
|
record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); |
|
|
|
record.setDetail(bodyStr); |
|
|
|
record.setCreateDate(curr); |
|
|
|
record.setUpdateDate(curr); |
|
|
|
record.setCreateDate(curr); |
|
|
|
if (isPress) { |
|
|
|
// 初始砍价信息 |
|
|
|
record.setPressCurrentNum(0); |
|
|
|
|