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

Commit 003654d1 authored by jiangxiulong's avatar jiangxiulong

盲盒分批购listId用的盲盒的不是真正中奖藏品的

parent f538909b
......@@ -82,7 +82,6 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
LocalDateTime nowTime = LocalDateTime.now();
HashMap<String, Object> map = goblinRedisUtils.getGoodsSkuInfoVo(nowTime, skuId);
GoblinGoodsSkuInfoVo skuVo = (GoblinGoodsSkuInfoVo) map.get("vo");
Object tagType = map.get("tagType");
String listId = (String) map.get("listId");
Integer whiteType = (Integer) map.get("whiteType");
......@@ -159,15 +158,16 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
if (CollectionUtil.isEmpty(skuIdList)) {
return ResponseDto.failure("该商品SPU不存在~");
} else {
HashMap<String, Object> lotteryDrawMap = lotteryDraw(skuIdList, number, nowTime);
if (null == lotteryDrawMap) {
// HashMap<String, Object> lotteryDrawMap = lotteryDraw(skuIdList, number, nowTime);
GoblinGoodsSkuInfoVo skuInfoVo = lotteryDraw(skuIdList, number, nowTime, listId);
if (null == skuInfoVo) {
goblinRedisUtils.decrSkuCountByUid(uid, skuId, number);
return ResponseDto.failure("盲盒库存不足啦~");
}
GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) lotteryDrawMap.get("goodsSkuInfoVo");
// GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) lotteryDrawMap.get("goodsSkuInfoVo");
boxSkuId = skuInfoVo.getSkuId();
stockSkuId = boxSkuId;
listId = (String) lotteryDrawMap.get("listId");
// listId = (String) lotteryDrawMap.get("listId");
}
} else {// 普通藏品逻辑
// 判断库存
......@@ -238,14 +238,15 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
}
}
private HashMap<String, Object> lotteryDraw(List<String> skuIdList, int number, LocalDateTime nowTime) {
private GoblinGoodsSkuInfoVo lotteryDraw(List<String> skuIdList, int number, LocalDateTime nowTime, String listId) {
// private HashMap<String, Object> lotteryDraw(List<String> skuIdList, int number, LocalDateTime nowTime) {
try {
ArrayList<GoblinGoodsSkuInfoVo> skuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo();
ArrayList<String> listIds = ObjectUtil.cloneArrayListString();
// ArrayList<String> listIds = ObjectUtil.cloneArrayListString();
for (String kid : skuIdList) {
HashMap<String, Object> map = goblinRedisUtils.getGoodsSkuInfoVo(nowTime, kid);
GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) map.get("vo");
String listId = (String) map.get("listId");
// String listId = (String) map.get("listId");
// 是盲盒的扔掉
if (skuInfoVo.getUnbox().equals("1")) {
continue;
......@@ -253,7 +254,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 不能购买的 没库存的 概率是0的 过滤
if (nftOrderUtils.getSkuAllStatusShow(skuInfoVo) && nftOrderUtils.getSkuAllStatusStock(listId, skuInfoVo) > 0) {
skuInfoVos.add(skuInfoVo);
listIds.add(listId);
// listIds.add(listId);
}
}
if (CollectionUtil.isEmpty(skuInfoVos)) {
......@@ -281,7 +282,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 未设置概率的写入概率
ArrayList<GoblinGoodsSkuInfoVo> newSkuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo();
ArrayList<String> newListIds = ObjectUtil.cloneArrayListString();
// ArrayList<String> newListIds = ObjectUtil.cloneArrayListString();
int skuListSize = skuInfoVos.size();
for (int i = 0; i < skuListSize; i++) {
GoblinGoodsSkuInfoVo infoVo = skuInfoVos.get(i);
......@@ -302,7 +303,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
infoVo.setHitRatio(skuInfoVos.get(i - 1).getHitRatio().add(infoVo.getHitRatio()));
}
newSkuInfoVos.add(infoVo);
newListIds.add(listIds.get(i));
// newListIds.add(listIds.get(i));
}
......@@ -324,17 +325,18 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
int index = hitRatioList.indexOf(nextDoubleNew);
GoblinGoodsSkuInfoVo goodsSkuInfoVo = newSkuInfoVos.get(index);
String endListId = newListIds.get(index);
// String endListId = newListIds.get(index);
// 判断库存
int surplusGeneral = goblinRedisUtils.decrSkuStock(endListId, goodsSkuInfoVo.getSkuId(), number);
int surplusGeneral = goblinRedisUtils.decrSkuStock(listId, goodsSkuInfoVo.getSkuId(), number);
if (surplusGeneral < 0) {
goblinRedisUtils.incrSkuStock(endListId, goodsSkuInfoVo.getSkuId(), number);
return lotteryDraw(skuIdList, number, nowTime);
goblinRedisUtils.incrSkuStock(listId, goodsSkuInfoVo.getSkuId(), number);
return lotteryDraw(skuIdList, number, nowTime, listId);
} else {
HashMap<String, Object> map = CollectionUtil.mapStringObject();
map.put("goodsSkuInfoVo", goodsSkuInfoVo);
map.put("listId", endListId);
return map;
// HashMap<String, Object> map = CollectionUtil.mapStringObject();
// map.put("goodsSkuInfoVo", goodsSkuInfoVo);
// map.put("listId", endListId);
// return map;
return goodsSkuInfoVo;
}
}
} catch (Exception e) {
......
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