记得上下班打卡 | git大法好,push需谨慎

Commit f03d4886 authored by zhangguobing's avatar zhangguobing

~api:券商品业务-券类商品券限购调整;

parent bb31a6a3
......@@ -119,7 +119,7 @@ public class GoblinRedisConst {
public static final String REDIS_GOBLIN_BUY_COUNT = PREFIX.concat("uid:");//用户sku购买数量 key:uid:skuId:$skuId
public static final String REDIS_GOBLIN_BUY_COUNT_IDNO = PREFIX.concat("idno:%s:%s:%s");// 实名sku购买数量 key:$idType:$idNo:$skuId
public static final String REDIS_GOBLIN_BUY_COUNT_IDNO = PREFIX.concat("idcard:%s:%s:%s");// 实名sku购买数量 key:$idType:$idNo:$skuId
public static final String REDIS_GOBLIN_SALE_COUNT = PREFIX.concat("sale:skuId:");//用户sku购买数量 key:sale:skuId:$skuId
public static final String REDIS_GOBLIN_SALE_SPU_COUNT = PREFIX.concat("sale:spuId:");//用户sku购买数量 key:sale:skuId:$spuId
public static final String REDIS_GOBLIN_ORDER = PREFIX.concat("order:");//用户sku购买数量 key:$orderId
......
......@@ -184,9 +184,10 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
}
if (Objects.equals(skuVo.getIsTrueName(), 1)) {// 需关联实名人
int idNoLimitCount = 1;// 这里默认券类商品需要关联实名人且都要求关联实名人限购,限购数量为1
String couponSkuIdNoBuyLimitKey = String.format(GoblinRedisConst.REDIS_GOBLIN_BUY_COUNT_IDNO, skuParam.getIdType(), skuParam.getIdNo(), skuId, skuParam.getNumber());
String couponSkuIdNoBuyLimitKey = String.format(GoblinRedisConst.REDIS_GOBLIN_BUY_COUNT_IDNO, skuParam.getIdType(), skuParam.getIdNo(), skuId);
long incrRstNum = redisUtils.redisUtil.incr(couponSkuIdNoBuyLimitKey, skuParam.getNumber());
couponSkuIdNoBuyLimitMap.put(couponSkuIdNoBuyLimitKey, skuParam.getNumber());
if (redisUtils.redisUtil.incr(couponSkuIdNoBuyLimitKey, skuParam.getNumber()) > idNoLimitCount) {
if (incrRstNum > idNoLimitCount) {
throw new LiquidnetServiceException("-1", String.format("超过限购数量,一个证件信息限购%d张", idNoLimitCount));
}
}
......@@ -194,6 +195,12 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
}
//库存回滚
if (surplusGeneral < 0) {
// 这里加的'券类商品实名限购回滚'是因为这里'库存不足'没按异常处理
if (!CollectionUtils.isEmpty(couponSkuIdNoBuyLimitMap)) {// 券类商品实名限购回滚
couponSkuIdNoBuyLimitMap.forEach((couponSkuIdNoBuyLimitKey, numb) -> {
redisUtils.redisUtil.decr(couponSkuIdNoBuyLimitKey, numb);
});
}
return orderUtils.orderException(skuAndPreListAndNumber, platformCodeList, storeCodeList, uid, "库存不足");
// throw new Exception("库存不足");
}
......@@ -254,9 +261,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
if (params.size() > 0) {
orderUtils.backStoreCoupon(params);
}
if (!CollectionUtils.isEmpty(couponSkuIdNoBuyLimitMap)) {
couponSkuIdNoBuyLimitMap.forEach((couponSkuIdNoBuyLimitKey, number) -> {
redisUtils.redisUtil.decr(couponSkuIdNoBuyLimitKey, number);
if (!CollectionUtils.isEmpty(couponSkuIdNoBuyLimitMap)) {// 券类商品实名限购回滚
couponSkuIdNoBuyLimitMap.forEach((couponSkuIdNoBuyLimitKey, numb) -> {
redisUtils.redisUtil.decr(couponSkuIdNoBuyLimitKey, numb);
});
}
if (e instanceof LiquidnetServiceException) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment