记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
501ea9ec
Commit
501ea9ec
authored
May 10, 2022
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
order、kylin消费相关 获取判断回滚库存增加listId
parent
706e6de9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
163 additions
and
28 deletions
+163
-28
AbstractOrderCloseReceiver.java
...e/consumer/kylin/receiver/AbstractOrderCloseReceiver.java
+8
-6
GoblinNftUtils.java
...iquidnet/service/consumer/kylin/utils/GoblinNftUtils.java
+117
-3
GoblinNftOrderServiceImpl.java
...service/order/service/impl/GoblinNftOrderServiceImpl.java
+28
-13
GoblinNftOrderUtils.java
...om/liquidnet/service/order/utils/GoblinNftOrderUtils.java
+4
-4
GoblinRedisUtils.java
...a/com/liquidnet/service/order/utils/GoblinRedisUtils.java
+6
-2
No files found.
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/receiver/AbstractOrderCloseReceiver.java
View file @
501ea9ec
...
...
@@ -11,10 +11,7 @@ import com.liquidnet.service.base.constant.MQConst;
import
com.liquidnet.service.consumer.kylin.utils.GoblinNftUtils
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.dto.vo.GoblinNftOrderVo
;
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.dto.vo.*
;
import
com.liquidnet.service.goblin.param.BackCouponParam
;
import
com.mongodb.BasicDBObject
;
import
com.mongodb.client.result.UpdateResult
;
...
...
@@ -172,10 +169,15 @@ public abstract class AbstractOrderCloseReceiver implements StreamListener<Strin
if
(
nftOrder
.
getStatus
().
equals
(
GoblinStatusConst
.
NftStatus
.
ORDER_STATUS_1
.
getValue
()))
{
// 库存购买数量回滚
goblinNftUtils
.
decrSkuCountByUid
(
nftOrder
.
getUserId
(),
nftOrder
.
getSkuId
(),
nftOrder
.
getNum
());
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
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
{
// 购买盲盒
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
());
}
// 订单状态
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/utils/GoblinNftUtils.java
View file @
501ea9ec
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
utils
;
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.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.mongodb.BasicDBObject
;
import
com.mongodb.client.result.UpdateResult
;
...
...
@@ -12,6 +16,11 @@ import org.springframework.data.mongodb.core.query.Criteria;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
@Component
public
class
GoblinNftUtils
{
...
...
@@ -30,9 +39,13 @@ public class GoblinNftUtils {
return
(
int
)
redisUtil
.
decr
(
redisKey
,
stock
);
}
public
int
incrSkuStock
(
String
skuId
,
Integer
stock
)
{
String
redisKey
=
GoblinRedisConst
.
REAL_STOCK_SKU
.
concat
(
skuId
);
return
(
int
)
redisUtil
.
incr
(
redisKey
,
stock
);
public
int
incrSkuStock
(
String
marketPre
,
String
skuId
,
Integer
stock
)
{
String
rk
=
GoblinRedisConst
.
REAL_STOCK_SKU
;
if
(
marketPre
!=
null
&&
!
marketPre
.
equals
(
"null"
))
{
rk
=
rk
.
concat
(
marketPre
+
":"
);
}
rk
=
rk
.
concat
(
skuId
);
return
(
int
)
redisUtil
.
incr
(
rk
,
stock
);
}
// 减少 用户sku购买个数
...
...
@@ -70,6 +83,107 @@ public class GoblinNftUtils {
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
()
{
return
(
BasicDBObject
)
basicDBObject
.
clone
();
}
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/GoblinNftOrderServiceImpl.java
View file @
501ea9ec
...
...
@@ -73,7 +73,10 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 是否存在此商品信息 是否隐藏
String
skuId
=
payParam
.
getSkuId
();
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
))
{
return
ResponseDto
.
failure
(
"该商品不存在~"
);
}
...
...
@@ -89,7 +92,6 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 判断开售、停售时间
LocalDateTime
saleStartTime
=
skuVo
.
getSaleStartTime
();
LocalDateTime
saleStopTime
=
skuVo
.
getSaleStopTime
();
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
if
(
nowTime
.
isBefore
(
saleStartTime
))
{
return
ResponseDto
.
failure
(
"该商品还未开始售卖~"
);
}
else
if
(
null
!=
saleStopTime
&&
nowTime
.
isAfter
(
saleStopTime
))
{
...
...
@@ -132,19 +134,21 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
if
(
CollectionUtil
.
isEmpty
(
skuIdList
))
{
return
ResponseDto
.
failure
(
"该商品SPU不存在~"
);
}
else
{
GoblinGoodsSkuInfoVo
skuInfoVo
=
lotteryDraw
(
skuIdList
,
number
);
HashMap
<
String
,
Object
>
lotteryDrawMap
=
lotteryDraw
(
skuIdList
,
number
);
GoblinGoodsSkuInfoVo
skuInfoVo
=
(
GoblinGoodsSkuInfoVo
)
lotteryDrawMap
.
get
(
"goodsSkuInfoVo"
);
if
(
null
==
skuInfoVo
)
{
goblinRedisUtils
.
decrSkuCountByUid
(
uid
,
skuId
,
number
);
return
ResponseDto
.
failure
(
"盲盒库存不足啦~"
);
}
boxSkuId
=
skuInfoVo
.
getSkuId
();
stockSkuId
=
boxSkuId
;
listId
=
(
String
)
lotteryDrawMap
.
get
(
"listId"
);
}
}
else
{
// 普通藏品逻辑
// 判断库存
int
surplusGeneral
=
nftOrderUtils
.
decrSkuStock
(
skuId
,
number
);
int
surplusGeneral
=
goblinRedisUtils
.
decrSkuStock
(
listId
,
skuId
,
number
);
if
(
surplusGeneral
<
0
)
{
nftOrderUtils
.
backSkuCountAndStock
(
uid
,
stockSkuId
,
skuId
,
number
);
nftOrderUtils
.
backSkuCountAndStock
(
listId
,
uid
,
stockSkuId
,
skuId
,
number
);
return
ResponseDto
.
failure
(
"库存不足啦~"
);
}
}
...
...
@@ -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
());
if
(
null
==
nftOrder
)
{
nftOrderUtils
.
backSkuCountAndStock
(
uid
,
stockSkuId
,
skuId
,
number
);
nftOrderUtils
.
backSkuCountAndStock
(
listId
,
uid
,
stockSkuId
,
skuId
,
number
);
return
ResponseDto
.
failure
(
"下单失败~"
);
}
// 下单唤起支付
GoblinNftPayResultVo
nftPayResultVo
=
payOrder
(
nftOrder
,
uid
,
payParam
,
skuVo
.
getProductId
());
if
(
null
==
nftPayResultVo
)
{
nftOrderUtils
.
backSkuCountAndStock
(
uid
,
stockSkuId
,
skuId
,
number
);
nftOrderUtils
.
backSkuCountAndStock
(
listId
,
uid
,
stockSkuId
,
skuId
,
number
);
return
ResponseDto
.
failure
(
"下单失败啦~"
);
}
return
ResponseDto
.
success
(
nftPayResultVo
);
...
...
@@ -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
{
ArrayList
<
GoblinGoodsSkuInfoVo
>
skuInfoVos
=
ObjectUtil
.
cloneArrayGoblinGoodsSkuInfoListVo
();
ArrayList
<
String
>
listIds
=
ObjectUtil
.
cloneArrayListString
();
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"
))
{
continue
;
}
// 不能购买的 没库存的 概率是0的 过滤
if
(
nftOrderUtils
.
getSkuAllStatusShow
(
skuInfoVo
)
&&
nftOrderUtils
.
getSkuAllStatusStock
(
skuInfoVo
)
>
0
)
{
if
(
nftOrderUtils
.
getSkuAllStatusShow
(
skuInfoVo
)
&&
nftOrderUtils
.
getSkuAllStatusStock
(
listId
,
skuInfoVo
)
>
0
)
{
skuInfoVos
.
add
(
skuInfoVo
);
listIds
.
add
(
listId
);
}
}
if
(
CollectionUtil
.
isEmpty
(
skuInfoVos
))
{
...
...
@@ -246,6 +255,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
}
// 未设置概率的写入概率
ArrayList
<
GoblinGoodsSkuInfoVo
>
newSkuInfoVos
=
ObjectUtil
.
cloneArrayGoblinGoodsSkuInfoListVo
();
ArrayList
<
String
>
newListIds
=
ObjectUtil
.
cloneArrayListString
();
int
skuListSize
=
skuInfoVos
.
size
();
for
(
int
i
=
0
;
i
<
skuListSize
;
i
++)
{
GoblinGoodsSkuInfoVo
infoVo
=
skuInfoVos
.
get
(
i
);
...
...
@@ -266,6 +276,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
infoVo
.
setHitRatio
(
skuInfoVos
.
get
(
i
-
1
).
getHitRatio
().
add
(
infoVo
.
getHitRatio
()));
}
newSkuInfoVos
.
add
(
infoVo
);
newListIds
.
add
(
listIds
.
get
(
i
));
}
if
(
CollectionUtil
.
isEmpty
(
newSkuInfoVos
))
{
log
.
info
(
"该盲盒概率超过100导致不能卖 skuIdList:{}"
,
skuIdList
);
...
...
@@ -285,13 +296,17 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
int
index
=
hitRatioList
.
indexOf
(
nextDoubleNew
);
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
)
{
nftOrderUtils
.
incrSkuStock
(
goodsSkuInfoVo
.
getSkuId
(),
number
);
goblinRedisUtils
.
incrSkuStock
(
endListId
,
goodsSkuInfoVo
.
getSkuId
(),
number
);
return
lotteryDraw
(
skuIdList
,
number
);
}
else
{
return
goodsSkuInfoVo
;
HashMap
<
String
,
Object
>
map
=
CollectionUtil
.
mapStringObject
();
map
.
put
(
"goodsSkuInfoVo"
,
goodsSkuInfoVo
);
map
.
put
(
"listId"
,
endListId
);
return
map
;
}
}
}
catch
(
Exception
e
)
{
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/utils/GoblinNftOrderUtils.java
View file @
501ea9ec
...
...
@@ -57,11 +57,11 @@ public class GoblinNftOrderUtils {
}
// 回滚用户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
);
// 增加库存
incrSkuStock
(
stockSkuId
,
number
);
goblinRedisUtils
.
incrSkuStock
(
listId
,
stockSkuId
,
number
);
}
// 订单详情vo
...
...
@@ -353,7 +353,7 @@ public class GoblinNftOrderUtils {
* String unbox; 是否盲盒[0-否|1-是]
*/
// 获取盲盒下藏品的库存 各种状态下不能算库存的排除掉
public
int
getSkuAllStatusStock
(
GoblinGoodsSkuInfoVo
info
)
{
public
int
getSkuAllStatusStock
(
String
listId
,
GoblinGoodsSkuInfoVo
info
)
{
if
(
info
!=
null
&&
LocalDateTime
.
now
().
isAfter
(
info
.
getSaleStartTime
())
...
...
@@ -361,7 +361,7 @@ public class GoblinNftOrderUtils {
&&
(
null
==
info
.
getSkuCanbuy
()
||
info
.
getSkuCanbuy
().
equals
(
"1"
))
&&
(
null
==
info
.
getHitRatio
()
||
info
.
getHitRatio
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
)
{
// 可以返回库存
return
goblinRedisUtils
.
getSkuStock
(
info
.
getSkuId
());
return
goblinRedisUtils
.
getSkuStock
(
listId
,
info
.
getSkuId
());
}
else
{
// 不计入库存
return
0
;
}
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/utils/GoblinRedisUtils.java
View file @
501ea9ec
...
...
@@ -45,8 +45,12 @@ public class GoblinRedisUtils {
return
(
int
)
redisUtil
.
decr
(
rk
,
stock
);
}
public
int
getSkuStock
(
String
skuId
)
{
String
rk
=
GoblinRedisConst
.
REAL_STOCK_SKU
.
concat
(
skuId
);
public
int
getSkuStock
(
String
marketPre
,
String
skuId
)
{
String
rk
=
GoblinRedisConst
.
REAL_STOCK_SKU
;
if
(
marketPre
!=
null
&&
!
marketPre
.
equals
(
"null"
))
{
rk
=
rk
.
concat
(
marketPre
+
":"
);
}
rk
=
rk
.
concat
(
skuId
);
Object
obj
=
redisUtil
.
get
(
rk
);
if
(
obj
==
null
)
{
return
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment