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

Commit 8c71bb3c authored by jiangxiulong's avatar jiangxiulong

getIsStock

parent e4239309
......@@ -10,10 +10,7 @@ import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.service.IGoblinNftGoodsAppService;
import com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.ObjectUtil;
import com.liquidnet.service.goblin.util.QueueUtils;
import com.liquidnet.service.goblin.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -46,6 +43,8 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
@Autowired
RedisUtil redisUtil;
@Autowired
private GoblinOrderUtils goblinOrderUtils;
@Autowired
GoblinCouponService goblinCouponService;
@Autowired
IGoblinGoodsAnticipateMgService goblinGoodsAnticipateMgService;
......@@ -78,7 +77,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
// 库存
HashMap<String, Integer> stockHashMap = getIsStock(skuInfoVo.getSkuId(), skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(skuInfoVo.getSkuId(), skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock"));
// 写入列表
skuList.add(nftGoodsSkuInfoVo);
......@@ -99,7 +98,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
goblinNftGoodsSkuListVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
// 库存
HashMap<String, Integer> stockHashMap = getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
goblinNftGoodsSkuListVo.setIsStock(stockHashMap.get("isStock"));
// 写入列表
skuList.add(goblinNftGoodsSkuListVo);
......@@ -135,7 +134,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsDetailSpuInfoVo nftGoodsDetailSpuInfoVo = GoblinNftGoodsDetailSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsDetailSpuInfoVo(nftGoodsDetailSpuInfoVo);
// 库存
HashMap<String, Integer> stockHashMap = getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock"));
// 总库存
if (skuInfoVo.getUnbox().equals("1")) {
......@@ -149,34 +148,6 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
}
}
// 判断是否售罄
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")) {// 未设置售罄 查询库存
int surplusStock = 0;
if (unbox.equals("0")) {// 不是盲盒
surplusStock = goblinRedisUtils.getSkuStock(null, skuId);
} else {
for (String skuIdItem : skuIdList) {// 盲盒计算所有sku库存总数
if (skuIdItem.equals(skuId)) {// 过滤自己
continue;
}
GoblinGoodsSkuInfoVo itemVo = goblinRedisUtils.getGoodsSkuInfoVo(skuIdItem);
surplusStock += goblinRedisUtils.getSkuAllStatusStock(itemVo);
totalStock += goblinRedisUtils.getSkuTotalStock(itemVo);
}
}
if (surplusStock > 0) {
isStock = 1;
}
}
returnMap.put("isStock", isStock);
returnMap.put("totalStock", totalStock);
return returnMap;
}
@Override
public Boolean exchange(String code) {
try {
......
......@@ -2,14 +2,14 @@ package com.liquidnet.service.goblin.util;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamRscPolymer01Vo;
import com.liquidnet.service.adam.dto.vo.AdamUserProfileVo;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyUseResultVo;
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -25,8 +25,6 @@ import java.util.List;
@Slf4j
public class GoblinOrderUtils {
@Value("${liquidnet.service.adam.url}")
private String adamUrl;
@Value("${liquidnet.service.candy.url}")
private String candyUrl;
@Value("${liquidnet.service.stone.url}")
......@@ -52,7 +50,7 @@ public class GoblinOrderUtils {
}
}
public CandyCouponVo getCouponDetails(String uCouponId,String uid) {
public CandyCouponVo getCouponDetails(String uCouponId, String uid) {
try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Authorization", "Bearer " + CurrentUtil.getToken());
......@@ -64,9 +62,9 @@ public class GoblinOrderUtils {
String returnData = HttpUtil.post(candyUrl + " /candy-coupon/receive/ListById", params, header);
ResponseDto<List<CandyCouponVo>> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<List<CandyCouponVo>>>() {
});
if(innerReturnVo.getData().size()>0){
if (innerReturnVo.getData().size() > 0) {
return innerReturnVo.getData().get(0);
}else{
} else {
return null;
}
} catch (Exception e) {
......@@ -93,4 +91,32 @@ public class GoblinOrderUtils {
}
}
// NFT判断是否售罄
public 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")) {// 未设置售罄 查询库存
int surplusStock = 0;
if (unbox.equals("0")) {// 不是盲盒
surplusStock = redisUtils.getSkuStock(null, skuId);
} else {
for (String skuIdItem : skuIdList) {// 盲盒计算所有sku库存总数
if (skuIdItem.equals(skuId)) {// 过滤自己
continue;
}
GoblinGoodsSkuInfoVo itemVo = redisUtils.getGoodsSkuInfoVo(skuIdItem);
surplusStock += redisUtils.getSkuAllStatusStock(itemVo);
totalStock += redisUtils.getSkuTotalStock(itemVo);
}
}
if (surplusStock > 0) {
isStock = 1;
}
}
returnMap.put("isStock", isStock);
returnMap.put("totalStock", totalStock);
return returnMap;
}
}
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