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

Commit 271958c4 authored by 胡佳晨's avatar 胡佳晨

Merge remote-tracking branch 'origin/hjc_goblin_list' into hjc_goblin_list

# Conflicts:
#	liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/utils/GoblinRedisUtils.java
parents 7d7fe923 501ea9ec
...@@ -11,10 +11,7 @@ import com.liquidnet.service.base.constant.MQConst; ...@@ -11,10 +11,7 @@ import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.utils.GoblinNftUtils; import com.liquidnet.service.consumer.kylin.utils.GoblinNftUtils;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst; import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderVo; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.dto.vo.GoblinOrderSkuVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreOrderVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo;
import com.liquidnet.service.goblin.param.BackCouponParam; import com.liquidnet.service.goblin.param.BackCouponParam;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.result.UpdateResult; import com.mongodb.client.result.UpdateResult;
...@@ -172,10 +169,15 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin ...@@ -172,10 +169,15 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
if (nftOrder.getStatus().equals(GoblinStatusConst.NftStatus.ORDER_STATUS_1.getValue())) { if (nftOrder.getStatus().equals(GoblinStatusConst.NftStatus.ORDER_STATUS_1.getValue())) {
// 库存购买数量回滚 // 库存购买数量回滚
goblinNftUtils.decrSkuCountByUid(nftOrder.getUserId(), nftOrder.getSkuId(), nftOrder.getNum()); goblinNftUtils.decrSkuCountByUid(nftOrder.getUserId(), nftOrder.getSkuId(), nftOrder.getNum());
LocalDateTime nowTime = LocalDateTime.now();
if (StringUtils.isEmpty(nftOrder.getBoxSkuId())) {// 购买藏品 if (StringUtils.isEmpty(nftOrder.getBoxSkuId())) {// 购买藏品
goblinNftUtils.incrSkuStock(nftOrder.getSkuId(), nftOrder.getNum()); HashMap<String, Object> map = goblinNftUtils.getGoodsSkuInfoVo(nowTime, nftOrder.getSkuId());
String listId = (String) map.get("listId");
goblinNftUtils.incrSkuStock(listId, nftOrder.getSkuId(), nftOrder.getNum());
} else {// 购买盲盒 } else {// 购买盲盒
goblinNftUtils.incrSkuStock(nftOrder.getBoxSkuId(), nftOrder.getNum()); HashMap<String, Object> map = goblinNftUtils.getGoodsSkuInfoVo(nowTime, nftOrder.getBoxSkuId());
String listId = (String) map.get("listId");
goblinNftUtils.incrSkuStock(listId, nftOrder.getBoxSkuId(), nftOrder.getNum());
} }
// 订单状态 // 订单状态
......
package com.liquidnet.service.consumer.kylin.utils; package com.liquidnet.service.consumer.kylin.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.goblin.constant.GoblinRedisConst; import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinListCollectVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderVo; import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderVo;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.result.UpdateResult; import com.mongodb.client.result.UpdateResult;
...@@ -12,6 +16,11 @@ import org.springframework.data.mongodb.core.query.Criteria; ...@@ -12,6 +16,11 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@Component @Component
public class GoblinNftUtils { public class GoblinNftUtils {
...@@ -30,9 +39,13 @@ public class GoblinNftUtils { ...@@ -30,9 +39,13 @@ public class GoblinNftUtils {
return (int) redisUtil.decr(redisKey, stock); return (int) redisUtil.decr(redisKey, stock);
} }
public int incrSkuStock(String skuId, Integer stock) { public int incrSkuStock(String marketPre, String skuId, Integer stock) {
String redisKey = GoblinRedisConst.REAL_STOCK_SKU.concat(skuId); String rk = GoblinRedisConst.REAL_STOCK_SKU;
return (int) redisUtil.incr(redisKey, stock); if (marketPre != null && !marketPre.equals("null")) {
rk = rk.concat(marketPre + ":");
}
rk = rk.concat(skuId);
return (int) redisUtil.incr(rk, stock);
} }
// 减少 用户sku购买个数 // 减少 用户sku购买个数
...@@ -70,6 +83,107 @@ public class GoblinNftUtils { ...@@ -70,6 +83,107 @@ public class GoblinNftUtils {
object); object);
} }
/**
* 获取 包含分段购的sku详情 HASHMAP
*
* @param now 当前时间
* @param skuId skuId
* @return
*/
public HashMap<String, Object> getGoodsSkuInfoVo(LocalDateTime now, String skuId) {
GoblinGoodsSkuInfoVo vo = getGoodsSkuInfoVo(skuId);
List<GoblinListCollectVo> collectVos = getGoblinListCollect(skuId);
GoblinListCollectVo collectVo = null;
for (GoblinListCollectVo collectVoItem : collectVos) {
if (now.isAfter(collectVoItem.getTimeStart()) && now.isBefore(collectVoItem.getTimeEnd())) {
collectVo = collectVoItem;
break;
}
}
HashMap<String, Object> map = CollectionUtil.mapStringObject();
Integer tagType = null;
String listId = null;
if (collectVo != null) {
vo.setPrice(collectVo.getPrice());
vo.setPriceV(collectVo.getPriceV());
vo.setProductId(collectVo.getProductId());
vo.setSaleStartTime(collectVo.getTimeStart());
vo.setSaleStopTime(collectVo.getTimeEnd());
tagType = collectVo.getTagType();
listId = collectVo.getListId();
}
map.put("vo", vo);
map.put("tagType", tagType);
map.put("listId", listId);
return map;
}
/**
* 单品信息
*
* @param skuId 单品ID
* @return GoblinGoodsSkuInfoVo
*/
public GoblinGoodsSkuInfoVo getGoodsSkuInfoVo(String skuId) {
String pre = GoblinStatusConst.MarketPreStatus.getPre(skuId);
if (pre != null && pre.equals(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue())) {
String rk = GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId.split(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue())[0]);
GoblinGoodsSkuInfoVo vo = (GoblinGoodsSkuInfoVo) redisUtil.get(rk);
if (null == vo && null != (vo = getGoodsSkuInfoVoMdb(skuId))) {
redisUtil.set(rk, vo);
}
if (vo == null) {
return vo;
}
String marketrk = GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId);
GoblinGoodsSkuInfoVo marketVo = (GoblinGoodsSkuInfoVo) redisUtil.get(marketrk);
if (null == marketVo && null != (marketVo = getGoodsSkuInfoVoMdb(skuId))) {
redisUtil.set(marketrk, marketVo);
}
if (marketVo == null) {
return marketVo;
}
vo.setSpuId(marketVo.getSpuId());
vo.setSkuId(marketVo.getSkuId());
vo.setPrice(marketVo.getPrice());
vo.setPriceMember(marketVo.getPriceMember());
vo.setSkuStock(marketVo.getSkuStock());
vo.setBuyLimit(marketVo.getBuyLimit());
vo.setBuyRoster(marketVo.getBuyRoster());
vo.setBuyFactor(marketVo.getBuyFactor());
// vo.setDelFlg("0");
vo.setDelFlg(marketVo.getDelFlg().equals("1") ? marketVo.getDelFlg() : vo.getDelFlg());
vo.setMarketId(marketVo.getMarketId());
vo.setCreatedAt(LocalDateTime.now());
return vo;
} else {
String rk = GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId);
GoblinGoodsSkuInfoVo vo = (GoblinGoodsSkuInfoVo) redisUtil.get(rk);
if (null == vo && null != (vo = getGoodsSkuInfoVoMdb(skuId))) {
redisUtil.set(rk, vo);
}
return vo;
}
}
// SKU信息
public GoblinGoodsSkuInfoVo getGoodsSkuInfoVoMdb(String skuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId)),
GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
}
/**
* 分段购获取
* @param skuId
* @return
*/
public List<GoblinListCollectVo> getGoblinListCollect(String skuId) {
Object obj = redisUtil.get(GoblinRedisConst.LIST_COLLECT.concat(skuId));
if (obj == null) {
return new ArrayList<>();
} else {
return (List<GoblinListCollectVo>) obj;
}
}
public static BasicDBObject cloneBasicDBObject() { public static BasicDBObject cloneBasicDBObject() {
return (BasicDBObject) basicDBObject.clone(); return (BasicDBObject) basicDBObject.clone();
} }
......
...@@ -73,7 +73,10 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -73,7 +73,10 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 是否存在此商品信息 是否隐藏 // 是否存在此商品信息 是否隐藏
String skuId = payParam.getSkuId(); String skuId = payParam.getSkuId();
int number = 1; int number = 1;
GoblinGoodsSkuInfoVo skuVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId); LocalDateTime nowTime = LocalDateTime.now();
HashMap<String, Object> map = goblinRedisUtils.getGoodsSkuInfoVo(nowTime, skuId);
GoblinGoodsSkuInfoVo skuVo = (GoblinGoodsSkuInfoVo) map.get("vo");
String listId = (String) map.get("listId");
if (!nftOrderUtils.getSkuAllStatusShow(skuVo)) { if (!nftOrderUtils.getSkuAllStatusShow(skuVo)) {
return ResponseDto.failure("该商品不存在~"); return ResponseDto.failure("该商品不存在~");
} }
...@@ -89,7 +92,6 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -89,7 +92,6 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 判断开售、停售时间 // 判断开售、停售时间
LocalDateTime saleStartTime = skuVo.getSaleStartTime(); LocalDateTime saleStartTime = skuVo.getSaleStartTime();
LocalDateTime saleStopTime = skuVo.getSaleStopTime(); LocalDateTime saleStopTime = skuVo.getSaleStopTime();
LocalDateTime nowTime = LocalDateTime.now();
if (nowTime.isBefore(saleStartTime)) { if (nowTime.isBefore(saleStartTime)) {
return ResponseDto.failure("该商品还未开始售卖~"); return ResponseDto.failure("该商品还未开始售卖~");
} else if (null != saleStopTime && nowTime.isAfter(saleStopTime)) { } else if (null != saleStopTime && nowTime.isAfter(saleStopTime)) {
...@@ -132,19 +134,21 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -132,19 +134,21 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
if (CollectionUtil.isEmpty(skuIdList)) { if (CollectionUtil.isEmpty(skuIdList)) {
return ResponseDto.failure("该商品SPU不存在~"); return ResponseDto.failure("该商品SPU不存在~");
} else { } else {
GoblinGoodsSkuInfoVo skuInfoVo = lotteryDraw(skuIdList, number); HashMap<String, Object> lotteryDrawMap = lotteryDraw(skuIdList, number);
GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) lotteryDrawMap.get("goodsSkuInfoVo");
if (null == skuInfoVo) { if (null == skuInfoVo) {
goblinRedisUtils.decrSkuCountByUid(uid, skuId, number); goblinRedisUtils.decrSkuCountByUid(uid, skuId, number);
return ResponseDto.failure("盲盒库存不足啦~"); return ResponseDto.failure("盲盒库存不足啦~");
} }
boxSkuId = skuInfoVo.getSkuId(); boxSkuId = skuInfoVo.getSkuId();
stockSkuId = boxSkuId; stockSkuId = boxSkuId;
listId = (String) lotteryDrawMap.get("listId");
} }
} else {// 普通藏品逻辑 } else {// 普通藏品逻辑
// 判断库存 // 判断库存
int surplusGeneral = nftOrderUtils.decrSkuStock(skuId, number); int surplusGeneral = goblinRedisUtils.decrSkuStock(listId, skuId, number);
if (surplusGeneral < 0) { if (surplusGeneral < 0) {
nftOrderUtils.backSkuCountAndStock(uid, stockSkuId, skuId, number); nftOrderUtils.backSkuCountAndStock(listId, uid, stockSkuId, skuId, number);
return ResponseDto.failure("库存不足啦~"); return ResponseDto.failure("库存不足啦~");
} }
} }
...@@ -187,14 +191,14 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -187,14 +191,14 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 下单数据 // 下单数据
GoblinNftOrder nftOrder = order(payParam, skuVo.getStoreId(), uid, spuId, number, orderId, orderCode, totalPrice, voucherPrice, storeVoucherPrice, boxSkuId, skuVo.getName() + " " + skuVo.getSubtitle()); GoblinNftOrder nftOrder = order(payParam, skuVo.getStoreId(), uid, spuId, number, orderId, orderCode, totalPrice, voucherPrice, storeVoucherPrice, boxSkuId, skuVo.getName() + " " + skuVo.getSubtitle());
if (null == nftOrder) { if (null == nftOrder) {
nftOrderUtils.backSkuCountAndStock(uid, stockSkuId, skuId, number); nftOrderUtils.backSkuCountAndStock(listId, uid, stockSkuId, skuId, number);
return ResponseDto.failure("下单失败~"); return ResponseDto.failure("下单失败~");
} }
// 下单唤起支付 // 下单唤起支付
GoblinNftPayResultVo nftPayResultVo = payOrder(nftOrder, uid, payParam, skuVo.getProductId()); GoblinNftPayResultVo nftPayResultVo = payOrder(nftOrder, uid, payParam, skuVo.getProductId());
if (null == nftPayResultVo) { if (null == nftPayResultVo) {
nftOrderUtils.backSkuCountAndStock(uid, stockSkuId, skuId, number); nftOrderUtils.backSkuCountAndStock(listId, uid, stockSkuId, skuId, number);
return ResponseDto.failure("下单失败啦~"); return ResponseDto.failure("下单失败啦~");
} }
return ResponseDto.success(nftPayResultVo); return ResponseDto.success(nftPayResultVo);
...@@ -208,18 +212,23 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -208,18 +212,23 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
} }
} }
private GoblinGoodsSkuInfoVo lotteryDraw(List<String> skuIdList, int number) { private HashMap<String, Object> lotteryDraw(List<String> skuIdList, int number) {
LocalDateTime now = LocalDateTime.now();
try { try {
ArrayList<GoblinGoodsSkuInfoVo> skuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo(); ArrayList<GoblinGoodsSkuInfoVo> skuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo();
ArrayList<String> listIds = ObjectUtil.cloneArrayListString();
for (String kid : skuIdList) { for (String kid : skuIdList) {
GoblinGoodsSkuInfoVo skuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(kid); HashMap<String, Object> map = goblinRedisUtils.getGoodsSkuInfoVo(now, kid);
GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) map.get("vo");
String listId = (String) map.get("listId");
// 是盲盒的扔掉 // 是盲盒的扔掉
if (skuInfoVo.getUnbox().equals("1")) { if (skuInfoVo.getUnbox().equals("1")) {
continue; continue;
} }
// 不能购买的 没库存的 概率是0的 过滤 // 不能购买的 没库存的 概率是0的 过滤
if (nftOrderUtils.getSkuAllStatusShow(skuInfoVo) && nftOrderUtils.getSkuAllStatusStock(skuInfoVo) > 0) { if (nftOrderUtils.getSkuAllStatusShow(skuInfoVo) && nftOrderUtils.getSkuAllStatusStock(listId, skuInfoVo) > 0) {
skuInfoVos.add(skuInfoVo); skuInfoVos.add(skuInfoVo);
listIds.add(listId);
} }
} }
if (CollectionUtil.isEmpty(skuInfoVos)) { if (CollectionUtil.isEmpty(skuInfoVos)) {
...@@ -246,6 +255,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -246,6 +255,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
} }
// 未设置概率的写入概率 // 未设置概率的写入概率
ArrayList<GoblinGoodsSkuInfoVo> newSkuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo(); ArrayList<GoblinGoodsSkuInfoVo> newSkuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo();
ArrayList<String> newListIds = ObjectUtil.cloneArrayListString();
int skuListSize = skuInfoVos.size(); int skuListSize = skuInfoVos.size();
for (int i = 0; i < skuListSize; i++) { for (int i = 0; i < skuListSize; i++) {
GoblinGoodsSkuInfoVo infoVo = skuInfoVos.get(i); GoblinGoodsSkuInfoVo infoVo = skuInfoVos.get(i);
...@@ -266,6 +276,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -266,6 +276,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
infoVo.setHitRatio(skuInfoVos.get(i - 1).getHitRatio().add(infoVo.getHitRatio())); infoVo.setHitRatio(skuInfoVos.get(i - 1).getHitRatio().add(infoVo.getHitRatio()));
} }
newSkuInfoVos.add(infoVo); newSkuInfoVos.add(infoVo);
newListIds.add(listIds.get(i));
} }
if (CollectionUtil.isEmpty(newSkuInfoVos)) { if (CollectionUtil.isEmpty(newSkuInfoVos)) {
log.info("该盲盒概率超过100导致不能卖 skuIdList:{}", skuIdList); log.info("该盲盒概率超过100导致不能卖 skuIdList:{}", skuIdList);
...@@ -285,13 +296,17 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService { ...@@ -285,13 +296,17 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
int index = hitRatioList.indexOf(nextDoubleNew); int index = hitRatioList.indexOf(nextDoubleNew);
GoblinGoodsSkuInfoVo goodsSkuInfoVo = newSkuInfoVos.get(index); GoblinGoodsSkuInfoVo goodsSkuInfoVo = newSkuInfoVos.get(index);
String endListId = newListIds.get(index);
// 判断库存 // 判断库存
int surplusGeneral = nftOrderUtils.decrSkuStock(goodsSkuInfoVo.getSkuId(), number); int surplusGeneral = goblinRedisUtils.decrSkuStock(endListId, goodsSkuInfoVo.getSkuId(), number);
if (surplusGeneral < 0) { if (surplusGeneral < 0) {
nftOrderUtils.incrSkuStock(goodsSkuInfoVo.getSkuId(), number); goblinRedisUtils.incrSkuStock(endListId, goodsSkuInfoVo.getSkuId(), number);
return lotteryDraw(skuIdList, number); return lotteryDraw(skuIdList, number);
} else { } else {
return goodsSkuInfoVo; HashMap<String, Object> map = CollectionUtil.mapStringObject();
map.put("goodsSkuInfoVo", goodsSkuInfoVo);
map.put("listId", endListId);
return map;
} }
} }
} catch (Exception e) { } catch (Exception e) {
......
...@@ -57,11 +57,11 @@ public class GoblinNftOrderUtils { ...@@ -57,11 +57,11 @@ public class GoblinNftOrderUtils {
} }
// 回滚用户sku购买个数和库存 // 回滚用户sku购买个数和库存
public void backSkuCountAndStock(String uid, String stockSkuId, String bySkuId, int number) { public void backSkuCountAndStock(String listId, String uid, String stockSkuId, String bySkuId, int number) {
// 减少用户购买个数 // 减少用户购买个数
goblinRedisUtils.decrSkuCountByUid(uid, bySkuId, number); goblinRedisUtils.decrSkuCountByUid(uid, bySkuId, number);
// 增加库存 // 增加库存
incrSkuStock(stockSkuId, number); goblinRedisUtils.incrSkuStock(listId, stockSkuId, number);
} }
// 订单详情vo // 订单详情vo
...@@ -353,7 +353,7 @@ public class GoblinNftOrderUtils { ...@@ -353,7 +353,7 @@ public class GoblinNftOrderUtils {
* String unbox; 是否盲盒[0-否|1-是] * String unbox; 是否盲盒[0-否|1-是]
*/ */
// 获取盲盒下藏品的库存 各种状态下不能算库存的排除掉 // 获取盲盒下藏品的库存 各种状态下不能算库存的排除掉
public int getSkuAllStatusStock(GoblinGoodsSkuInfoVo info) { public int getSkuAllStatusStock(String listId, GoblinGoodsSkuInfoVo info) {
if ( if (
info != null info != null
&& LocalDateTime.now().isAfter(info.getSaleStartTime()) && LocalDateTime.now().isAfter(info.getSaleStartTime())
...@@ -361,7 +361,7 @@ public class GoblinNftOrderUtils { ...@@ -361,7 +361,7 @@ public class GoblinNftOrderUtils {
&& (null == info.getSkuCanbuy() || info.getSkuCanbuy().equals("1")) && (null == info.getSkuCanbuy() || info.getSkuCanbuy().equals("1"))
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0) && (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
) {// 可以返回库存 ) {// 可以返回库存
return goblinRedisUtils.getSkuStock(info.getSkuId()); return goblinRedisUtils.getSkuStock(listId, info.getSkuId());
} else {// 不计入库存 } else {// 不计入库存
return 0; return 0;
} }
......
...@@ -59,16 +59,6 @@ public class GoblinRedisUtils { ...@@ -59,16 +59,6 @@ public class GoblinRedisUtils {
} }
} }
public int getSkuStock(String skuId) {
String rk = GoblinRedisConst.REAL_STOCK_SKU.concat(skuId);
Object obj = redisUtil.get(rk);
if (obj == null) {
return 0;
} else {
return (int) obj;
}
}
public GoblinStoreInfoVo getStoreInfoVo(String storeId) { public GoblinStoreInfoVo getStoreInfoVo(String storeId) {
String rk = GoblinRedisConst.BASIC_STORE.concat(storeId); String rk = GoblinRedisConst.BASIC_STORE.concat(storeId);
GoblinStoreInfoVo vo = (GoblinStoreInfoVo) redisUtil.get(rk); GoblinStoreInfoVo vo = (GoblinStoreInfoVo) redisUtil.get(rk);
......
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