记得上下班打卡 | 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
003654d1
Commit
003654d1
authored
May 25, 2022
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
盲盒分批购listId用的盲盒的不是真正中奖藏品的
parent
f538909b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
19 deletions
+21
-19
GoblinNftOrderServiceImpl.java
...service/order/service/impl/GoblinNftOrderServiceImpl.java
+21
-19
No files found.
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/GoblinNftOrderServiceImpl.java
View file @
003654d1
...
...
@@ -82,7 +82,6 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
HashMap
<
String
,
Object
>
map
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
nowTime
,
skuId
);
GoblinGoodsSkuInfoVo
skuVo
=
(
GoblinGoodsSkuInfoVo
)
map
.
get
(
"vo"
);
Object
tagType
=
map
.
get
(
"tagType"
);
String
listId
=
(
String
)
map
.
get
(
"listId"
);
Integer
whiteType
=
(
Integer
)
map
.
get
(
"whiteType"
);
...
...
@@ -159,15 +158,16 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
if
(
CollectionUtil
.
isEmpty
(
skuIdList
))
{
return
ResponseDto
.
failure
(
"该商品SPU不存在~"
);
}
else
{
HashMap
<
String
,
Object
>
lotteryDrawMap
=
lotteryDraw
(
skuIdList
,
number
,
nowTime
);
if
(
null
==
lotteryDrawMap
)
{
// HashMap<String, Object> lotteryDrawMap = lotteryDraw(skuIdList, number, nowTime);
GoblinGoodsSkuInfoVo
skuInfoVo
=
lotteryDraw
(
skuIdList
,
number
,
nowTime
,
listId
);
if
(
null
==
skuInfoVo
)
{
goblinRedisUtils
.
decrSkuCountByUid
(
uid
,
skuId
,
number
);
return
ResponseDto
.
failure
(
"盲盒库存不足啦~"
);
}
GoblinGoodsSkuInfoVo
skuInfoVo
=
(
GoblinGoodsSkuInfoVo
)
lotteryDrawMap
.
get
(
"goodsSkuInfoVo"
);
//
GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) lotteryDrawMap.get("goodsSkuInfoVo");
boxSkuId
=
skuInfoVo
.
getSkuId
();
stockSkuId
=
boxSkuId
;
listId
=
(
String
)
lotteryDrawMap
.
get
(
"listId"
);
//
listId = (String) lotteryDrawMap.get("listId");
}
}
else
{
// 普通藏品逻辑
// 判断库存
...
...
@@ -238,14 +238,15 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
}
}
private
HashMap
<
String
,
Object
>
lotteryDraw
(
List
<
String
>
skuIdList
,
int
number
,
LocalDateTime
nowTime
)
{
private
GoblinGoodsSkuInfoVo
lotteryDraw
(
List
<
String
>
skuIdList
,
int
number
,
LocalDateTime
nowTime
,
String
listId
)
{
// private HashMap<String, Object> lotteryDraw(List<String> skuIdList, int number, LocalDateTime nowTime) {
try
{
ArrayList
<
GoblinGoodsSkuInfoVo
>
skuInfoVos
=
ObjectUtil
.
cloneArrayGoblinGoodsSkuInfoListVo
();
ArrayList
<
String
>
listIds
=
ObjectUtil
.
cloneArrayListString
();
//
ArrayList<String> listIds = ObjectUtil.cloneArrayListString();
for
(
String
kid
:
skuIdList
)
{
HashMap
<
String
,
Object
>
map
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
nowTime
,
kid
);
GoblinGoodsSkuInfoVo
skuInfoVo
=
(
GoblinGoodsSkuInfoVo
)
map
.
get
(
"vo"
);
String
listId
=
(
String
)
map
.
get
(
"listId"
);
//
String listId = (String) map.get("listId");
// 是盲盒的扔掉
if
(
skuInfoVo
.
getUnbox
().
equals
(
"1"
))
{
continue
;
...
...
@@ -253,7 +254,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 不能购买的 没库存的 概率是0的 过滤
if
(
nftOrderUtils
.
getSkuAllStatusShow
(
skuInfoVo
)
&&
nftOrderUtils
.
getSkuAllStatusStock
(
listId
,
skuInfoVo
)
>
0
)
{
skuInfoVos
.
add
(
skuInfoVo
);
listIds
.
add
(
listId
);
//
listIds.add(listId);
}
}
if
(
CollectionUtil
.
isEmpty
(
skuInfoVos
))
{
...
...
@@ -281,7 +282,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 未设置概率的写入概率
ArrayList
<
GoblinGoodsSkuInfoVo
>
newSkuInfoVos
=
ObjectUtil
.
cloneArrayGoblinGoodsSkuInfoListVo
();
ArrayList
<
String
>
newListIds
=
ObjectUtil
.
cloneArrayListString
();
//
ArrayList<String> newListIds = ObjectUtil.cloneArrayListString();
int
skuListSize
=
skuInfoVos
.
size
();
for
(
int
i
=
0
;
i
<
skuListSize
;
i
++)
{
GoblinGoodsSkuInfoVo
infoVo
=
skuInfoVos
.
get
(
i
);
...
...
@@ -302,7 +303,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
infoVo
.
setHitRatio
(
skuInfoVos
.
get
(
i
-
1
).
getHitRatio
().
add
(
infoVo
.
getHitRatio
()));
}
newSkuInfoVos
.
add
(
infoVo
);
newListIds
.
add
(
listIds
.
get
(
i
));
//
newListIds.add(listIds.get(i));
}
...
...
@@ -324,17 +325,18 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
int
index
=
hitRatioList
.
indexOf
(
nextDoubleNew
);
GoblinGoodsSkuInfoVo
goodsSkuInfoVo
=
newSkuInfoVos
.
get
(
index
);
String
endListId
=
newListIds
.
get
(
index
);
//
String endListId = newListIds.get(index);
// 判断库存
int
surplusGeneral
=
goblinRedisUtils
.
decrSkuStock
(
endL
istId
,
goodsSkuInfoVo
.
getSkuId
(),
number
);
int
surplusGeneral
=
goblinRedisUtils
.
decrSkuStock
(
l
istId
,
goodsSkuInfoVo
.
getSkuId
(),
number
);
if
(
surplusGeneral
<
0
)
{
goblinRedisUtils
.
incrSkuStock
(
endL
istId
,
goodsSkuInfoVo
.
getSkuId
(),
number
);
return
lotteryDraw
(
skuIdList
,
number
,
nowTime
);
goblinRedisUtils
.
incrSkuStock
(
l
istId
,
goodsSkuInfoVo
.
getSkuId
(),
number
);
return
lotteryDraw
(
skuIdList
,
number
,
nowTime
,
listId
);
}
else
{
HashMap
<
String
,
Object
>
map
=
CollectionUtil
.
mapStringObject
();
map
.
put
(
"goodsSkuInfoVo"
,
goodsSkuInfoVo
);
map
.
put
(
"listId"
,
endListId
);
return
map
;
// HashMap<String, Object> map = CollectionUtil.mapStringObject();
// map.put("goodsSkuInfoVo", goodsSkuInfoVo);
// map.put("listId", endListId);
// return map;
return
goodsSkuInfoVo
;
}
}
}
catch
(
Exception
e
)
{
...
...
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