记得上下班打卡 | 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
73369bc4
Commit
73369bc4
authored
Jul 01, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
盲盒下单 判断逻辑完成
parent
d246f201
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
192 additions
and
46 deletions
+192
-46
GoblinMixServiceImpl.java
...vice/goblin/service/impl/manage/GoblinMixServiceImpl.java
+4
-4
GoblinMongoUtils.java
...a/com/liquidnet/service/goblin/util/GoblinMongoUtils.java
+1
-1
MixOrderServiceImpl.java
...idnet/service/order/service/impl/MixOrderServiceImpl.java
+42
-7
GoblinNftOrderUtils.java
...om/liquidnet/service/order/utils/GoblinNftOrderUtils.java
+145
-34
No files found.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/manage/GoblinMixServiceImpl.java
View file @
73369bc4
...
...
@@ -266,7 +266,7 @@ public class GoblinMixServiceImpl implements IGoblinMixService {
if
(
isHit
&&
hitRatioCount
.
doubleValue
()
<
100.00
&&
map
.
size
()
>
0
)
{
nftBoxUtils
.
arrangeHitRatioMap
(
map
,
hitRatioCount
);
}
Map
<
String
,
Integer
>
skuMap
=
nftBoxUtils
.
getSkuHitRatio
(
stock
,
map
);
Map
<
String
,
Integer
>
skuMap
=
nftBoxUtils
.
getSkuHitRatio
(
stock
*
item
.
getCount
()
,
map
);
for
(
String
key
:
skuMap
.
keySet
())
{
Integer
stockNum
=
skuMap
.
get
(
key
);
//库存
...
...
@@ -283,12 +283,12 @@ public class GoblinMixServiceImpl implements IGoblinMixService {
}
}
else
{
//库存
int
skuStock
=
redisUtils
.
decrSkuStock
(
null
,
skuId
,
stock
);
int
skuStock
=
redisUtils
.
decrSkuStock
(
null
,
skuId
,
stock
*
item
.
getCount
()
);
if
(
skuStock
<
0
)
{
redisUtils
.
incrSkuStock
(
null
,
skuId
,
stock
);
redisUtils
.
incrSkuStock
(
null
,
skuId
,
stock
*
item
.
getCount
()
);
errorNameList
.
add
(
item
.
getSkuName
());
}
else
{
redisUtils
.
setSkuStock
(
mixId
,
skuId
,
stock
);
redisUtils
.
setSkuStock
(
mixId
,
skuId
,
stock
*
item
.
getCount
()
);
sucSkuId
.
add
(
skuId
);
}
}
//普通商品
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinMongoUtils.java
View file @
73369bc4
...
...
@@ -1756,7 +1756,7 @@ public class GoblinMongoUtils {
public
HashMap
<
String
,
Object
>
getGoblinMixListVo
(
String
name
,
String
uid
,
Integer
pageNum
)
{
int
pageSize
=
20
;
Criteria
criteria
=
Criteria
.
where
(
"u
i
d"
).
is
(
uid
);
Criteria
criteria
=
Criteria
.
where
(
"u
serI
d"
).
is
(
uid
);
if
(
name
!=
null
&&
!
name
.
equals
(
""
))
{
criteria
=
criteria
.
and
(
"name"
).
regex
(
"^.*"
+
name
+
".*$"
);
}
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/MixOrderServiceImpl.java
View file @
73369bc4
package
com
.
liquidnet
.
service
.
order
.
service
.
impl
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.constant.NftAccStatusEnum
;
import
com.liquidnet.service.goblin.dto.GoblinUserNftAccInfoVo
;
import
com.liquidnet.service.goblin.dto.manage.MixOrderParam
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinMixDetailsItemVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinMixDetailsVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinPayInnerResultVo
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.param.SyncOrderParam
;
import
com.liquidnet.service.goblin.service.IMixOrderService
;
import
com.liquidnet.service.order.utils.*
;
...
...
@@ -49,6 +47,9 @@ public class MixOrderServiceImpl implements IMixOrderService {
GoblinMixDetailsVo
mixVo
=
redisUtils
.
getMixDetails
(
param
.
getMixId
());
String
mixId
=
mixVo
.
getMixId
();
String
mobile
=
StringUtils
.
defaultString
(((
String
)
CurrentUtil
.
getTokenClaims
().
get
(
CurrentUtil
.
TOKEN_MOBILE
)),
""
);
List
<
String
>
canBuyIds
=
CollectionUtil
.
linkedListString
();
//有库存的id
String
boxSkuId
=
""
;
//盲盒种的skuid
String
stockSkuId
=
""
;
// 盲盒id
//判断 活动状态
LocalDateTime
st
=
LocalDateTime
.
parse
(
mixVo
.
getTimeStart
(),
DTF_YMD_HMS
);
LocalDateTime
et
=
LocalDateTime
.
parse
(
mixVo
.
getTimeEnd
(),
DTF_YMD_HMS
);
...
...
@@ -72,7 +73,42 @@ public class MixOrderServiceImpl implements IMixOrderService {
List
<
GoblinGoodsSkuInfoVo
>
skuInfoList
=
ObjectUtil
.
cloneArrayGoblinGoodsSkuInfoListVo
();
List
<
GoblinGoodsSkuInfoVo
>
nftInfoList
=
ObjectUtil
.
cloneArrayGoblinGoodsSkuInfoListVo
();
for
(
GoblinMixDetailsItemVo
itemVo
:
mixVo
.
getItem
())
{
GoblinGoodsSkuInfoVo
skuInfoVo
=
redisUtils
.
getGoodsSkuInfoVo
(
itemVo
.
getSkuId
());
String
skuId
=
itemVo
.
getSkuId
();
GoblinGoodsSkuInfoVo
skuInfoVo
=
redisUtils
.
getGoodsSkuInfoVo
(
skuId
);
//库存处理
if
(
skuInfoVo
.
getUnbox
().
equals
(
"1"
))
{
//盲盒
GoblinGoodsInfoVo
spuInfoVo
=
redisUtils
.
getGoodsInfoVo
(
skuInfoVo
.
getSpuId
());
List
<
String
>
skuIdList
=
spuInfoVo
.
getSkuIdList
();
if
(
CollectionUtil
.
isEmpty
(
skuIdList
))
{
return
ResponseDto
.
failure
(
"该商品SPU不存在~"
);
}
else
{
GoblinGoodsSkuInfoVo
boxSkuInfo
=
nftOrderUtils
.
lotteryDraw
(
skuIdList
,
itemVo
.
getCount
(),
nt
,
null
);
if
(
null
==
boxSkuInfo
)
{
return
ResponseDto
.
failure
(
"盲盒库存不足啦~"
);
}
else
{
canBuyIds
.
add
(
boxSkuInfo
.
getSkuId
()
+
","
+
itemVo
.
getCount
());
}
boxSkuId
=
skuInfoVo
.
getSkuId
();
stockSkuId
=
boxSkuId
;
}
}
else
{
//正常
if
(
skuInfoVo
.
getSkuType
()
==
1
)
{
stockSkuId
=
skuId
;
}
int
stock
=
redisUtils
.
decrSkuStock
(
mixId
,
skuId
,
itemVo
.
getCount
());
if
(
stock
<
0
)
{
redisUtils
.
incrSkuStock
(
mixId
,
skuId
,
itemVo
.
getCount
());
for
(
String
canBuyId
:
canBuyIds
)
{
String
[]
data
=
canBuyId
.
split
(
","
);
String
skuIdSingle
=
data
[
0
];
int
count
=
Integer
.
parseInt
(
data
[
1
]);
redisUtils
.
incrSkuStock
(
mixId
,
skuIdSingle
,
count
);
}
return
ResponseDto
.
failure
(
"库存不足"
);
}
else
{
canBuyIds
.
add
(
skuId
+
","
+
itemVo
.
getCount
());
}
}
if
(
skuInfoVo
.
getSkuType
()
==
0
)
{
skuInfoList
.
add
(
skuInfoVo
);
}
else
if
(
skuInfoVo
.
getSkuType
()
==
1
)
{
...
...
@@ -85,11 +121,10 @@ public class MixOrderServiceImpl implements IMixOrderService {
if
(
nftInfoList
.
size
()
>
0
)
{
GoblinUserNftAccInfoVo
openAccountInfo
=
redisUtils
.
getOpenAccountInfo
(
uid
);
if
(
null
==
openAccountInfo
||
!
NftAccStatusEnum
.
StatusAcc
.
SUCCESS
.
getCode
().
equals
(
openAccountInfo
.
getCode
()))
{
return
ResponseDto
.
failure
(
"您还未开通数字账户
~
"
);
return
ResponseDto
.
failure
(
"您还未开通数字账户"
);
}
}
//库存处理
return
null
;
}
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/utils/GoblinNftOrderUtils.java
View file @
73369bc4
This diff is collapsed.
Click to expand it.
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