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

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

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

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