Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
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
youjj
cloud-platform
Commits
170a5101
Commit
170a5101
authored
Dec 09, 2019
by
jiaorz
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
47e7cec2
833cefa5
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
105 additions
and
99 deletions
+105
-99
ActivityAttendanceRecordBiz.java
...fc/platform/activity/biz/ActivityAttendanceRecordBiz.java
+5
-5
ActivityPopularizeBiz.java
...com/xxfc/platform/activity/biz/ActivityPopularizeBiz.java
+88
-87
ActivityPrizeBiz.java
...java/com/xxfc/platform/activity/biz/ActivityPrizeBiz.java
+12
-7
No files found.
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityAttendanceRecordBiz.java
View file @
170a5101
...
@@ -75,8 +75,8 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
...
@@ -75,8 +75,8 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
activityAttendanceRecord
.
setPositionName
(
appUserDTO
.
getPositionName
());
activityAttendanceRecord
.
setPositionName
(
appUserDTO
.
getPositionName
());
activityAttendanceRecord
.
setCrtTime
(
new
Date
());
activityAttendanceRecord
.
setCrtTime
(
new
Date
());
mapper
.
insertSelective
(
activityAttendanceRecord
);
mapper
.
insertSelective
(
activityAttendanceRecord
);
String
onlineKey
=
String
.
format
(
"%
d:%d:%d"
,
appUserDTO
.
getUserid
(),
activityId
,
PrizeTypeEnum
.
ONLINE
.
getCode
());
String
onlineKey
=
String
.
format
(
"%
s%d:%d:%d"
,
ActivityPrizeBiz
.
USER_LOTTERY_PRE_KEY
,
appUserDTO
.
getUserid
(),
activityId
,
PrizeTypeEnum
.
ONLINE
.
getCode
());
String
localeKey
=
String
.
format
(
"%
d:%d:%d"
,
appUserDTO
.
getUserid
(),
activityId
,
PrizeTypeEnum
.
LOCALE
.
getCode
());
String
localeKey
=
String
.
format
(
"%
s%d:%d:%d"
,
ActivityPrizeBiz
.
USER_LOTTERY_PRE_KEY
,
appUserDTO
.
getUserid
(),
activityId
,
PrizeTypeEnum
.
LOCALE
.
getCode
());
redisTemplate
.
delete
(
Arrays
.
asList
(
onlineKey
,
localeKey
));
redisTemplate
.
delete
(
Arrays
.
asList
(
onlineKey
,
localeKey
));
valueOperations
.
set
(
onlineKey
,
1L
,
expirDays
,
TimeUnit
.
DAYS
);
valueOperations
.
set
(
onlineKey
,
1L
,
expirDays
,
TimeUnit
.
DAYS
);
valueOperations
.
set
(
localeKey
,
1L
,
expirDays
,
TimeUnit
.
DAYS
);
valueOperations
.
set
(
localeKey
,
1L
,
expirDays
,
TimeUnit
.
DAYS
);
...
@@ -123,7 +123,7 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
...
@@ -123,7 +123,7 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
}
}
public
Boolean
hasNumberOfLuckyDrawByType
(
Integer
activityId
,
Integer
prizeType
,
Integer
userid
)
{
public
Boolean
hasNumberOfLuckyDrawByType
(
Integer
activityId
,
Integer
prizeType
,
Integer
userid
)
{
Object
lotteryNum
=
valueOperations
.
get
(
String
.
format
(
"%
d:%d:%d"
,
userid
,
activityId
,
prizeType
));
Object
lotteryNum
=
valueOperations
.
get
(
String
.
format
(
"%
s%d:%d:%d"
,
ActivityPrizeBiz
.
USER_LOTTERY_PRE_KEY
,
userid
,
activityId
,
prizeType
));
if
(
lotteryNum
!=
null
){
if
(
lotteryNum
!=
null
){
return
Integer
.
valueOf
(
lotteryNum
.
toString
())
>
0
;
return
Integer
.
valueOf
(
lotteryNum
.
toString
())
>
0
;
}
}
...
@@ -135,11 +135,11 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
...
@@ -135,11 +135,11 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
return
false
;
return
false
;
}
}
if
(
prizeType
==
PrizeTypeEnum
.
ONLINE
.
getCode
()){
if
(
prizeType
==
PrizeTypeEnum
.
ONLINE
.
getCode
()){
valueOperations
.
set
(
String
.
format
(
"%
d:%d:%d"
,
userid
,
activityId
,
prizeType
),
activityAttendanceRecord
.
getOnlineLotteryNum
(),
expirDays
,
TimeUnit
.
DAYS
);
valueOperations
.
set
(
String
.
format
(
"%
s%d:%d:%d"
,
ActivityPrizeBiz
.
USER_LOTTERY_PRE_KEY
,
userid
,
activityId
,
prizeType
),
activityAttendanceRecord
.
getOnlineLotteryNum
(),
expirDays
,
TimeUnit
.
DAYS
);
return
activityAttendanceRecord
.
getOnlineLotteryNum
()>
0
;
return
activityAttendanceRecord
.
getOnlineLotteryNum
()>
0
;
}
}
if
(
prizeType
==
PrizeTypeEnum
.
LOCALE
.
getCode
()){
if
(
prizeType
==
PrizeTypeEnum
.
LOCALE
.
getCode
()){
valueOperations
.
set
(
String
.
format
(
"%
d:%d:%d"
,
userid
,
activityId
,
prizeType
),
activityAttendanceRecord
.
getLocaleLotteryNum
(),
expirDays
,
TimeUnit
.
DAYS
);
valueOperations
.
set
(
String
.
format
(
"%
s%d:%d:%d"
,
ActivityPrizeBiz
.
USER_LOTTERY_PRE_KEY
,
userid
,
activityId
,
prizeType
),
activityAttendanceRecord
.
getLocaleLotteryNum
(),
expirDays
,
TimeUnit
.
DAYS
);
return
activityAttendanceRecord
.
getLocaleLotteryNum
()>
0
;
return
activityAttendanceRecord
.
getLocaleLotteryNum
()>
0
;
}
}
return
false
;
return
false
;
...
...
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityPopularizeBiz.java
View file @
170a5101
This diff is collapsed.
Click to expand it.
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityPrizeBiz.java
View file @
170a5101
...
@@ -59,6 +59,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
...
@@ -59,6 +59,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
@Value
(
"${lottery.expire.days:60}"
)
@Value
(
"${lottery.expire.days:60}"
)
private
int
expirDays
;
private
int
expirDays
;
private
static
final
String
LOTTERY_PRE_KEY
=
"lottery:"
;
private
static
final
String
LOTTERY_PRE_KEY
=
"lottery:"
;
public
static
final
String
USER_LOTTERY_PRE_KEY
=
"user:lottery:"
;
/**
/**
* 查询奖品
* 查询奖品
...
@@ -151,7 +152,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
...
@@ -151,7 +152,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
activityPrize
.
setSerialNumber
(
8
);
activityPrize
.
setSerialNumber
(
8
);
return
activityPrize
;
return
activityPrize
;
});
});
String
lotteryNumKey
=
String
.
format
(
"%
d:%d:%d"
,
appUserDTO
.
getUserid
(),
activityId
,
prizeType
);
String
lotteryNumKey
=
String
.
format
(
"%
s%d:%d:%d"
,
USER_LOTTERY_PRE_KEY
,
appUserDTO
.
getUserid
(),
activityId
,
prizeType
);
Object
lotteryNum
=
valueOperations
.
get
(
lotteryNumKey
);
Object
lotteryNum
=
valueOperations
.
get
(
lotteryNumKey
);
boolean
hasLotteryNum
=
lotteryNum
==
null
?
activityAttendanceRecordBiz
.
hasNumberOfLuckyDrawByType
(
activityId
,
prizeType
,
appUserDTO
.
getUserid
())
:
((
Integer
)
lotteryNum
)
>
0
;
boolean
hasLotteryNum
=
lotteryNum
==
null
?
activityAttendanceRecordBiz
.
hasNumberOfLuckyDrawByType
(
activityId
,
prizeType
,
appUserDTO
.
getUserid
())
:
((
Integer
)
lotteryNum
)
>
0
;
if
(
hasLotteryNum
)
{
if
(
hasLotteryNum
)
{
...
@@ -187,15 +188,19 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
...
@@ -187,15 +188,19 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
activityWinningRecord
.
setPrizeType
(
prizeType
);
activityWinningRecord
.
setPrizeType
(
prizeType
);
activityWinningRecord
.
setUserId
(
appUserDTO
.
getUserid
());
activityWinningRecord
.
setUserId
(
appUserDTO
.
getUserid
());
activityWinningRecord
.
setHasWinning
(
0
);
activityWinningRecord
.
setHasWinning
(
0
);
boolean
hasStock
=
activityPrize
.
getPrizeGoodsType
()
!=
PrizeGoodsTypeEnum
.
NO_PRIZE
.
getCode
()
&&
activityPrize
.
getTotalStock
()
!=
0
&&
prizeStock
!=
null
&&
(
Integer
)
prizeStock
!=
0
;
boolean
hasStock
=
activityPrize
.
getPrizeGoodsType
()
!=
PrizeGoodsTypeEnum
.
NO_PRIZE
.
getCode
()
&&
activityPrize
.
getTotalStock
()
!=
null
&&
activityPrize
.
getTotalStock
()!=
0
&&
prizeStock
!=
null
&&
(
Integer
)
prizeStock
!=
0
;
if
(
hasStock
)
{
if
(
hasStock
)
{
String
k
ey
=
String
.
format
(
"%s%d:%d:%d"
,
LOTTERY_PRE_KEY
,
activityId
,
prizeType
,
activityPrize
.
getSerialNumber
());
String
lockK
ey
=
String
.
format
(
"%s%d:%d:%d"
,
LOTTERY_PRE_KEY
,
activityId
,
prizeType
,
activityPrize
.
getSerialNumber
());
RLock
rLock
=
redissonLock
.
getRLock
(
k
ey
);
RLock
rLock
=
redissonLock
.
getRLock
(
lockK
ey
);
try
{
try
{
boolean
isSuccess
=
rLock
.
tryLock
(
1
,
2
,
TimeUnit
.
SECONDS
);
boolean
isSuccess
=
rLock
.
tryLock
(
1
,
2
,
TimeUnit
.
SECONDS
);
if
(
isSuccess
)
{
if
(
isSuccess
)
{
prizeStock
=
valueOperations
.
get
(
prizeStockKey
);
prizeStock
=
valueOperations
.
get
(
prizeStockKey
);
log
.
info
(
"tryLock success, key = [{}]"
,
k
ey
);
log
.
info
(
"tryLock success, key = [{}]"
,
lockK
ey
);
try
{
try
{
if
(
prizeStock
!=
null
&&
(
Integer
)
prizeStock
>
0
)
{
if
(
prizeStock
!=
null
&&
(
Integer
)
prizeStock
>
0
)
{
//更新库存
//更新库存
...
@@ -214,11 +219,11 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
...
@@ -214,11 +219,11 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
rLock
.
unlock
();
rLock
.
unlock
();
}
finally
{
}
finally
{
rLock
.
unlock
();
rLock
.
unlock
();
log
.
info
(
"releaseLock success, key = [{}]"
,
k
ey
);
log
.
info
(
"releaseLock success, key = [{}]"
,
lockK
ey
);
}
}
}
else
{
}
else
{
// 获取锁失败
// 获取锁失败
log
.
info
(
"tryLock fail, key = [{}]"
,
k
ey
);
log
.
info
(
"tryLock fail, key = [{}]"
,
lockK
ey
);
}
}
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
...
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