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

Commit 8dc130d7 authored by jiangxiulong's avatar jiangxiulong

详情增加总库存

parent 7a343950
...@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service; ...@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -77,8 +78,8 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -77,8 +78,8 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo); GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo); nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
// 库存 // 库存
int isStock = getIsStock(skuInfoVo.getSkuId(), skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList()); HashMap<String, Integer> stockHashMap = getIsStock(skuInfoVo.getSkuId(), skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
nftGoodsSkuInfoVo.setIsStock(isStock); nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock"));
// 写入列表 // 写入列表
skuList.add(nftGoodsSkuInfoVo); skuList.add(nftGoodsSkuInfoVo);
skuIdList.add(nftGoodsSkuInfoVo.getSkuId()); skuIdList.add(nftGoodsSkuInfoVo.getSkuId());
...@@ -98,8 +99,8 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -98,8 +99,8 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo); GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
goblinNftGoodsSkuListVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo); goblinNftGoodsSkuListVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
// 库存 // 库存
int isStock = getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList()); HashMap<String, Integer> stockHashMap = getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
goblinNftGoodsSkuListVo.setIsStock(isStock); goblinNftGoodsSkuListVo.setIsStock(stockHashMap.get("isStock"));
// 写入列表 // 写入列表
skuList.add(goblinNftGoodsSkuListVo); skuList.add(goblinNftGoodsSkuListVo);
} }
...@@ -134,8 +135,12 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -134,8 +135,12 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsDetailSpuInfoVo nftGoodsDetailSpuInfoVo = GoblinNftGoodsDetailSpuInfoVo.getNew().copy(goodsInfoVo); GoblinNftGoodsDetailSpuInfoVo nftGoodsDetailSpuInfoVo = GoblinNftGoodsDetailSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsDetailSpuInfoVo(nftGoodsDetailSpuInfoVo); nftGoodsSkuInfoVo.setGoblinNftGoodsDetailSpuInfoVo(nftGoodsDetailSpuInfoVo);
// 库存 // 库存
int isStock = getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList()); HashMap<String, Integer> stockHashMap = getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
nftGoodsSkuInfoVo.setIsStock(isStock); nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock"));
// 总库存
if (skuInfoVo.getUnbox().equals("1")) {
nftGoodsSkuInfoVo.setSkuStock(stockHashMap.get("totalStock"));
}
// 系统时间 // 系统时间
nftGoodsSkuInfoVo.setSystime(LocalDateTime.now()); nftGoodsSkuInfoVo.setSystime(LocalDateTime.now());
return nftGoodsSkuInfoVo; return nftGoodsSkuInfoVo;
...@@ -145,28 +150,31 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -145,28 +150,31 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
} }
// 判断是否售罄 // 判断是否售罄
private int getIsStock(String skuId, String unbox, String soldoutStatus, List<String> skuIdList) { private HashMap<String, Integer> getIsStock(String skuId, String unbox, String soldoutStatus, List<String> skuIdList) {
HashMap<String, Integer> returnMap = CollectionUtil.mapStringInteger();
Integer isStock = 0;
Integer totalStock = 0;
if (null == soldoutStatus || soldoutStatus.equals("0")) {// 未设置售罄 查询库存 if (null == soldoutStatus || soldoutStatus.equals("0")) {// 未设置售罄 查询库存
int stock = 0; int surplusStock = 0;
if (unbox.equals("0")) {// 不是盲盒 if (unbox.equals("0")) {// 不是盲盒
stock = goblinRedisUtils.getSkuStock(null, skuId); surplusStock = goblinRedisUtils.getSkuStock(null, 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 = goblinRedisUtils.getGoodsSkuInfoVo(skuIdItem); GoblinGoodsSkuInfoVo itemVo = goblinRedisUtils.getGoodsSkuInfoVo(skuIdItem);
stock += goblinRedisUtils.getSkuAllStatusStock(itemVo); surplusStock += goblinRedisUtils.getSkuAllStatusStock(itemVo);
totalStock += goblinRedisUtils.getSkuTotalStock(itemVo);
} }
} }
if (stock <= 0) { if (surplusStock > 0) {
return 0; isStock = 1;
} else {
return 1;
} }
} else {
return 0;
} }
returnMap.put("isStock", isStock);
returnMap.put("totalStock", totalStock);
return returnMap;
} }
@Override @Override
......
...@@ -1661,6 +1661,19 @@ public class GoblinRedisUtils { ...@@ -1661,6 +1661,19 @@ public class GoblinRedisUtils {
return false; return false;
} }
} }
// 各种状态下判断藏品总库存
public Integer getSkuTotalStock(GoblinGoodsSkuInfoVo info) {
if (
info != null
&& LocalDateTime.now().isAfter(info.getSaleStartTime())
&& (null == info.getSoldoutStatus() || info.getSoldoutStatus().equals("0"))
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
) {// 可以返回库存
return info.getSkuStock();
} else {// 不计入库存
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