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

Commit 516ff8e0 authored by 胡佳晨's avatar 胡佳晨

判断 如果盲盒库存不足 拦截

parent 1ad8c80f
...@@ -172,7 +172,7 @@ public class GoblinMixServiceImpl implements IGoblinMixService { ...@@ -172,7 +172,7 @@ public class GoblinMixServiceImpl implements IGoblinMixService {
BigDecimal sellPrice = BigDecimal.ZERO; BigDecimal sellPrice = BigDecimal.ZERO;
for (GoblinMixDetailsItemParam itemParam : itemParams) { for (GoblinMixDetailsItemParam itemParam : itemParams) {
GoblinMixDetailsItemVo itemVo = GoblinMixDetailsItemVo.getNew().copyByInsert(itemParam); GoblinMixDetailsItemVo itemVo = GoblinMixDetailsItemVo.getNew().copyByInsert(itemParam);
sellPrice= sellPrice.add(itemVo.getPrice()); sellPrice = sellPrice.add(itemVo.getPrice());
price = price.add(itemVo.getSkuPrice()); price = price.add(itemVo.getSkuPrice());
itemList.add(itemVo); itemList.add(itemVo);
goblinMixDetails.add(new Object[]{ goblinMixDetails.add(new Object[]{
...@@ -296,22 +296,37 @@ public class GoblinMixServiceImpl implements IGoblinMixService { ...@@ -296,22 +296,37 @@ public class GoblinMixServiceImpl implements IGoblinMixService {
nftBoxUtils.arrangeHitRatioMap(map, hitRatioCount); nftBoxUtils.arrangeHitRatioMap(map, hitRatioCount);
} }
Map<String, Integer> skuMap = nftBoxUtils.getSkuHitRatio(stock * item.getCount(), map); Map<String, Integer> skuMap = nftBoxUtils.getSkuHitRatio(stock * item.getCount(), map);
if(skuMap.size()==0){ if (skuMap.size() == 0) {
errorNameList.add(item.getSkuName()); errorNameList.add(item.getSkuName());
} } else {
for (String key : skuMap.keySet()) { int boxStock = 0;
Integer stockNum = skuMap.get(key); List<String> boxSkuId = CollectionUtil.linkedListString();
//库存 for (String key : skuMap.keySet()) {
int skuStock = redisUtils.decrSkuStock(null, key, stockNum); Integer stockNum = skuMap.get(key);
log.info("盲盒库存 SKUID = " + key + " 数量 = " + stockNum); //库存
if (skuStock < 0) { int skuStock = redisUtils.decrSkuStock(null, key, stockNum);
redisUtils.incrSkuStock(null, key, stockNum); log.info("盲盒库存 SKUID = " + key + " 数量 = " + stockNum);
boxStock += stockNum;
if (skuStock < 0) {
redisUtils.incrSkuStock(null, key, stockNum);
errorNameList.add("盲盒" + item.getSkuName());
} else {
boxSkuId.add(key + "," + stockNum);
redisUtils.setSkuStock(mixId, key, stockNum);
redisUtils.addGoblinMixRelationBox(skuId, mixId, key);
log.debug("id = " + redisUtils.getGoblinMixRelationBox(skuId, mixId));
sucSkuId.add(key);
}
}
if (boxStock < stock * item.getCount()) {
errorNameList.add("盲盒" + item.getSkuName()); errorNameList.add("盲盒" + item.getSkuName());
} else { for (String temp : boxSkuId) {
redisUtils.setSkuStock(mixId, key, stockNum); String id = temp.split(",")[0];
redisUtils.addGoblinMixRelationBox(skuId, mixId, key); int count = Integer.parseInt(temp.split(",")[1]);
log.debug("id = " + redisUtils.getGoblinMixRelationBox(skuId, mixId)); redisUtils.incrSkuStock(null, id, count);
sucSkuId.add(key); redisUtils.decrSkuStock(mixId, id, count);
}
} }
} }
} else { } else {
......
...@@ -125,7 +125,7 @@ public class MixOrderServiceImpl implements IMixOrderService { ...@@ -125,7 +125,7 @@ public class MixOrderServiceImpl implements IMixOrderService {
} else { } else {
GoblinGoodsSkuInfoVo boxSkuInfo = nftOrderUtils.lotteryDraw(skuIdList, itemVo.getCount(), nt, mixId); GoblinGoodsSkuInfoVo boxSkuInfo = nftOrderUtils.lotteryDraw(skuIdList, itemVo.getCount(), nt, mixId);
if (null == boxSkuInfo) { if (null == boxSkuInfo) {
return ResponseDto.failure("盲盒库存不足啦~"); return ResponseDto.failure("库存不足啦~");
} else { } else {
log.debug("stockId = " + boxSkuInfo.getSkuId() + " stock = " + itemVo.getCount()); log.debug("stockId = " + boxSkuInfo.getSkuId() + " stock = " + itemVo.getCount());
canBuyIds.add(boxSkuInfo.getSkuId() + "," + itemVo.getCount()); canBuyIds.add(boxSkuInfo.getSkuId() + "," + itemVo.getCount());
......
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