记得上下班打卡 | 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
bfefa70a
Commit
bfefa70a
authored
Nov 18, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Lock
parent
a97f895e
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
117 additions
and
120 deletions
+117
-120
SweetIntegralActivityDrawServiceImpl.java
...et/service/impl/SweetIntegralActivityDrawServiceImpl.java
+117
-120
No files found.
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetIntegralActivityDrawServiceImpl.java
View file @
bfefa70a
...
@@ -67,25 +67,14 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -67,25 +67,14 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
@Override
@Override
public
ResponseDto
<
SweetIntegralActivityPrizeVo
>
create
(
String
integralActivityId
)
{
public
ResponseDto
<
SweetIntegralActivityPrizeVo
>
create
(
String
integralActivityId
)
{
// TODO: 2021/10/26 看情况是否加锁 一个用户整个逻辑单进程
Map
tokenClaims
=
CurrentUtil
.
getTokenClaims
();
boolean
isLock
=
redisDataUtils
.
setIntegralDrawLock
(
"1111"
);
String
userId
=
StringUtils
.
defaultString
((
String
.
valueOf
(
tokenClaims
.
get
(
"sub"
))),
""
);
// 加锁
boolean
isLock
=
redisDataUtils
.
setIntegralDrawLock
(
userId
);
if
(!
isLock
)
{
if
(!
isLock
)
{
return
ResponseDto
.
failure
(
"
太快了
"
);
return
ResponseDto
.
failure
(
"
您的手速太快啦~
"
);
}
else
{
}
else
{
try
{
try
{
System
.
out
.
println
(
"获取锁成功,开始执行逻辑"
);
Thread
.
sleep
(
2000
);
return
ResponseDto
.
success
();
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"程序执行异常{}"
);
return
ResponseDto
.
failure
(
"异常了"
);
}
finally
{
redisDataUtils
.
delIntegralDrawLock
(
"1111"
);
System
.
out
.
println
(
"执行完毕。释放锁完成;"
);
}
}
/*Map tokenClaims = CurrentUtil.getTokenClaims();
String userId = StringUtils.defaultString((String.valueOf(tokenClaims.get("sub"))), "");
String
nickname
=
StringUtils
.
defaultString
((
String
.
valueOf
(
tokenClaims
.
get
(
"nickname"
))),
""
);
String
nickname
=
StringUtils
.
defaultString
((
String
.
valueOf
(
tokenClaims
.
get
(
"nickname"
))),
""
);
IntegralActivityVo
integralActivity
=
redisDataUtils
.
getIntegralActivityInfo
(
integralActivityId
);
IntegralActivityVo
integralActivity
=
redisDataUtils
.
getIntegralActivityInfo
(
integralActivityId
);
...
@@ -137,7 +126,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -137,7 +126,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
SweetIntegralActivityPrizeVo
sweetIntegralActivityPrizeVo
=
SweetIntegralActivityPrizeVo
.
getNew
().
copy
(
sweetIntegralActivityPrize
);
SweetIntegralActivityPrizeVo
sweetIntegralActivityPrizeVo
=
SweetIntegralActivityPrizeVo
.
getNew
().
copy
(
sweetIntegralActivityPrize
);
// 减库存 顺便判断库存是否够 todo 这块可能不能这么判断 后台增加库存的时候如果是-1会丢库存 实际-1这个并没有发出
// 减库存 顺便判断库存是否够 -1的时候回滚回去
long
activityPrizeNum
=
redisDataUtils
.
decrIntegralActivityPrizeNum
(
integralActivityId
,
sweetIntegralActivityPrizeVo
.
getPrizeId
(),
1
);
long
activityPrizeNum
=
redisDataUtils
.
decrIntegralActivityPrizeNum
(
integralActivityId
,
sweetIntegralActivityPrizeVo
.
getPrizeId
(),
1
);
long
activityPrizeWinnersNum
=
redisDataUtils
.
decrIntegralActivityPrizeWinnersNum
(
integralActivityId
,
sweetIntegralActivityPrizeVo
.
getPrizeId
(),
1
);
long
activityPrizeWinnersNum
=
redisDataUtils
.
decrIntegralActivityPrizeWinnersNum
(
integralActivityId
,
sweetIntegralActivityPrizeVo
.
getPrizeId
(),
1
);
if
(
activityPrizeNum
<
0
)
{
// 库存不够了
if
(
activityPrizeNum
<
0
)
{
// 库存不够了
...
@@ -196,7 +185,15 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -196,7 +185,15 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_INTEGRAL_ACTIVITY_DRAW
.
getKey
(),
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_INTEGRAL_ACTIVITY_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
return ResponseDto.success(sweetIntegralActivityPrizeVo);*/
return
ResponseDto
.
success
(
sweetIntegralActivityPrizeVo
);
}
catch
(
Exception
e
)
{
log
.
error
(
"积分抽奖异常 e:{}"
,
e
);
return
ResponseDto
.
failure
(
"操作失败,请稍后重试!"
);
}
finally
{
// 执行完毕。释放锁
redisDataUtils
.
delIntegralDrawLock
(
userId
);
}
}
}
}
@Override
@Override
...
...
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