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

Commit 706e6de9 authored by jiangxiulong's avatar jiangxiulong

goblin相关 获取判断库存增加listId

parent ec5e7c15
...@@ -69,10 +69,9 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -69,10 +69,9 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
for (int i = finalCount; i < initCount; i++) { for (int i = finalCount; i < initCount; i++) {
String skuId = allIdList.get(i); String skuId = allIdList.get(i);
// sku信息 // sku信息
HashMap<String,Object> map = goblinRedisUtils.getGoodsSkuInfoVo(now,skuId); HashMap<String, Object> map = goblinRedisUtils.getGoodsSkuInfoVo(now, skuId);
GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) map.get("vo"); GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) map.get("vo");
Integer tagType = (Integer) map.get("tagType"); Integer tagType = (Integer) map.get("tagType");
String listId = (String) map.get("listId");
GoblinNftGoodsSkuListVo goblinNftGoodsSkuListVo = GoblinNftGoodsSkuListVo.getNew().copy(skuInfoVo); GoblinNftGoodsSkuListVo goblinNftGoodsSkuListVo = GoblinNftGoodsSkuListVo.getNew().copy(skuInfoVo);
// spu信息 // spu信息
Object spuInfoMap = spuInfoList.get(skuInfoVo.getSpuId()); Object spuInfoMap = spuInfoList.get(skuInfoVo.getSpuId());
...@@ -106,7 +105,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -106,7 +105,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
@Override @Override
public GoblinNftGoodsSkuInfoVo goodsDetail(String skuId) { public GoblinNftGoodsSkuInfoVo goodsDetail(String skuId) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
HashMap<String,Object> map = goblinRedisUtils.getGoodsSkuInfoVo(now,skuId); HashMap<String, Object> map = goblinRedisUtils.getGoodsSkuInfoVo(now, skuId);
GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) map.get("vo"); GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) map.get("vo");
Integer tagType = (Integer) map.get("tagType"); Integer tagType = (Integer) map.get("tagType");
String listId = (String) map.get("listId"); String listId = (String) map.get("listId");
...@@ -129,7 +128,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -129,7 +128,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsDetailSpuInfoVo nftGoodsDetailSpuInfoVo = GoblinNftGoodsDetailSpuInfoVo.getNew().copy(goodsInfoVo); GoblinNftGoodsDetailSpuInfoVo nftGoodsDetailSpuInfoVo = GoblinNftGoodsDetailSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsDetailSpuInfoVo(nftGoodsDetailSpuInfoVo); nftGoodsSkuInfoVo.setGoblinNftGoodsDetailSpuInfoVo(nftGoodsDetailSpuInfoVo);
// 库存 // 库存
HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList()); HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(listId, skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock")); nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock"));
// 总库存 // 总库存
if (skuInfoVo.getUnbox().equals("1")) { if (skuInfoVo.getUnbox().equals("1")) {
......
...@@ -92,7 +92,9 @@ public class GoblinNftJobServiceImpl { ...@@ -92,7 +92,9 @@ public class GoblinNftJobServiceImpl {
if (info.getUnbox().equals("1")) {// 是盲盒,非盲盒少查一次spu if (info.getUnbox().equals("1")) {// 是盲盒,非盲盒少查一次spu
skuIdList = goblinRedisUtils.getGoodsInfoVo(info.getSpuId()).getSkuIdList(); skuIdList = goblinRedisUtils.getGoodsInfoVo(info.getSpuId()).getSkuIdList();
} }
HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(info.getSkuId(), info.getUnbox(), info.getSoldoutStatus(), skuIdList); HashMap<String, Object> map = goblinRedisUtils.getGoodsSkuInfoVo(nowTime, info.getSkuId());
String listId = (String) map.get("listId");
HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(listId, info.getSkuId(), info.getUnbox(), info.getSoldoutStatus(), skuIdList);
if (stockHashMap.get("isStock") == 1) {// 已开卖-未售罄 if (stockHashMap.get("isStock") == 1) {// 已开卖-未售罄
startSkuIdList.add(info.getSkuId()); startSkuIdList.add(info.getSkuId());
} else {// 已开卖-已售罄 时间正序 } else {// 已开卖-已售罄 时间正序
......
...@@ -1577,8 +1577,10 @@ public class GoblinMongoUtils { ...@@ -1577,8 +1577,10 @@ public class GoblinMongoUtils {
if (skuIdItem.equals(vo.getSkuId())) {// 过滤自己 if (skuIdItem.equals(vo.getSkuId())) {// 过滤自己
continue; continue;
} }
GoblinGoodsSkuInfoVo itemVo = redisUtils.getGoodsSkuInfoVo(skuIdItem); HashMap<String, Object> map = redisUtils.getGoodsSkuInfoVo(LocalDateTime.now(), skuIdItem);
stock += redisUtils.getSkuAllStatusStock(itemVo); GoblinGoodsSkuInfoVo itemVo = (GoblinGoodsSkuInfoVo) map.get("vo");
String listId = (String) map.get("listId");
stock += redisUtils.getSkuAllStatusStock(itemVo, listId);
} }
mgtGoodsSkuListVo.setSurplusStock(stock); mgtGoodsSkuListVo.setSurplusStock(stock);
} }
......
...@@ -19,6 +19,7 @@ import org.springframework.stereotype.Component; ...@@ -19,6 +19,7 @@ import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -90,21 +91,23 @@ public class GoblinOrderUtils { ...@@ -90,21 +91,23 @@ public class GoblinOrderUtils {
} }
// NFT判断是否售罄 // NFT判断是否售罄
public HashMap<String, Integer> getIsStock(String skuId, String unbox, String soldoutStatus, List<String> skuIdList) { public HashMap<String, Integer> getIsStock(String listId, String skuId, String unbox, String soldoutStatus, List<String> skuIdList) {
HashMap<String, Integer> returnMap = CollectionUtil.mapStringInteger(); HashMap<String, Integer> returnMap = CollectionUtil.mapStringInteger();
Integer isStock = 0; Integer isStock = 0;
Integer totalStock = 0; Integer totalStock = 0;
if (null == soldoutStatus || soldoutStatus.equals("0")) {// 未设置售罄 查询库存 if (null == soldoutStatus || soldoutStatus.equals("0")) {// 未设置售罄 查询库存
int surplusStock = 0; int surplusStock = 0;
if (unbox.equals("0")) {// 不是盲盒 if (unbox.equals("0")) {// 不是盲盒
surplusStock = redisUtils.getSkuStock(null, skuId); surplusStock = redisUtils.getSkuStock(listId, skuId);
} else { } else {
for (String skuIdItem : skuIdList) {// 盲盒计算所有sku库存总数 for (String skuIdItem : skuIdList) {// 盲盒计算所有sku库存总数
if (skuIdItem.equals(skuId)) {// 过滤自己 if (skuIdItem.equals(skuId)) {// 过滤自己
continue; continue;
} }
GoblinGoodsSkuInfoVo itemVo = redisUtils.getGoodsSkuInfoVo(skuIdItem); HashMap<String, Object> map = redisUtils.getGoodsSkuInfoVo(LocalDateTime.now(), skuIdItem);
surplusStock += redisUtils.getSkuAllStatusStock(itemVo); GoblinGoodsSkuInfoVo itemVo = (GoblinGoodsSkuInfoVo) map.get("vo");
String listId2 = (String) map.get("listId");
surplusStock += redisUtils.getSkuAllStatusStock(itemVo, listId2);
totalStock += redisUtils.getSkuTotalStock(itemVo); totalStock += redisUtils.getSkuTotalStock(itemVo);
} }
} }
......
...@@ -1710,7 +1710,7 @@ public class GoblinRedisUtils { ...@@ -1710,7 +1710,7 @@ public class GoblinRedisUtils {
* String unbox; 是否盲盒[0-否|1-是] * String unbox; 是否盲盒[0-否|1-是]
*/ */
// 获取盲盒下藏品的库存 各种状态下不能算库存的排除掉 // 获取盲盒下藏品的库存 各种状态下不能算库存的排除掉
public int getSkuAllStatusStock(GoblinGoodsSkuInfoVo info) { public int getSkuAllStatusStock(GoblinGoodsSkuInfoVo info, String listId) {
if ( if (
info != null info != null
&& LocalDateTime.now().isAfter(info.getSaleStartTime()) && LocalDateTime.now().isAfter(info.getSaleStartTime())
...@@ -1718,7 +1718,7 @@ public class GoblinRedisUtils { ...@@ -1718,7 +1718,7 @@ public class GoblinRedisUtils {
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0) && (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
&& (null == info.getSkuCanbuy() || info.getSkuCanbuy().equals("1")) && (null == info.getSkuCanbuy() || info.getSkuCanbuy().equals("1"))
) {// 可以返回库存 ) {// 可以返回库存
return getSkuStock(null, info.getSkuId()); return getSkuStock(listId, info.getSkuId());
} else {// 不计入库存 } else {// 不计入库存
return 0; return 0;
} }
......
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