Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gxpt_ht
Overview
Overview
Details
Activity
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
pseer
gxpt_ht
Commits
3b58b84a
Commit
3b58b84a
authored
Oct 30, 2024
by
吕明尚
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改会员等级滚动降级定时任务
parent
0d730371
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
8 deletions
+18
-8
RedisTask.java
share-quartz/src/main/java/share/quartz/task/RedisTask.java
+18
-8
No files found.
share-quartz/src/main/java/share/quartz/task/RedisTask.java
View file @
3b58b84a
...
...
@@ -35,6 +35,7 @@ import java.math.BigDecimal;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.IntStream
;
...
...
@@ -594,22 +595,19 @@ public class RedisTask {
List
<
Long
>
consumerIds
=
list
.
stream
().
map
(
MemberProgressLog:
:
getConsumerId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
Long
,
ConsumerMember
>
consumerMemberMap
=
consumerMemberService
.
list
(
new
LambdaQueryWrapper
<
ConsumerMember
>().
in
(
ConsumerMember:
:
getConsumerId
,
consumerIds
))
.
stream
().
collect
(
Collectors
.
toMap
(
ConsumerMember:
:
getConsumerId
,
item
->
item
));
//按照consumerId进行分组
Map
<
Long
,
List
<
MemberProgressLog
>>
collect
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
MemberProgressLog:
:
getConsumerId
));
Map
<
Long
,
MemberConfig
>
memberConfigMap
=
memberConfigService
.
list
().
stream
().
collect
(
Collectors
.
toMap
(
MemberConfig:
:
getMembershipLevel
,
item
->
item
));
List
<
ConsumerMember
>
updateList
=
new
ArrayList
<>();
consumerIds
.
stream
().
forEach
(
item
->
{
List
<
MemberProgressLog
>
memberProgressLogs
=
collect
.
get
(
item
);
if
(
memberProgressLogs
.
size
()
>
0
)
{
//查询会员
ConsumerMember
consumerMember
=
consumerMemberMap
.
get
(
item
);
;
if
(
consumerMember
.
getMembershipProgress
().
equals
(
BigDecimal
.
ZERO
))
{
//结束此次循环
return
;
}
//查询会员配置
MemberConfig
memberConfig
=
memberConfigMap
.
get
(
consumerMember
.
getMembershipLevel
());
final
BigDecimal
[]
sum
=
{
BigDecimal
.
ZERO
};
//计算扣除进度
memberProgressLogs
.
stream
().
forEach
(
log
->
{
...
...
@@ -633,11 +631,23 @@ public class RedisTask {
}
else
if
(
sum
[
0
].
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
subtract
=
consumerMember
.
getMembershipProgress
().
subtract
(
sum
[
0
]);
}
consumerMember
.
setMembershipProgress
(
subtract
);
if
(
consumerMember
.
getMembershipProgress
().
compareTo
(
BigDecimal
.
valueOf
(
memberConfig
.
getLimitRequirements
()))
<
0
)
{
//
consumerMember.setMembershipProgress(subtract);
//
if (consumerMember.getMembershipProgress().compareTo(BigDecimal.valueOf(memberConfig.getLimitRequirements())) < 0) {
//等级降一级
if
(
consumerMember
.
getMembershipLevel
()
>
0L
)
{
consumerMember
.
setMembershipLevel
(
consumerMember
.
getMembershipLevel
()
-
1
);
// if (consumerMember.getMembershipLevel() > 0L) {
// consumerMember.setMembershipLevel(consumerMember.getMembershipLevel() - 1);
// }
//转Map limitRequirements,MemberConfig
Map
<
Long
,
MemberConfig
>
configMap
=
memberConfigService
.
list
(
new
LambdaQueryWrapper
<
MemberConfig
>()
.
orderByDesc
(
MemberConfig:
:
getMembershipLevel
)).
stream
().
collect
(
Collectors
.
toMap
(
MemberConfig:
:
getMembershipLevel
,
Function
.
identity
()));
//判断subtract小于当前等级的积分,并大于下一等级的积分
for
(
Map
.
Entry
<
Long
,
MemberConfig
>
entry
:
configMap
.
entrySet
())
{
if
(
subtract
.
compareTo
(
BigDecimal
.
valueOf
(
entry
.
getValue
().
getLimitRequirements
()))
<
0
&&
subtract
.
compareTo
(
BigDecimal
.
valueOf
(
configMap
.
get
(
entry
.
getKey
()
-
1
).
getLimitRequirements
()))
>=
0
&&
entry
.
getKey
().
compareTo
(
Collections
.
min
(
configMap
.
keySet
()))
>
0
)
{
consumerMember
.
setMembershipLevel
(
entry
.
getKey
());
consumerMember
.
setMembershipProgress
(
subtract
);
return
;
}
}
}
...
...
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