Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-api-boot-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
lanbaoming
jiedao-api-boot-master
Commits
d6505e50
Commit
d6505e50
authored
Aug 13, 2024
by
zhangfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
客户端积分日志
parent
3759d55c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
103 additions
and
78 deletions
+103
-78
MemberUserScoreLogServiceImpl.java
...ember/service/scoreLog/MemberUserScoreLogServiceImpl.java
+103
-78
No files found.
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/scoreLog/MemberUserScoreLogServiceImpl.java
View file @
d6505e50
...
...
@@ -27,6 +27,7 @@ import org.springframework.validation.annotation.Validated;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
import
static
cn
.
iocoder
.
yudao
.
module
.
member
.
enums
.
ErrorCodeConstants
.
MEMBER_ID_IS_NULL
;
...
...
@@ -47,7 +48,7 @@ public class MemberUserScoreLogServiceImpl extends AbstractService<MemberUserSco
@Resource
private
ScoreRuleService
scoreRuleService
;
@Resource
RedeemRewardApi
redeemRewardApi
;
private
RedeemRewardApi
redeemRewardApi
;
@Override
...
...
@@ -90,102 +91,126 @@ public class MemberUserScoreLogServiceImpl extends AbstractService<MemberUserSco
public
List
<
AppMemberUserScoreLogRespVO
>
getUserScoreLogList
(
AppMemberUserIdQueryVO
query
)
{
List
<
MemberUserScoreLogDO
>
userScoreLogDOS
=
userScoreLogMapper
.
selectList
(
"member_id"
,
query
.
getId
());
if
(
userScoreLogDOS
==
null
||
userScoreLogDOS
.
isEmpty
())
{
return
Collections
.
EMPTY_LIST
;
return
Collections
.
emptyList
()
;
}
ArrayList
<
AppMemberUserScoreLogRespVO
>
appMemberUserScoreLogRespVOS
=
new
ArrayList
<>();
Map
<
Long
,
MemberUserScoreLogDO
>
scoreLogDOMap
=
userScoreLogDOS
.
stream
()
.
collect
(
Collectors
.
toMap
(
MemberUserScoreLogDO:
:
getId
,
log
->
log
));
List
<
AppMemberUserScoreLogRespVO
>
appMemberUserScoreLogRespVOS
=
new
ArrayList
<>();
for
(
MemberUserScoreLogDO
userScoreLogDO
:
userScoreLogDOS
)
{
if
(
userScoreLogDO
.
getSourceType
()
==
ScoreSourceTypeEnum
.
SYSTEM_EXPIRED
.
getValue
())
{
HashMap
hashMap
=
JsonUtils
.
parseObject
(
userScoreLogDO
.
getExtParam
(),
HashMap
.
class
);
Object
scoreLogIds
=
hashMap
.
get
(
"scoreLogIds"
);
List
<
Long
>
scoreLogIdList
=
JsonUtils
.
parseArray
(
scoreLogIds
.
toString
(),
Long
.
class
);
for
(
Long
scoreLogId
:
scoreLogIdList
)
{
for
(
MemberUserScoreLogDO
scoreLogDO
:
userScoreLogDOS
)
{
if
(
scoreLogDO
.
getId
().
equals
(
scoreLogId
)
&&
scoreLogDO
.
getRuleId
()
!=
null
)
{
Map
extParams
=
JsonUtils
.
parseObject
(
userScoreLogDO
.
getExtParam
(),
Map
.
class
);
List
<
Long
>
scoreLogIdList
=
JsonUtils
.
parseArray
(
extParams
.
get
(
"scoreLogIds"
).
toString
(),
Long
.
class
);
scoreLogIdList
.
stream
()
.
map
(
scoreLogDOMap:
:
get
)
.
filter
(
scoreLogDO
->
scoreLogDO
!=
null
&&
scoreLogDO
.
getRuleId
()
!=
null
)
.
forEach
(
scoreLogDO
->
{
ScoreRuleBackDetailVO
scoreRule
=
scoreRuleService
.
getScoreRule
(
scoreLogDO
.
getRuleId
());
if
(
scoreRule
!=
null
)
{
AppMemberUserScoreLogRespVO
appMemberUserScoreLogRespVO
=
new
AppMemberUserScoreLogRespVO
(
userScoreLogDO
.
getId
(),
userScoreLogDO
.
getScoreCount
()
,
"-"
,
scoreLogDO
.
getSourceType
()
,
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
scoreLogDO
.
getSourceType
().
toString
()).
getLabel
()
,
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
scoreLogDO
.
getSourceType
().
toString
()).
getLabelEn
()
,
userScoreLogDO
.
getCreateTime
()
,
scoreRule
.
getDescEn
()
,
scoreRule
.
getDescZh
()
,
userScoreLogDO
.
getScoreCount
()
,
true
);
appMemberUserScoreLogRespVOS
.
add
(
appMemberUserScoreLogRespVO
);
appMemberUserScoreLogRespVOS
.
add
(
createScoreLogRespVO
(
userScoreLogDO
,
scoreLogDO
,
scoreRule
));
}
}
}
}
continue
;
});
}
else
{
setScoreRuleLogDetail
(
userScoreLogDO
,
appMemberUserScoreLogRespVOS
);
}
setScoreRuleLogDetail
(
userScoreLogDO
,
appMemberUserScoreLogRespVOS
);
}
return
appMemberUserScoreLogRespVOS
;
}
private
void
setScoreRuleLogDetail
(
MemberUserScoreLogDO
userScoreLogDO
,
ArrayList
<
AppMemberUserScoreLogRespVO
>
appMemberUserScoreLogRespVOS
)
{
private
AppMemberUserScoreLogRespVO
createScoreLogRespVO
(
MemberUserScoreLogDO
userScoreLogDO
,
MemberUserScoreLogDO
scoreLogDO
,
ScoreRuleBackDetailVO
scoreRule
)
{
return
new
AppMemberUserScoreLogRespVO
(
userScoreLogDO
.
getId
(),
userScoreLogDO
.
getScoreCount
(),
"-"
,
scoreLogDO
.
getSourceType
(),
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
scoreLogDO
.
getSourceType
().
toString
()).
getLabel
(),
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
scoreLogDO
.
getSourceType
().
toString
()).
getLabelEn
(),
userScoreLogDO
.
getCreateTime
(),
scoreRule
.
getDescEn
(),
scoreRule
.
getDescZh
(),
null
,
true
);
}
private
void
setScoreRuleLogDetail
(
MemberUserScoreLogDO
userScoreLogDO
,
List
<
AppMemberUserScoreLogRespVO
>
appMemberUserScoreLogRespVOS
)
{
AppMemberUserScoreLogRespVO
appMemberUserScoreLogRespVO
=
new
AppMemberUserScoreLogRespVO
();
appMemberUserScoreLogRespVO
.
setId
(
userScoreLogDO
.
getId
());
appMemberUserScoreLogRespVO
.
setSourceType
(
userScoreLogDO
.
getSourceType
());
appMemberUserScoreLogRespVO
.
setScoreCount
(
userScoreLogDO
.
getScoreCount
());
appMemberUserScoreLogRespVO
.
setOperateType
(
userScoreLogDO
.
getOperateType
()
==
1
?
"+"
:
"-"
);
appMemberUserScoreLogRespVO
.
setCreateTime
(
userScoreLogDO
.
getCreateTime
());
// 增加积分日志
if
(
Objects
.
equals
(
userScoreLogDO
.
getOperateType
(),
ScoreOperateTypeEnum
.
ADD
.
getValue
()))
{
switch
(
userScoreLogDO
.
getSourceType
())
{
// 人工操作
case
1
:
appMemberUserScoreLogRespVO
.
setSourceTypeZh
(
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
"1"
).
getLabel
());
appMemberUserScoreLogRespVO
.
setSourceTypeEn
(
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
"1"
).
getLabelEn
());
appMemberUserScoreLogRespVO
.
setDescZh
(
"人工积分"
);
appMemberUserScoreLogRespVO
.
setDescEn
(
"Manually add points"
);
break
;
// 活动积分
case
5
:
case
6
:
case
7
:
case
8
:
ScoreSourceTypeEnum
scoreSourceTypeEnum
=
ScoreSourceTypeEnum
.
parseByValue
(
userScoreLogDO
.
getSourceType
());
appMemberUserScoreLogRespVO
.
setSourceTypeZh
(
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
String
.
valueOf
(
scoreSourceTypeEnum
.
getValue
())).
getLabel
());
appMemberUserScoreLogRespVO
.
setSourceTypeEn
(
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
String
.
valueOf
(
scoreSourceTypeEnum
.
getValue
())).
getLabelEn
());
ScoreRuleBackDetailVO
scoreRule
=
scoreRuleService
.
getScoreRule
(
userScoreLogDO
.
getRuleId
());
if
(
scoreRule
!=
null
)
{
appMemberUserScoreLogRespVO
.
setDescEn
(
scoreRule
.
getDescEn
());
appMemberUserScoreLogRespVO
.
setDescZh
(
scoreRule
.
getDescZh
());
}
break
;
}
// 获取通用的字典标签
String
sourceType
=
userScoreLogDO
.
getSourceType
().
toString
();
String
sourceTypeZh
=
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
sourceType
).
getLabel
();
String
sourceTypeEn
=
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
sourceType
).
getLabelEn
();
appMemberUserScoreLogRespVO
.
setSourceTypeZh
(
sourceTypeZh
);
appMemberUserScoreLogRespVO
.
setSourceTypeEn
(
sourceTypeEn
);
// 判断是增加还是减少积分操作
boolean
isAddOperation
=
Objects
.
equals
(
userScoreLogDO
.
getOperateType
(),
ScoreOperateTypeEnum
.
ADD
.
getValue
());
if
(
isAddOperation
)
{
handleAddScoreLogDetail
(
userScoreLogDO
,
appMemberUserScoreLogRespVO
);
}
else
{
// 减少积分日志
switch
(
userScoreLogDO
.
getSourceType
())
{
// 人工操作
case
1
:
appMemberUserScoreLogRespVO
.
setSourceTypeZh
(
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
"1"
).
getLabel
());
appMemberUserScoreLogRespVO
.
setSourceTypeEn
(
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
"1"
).
getLabelEn
());
appMemberUserScoreLogRespVO
.
setDescZh
(
"人工积分"
);
appMemberUserScoreLogRespVO
.
setDescEn
(
"Manually reduce points"
);
break
;
// 兑换
case
2
:
appMemberUserScoreLogRespVO
.
setSourceTypeZh
(
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
"2"
).
getLabel
());
appMemberUserScoreLogRespVO
.
setSourceTypeEn
(
DictFrameworkUtils
.
getDictDataFromCache
(
"member_score_source"
,
"2"
).
getLabelEn
());
// 查询兑换记录
Map
<
String
,
Long
>
extParam
=
JsonUtils
.
parseObject
(
userScoreLogDO
.
getExtParam
(),
HashMap
.
class
);
Long
redeemId
=
extParam
.
get
(
"redeemId"
);
if
(
redeemId
!=
null
)
{
RedeemDetailForUserDTO
redeemDetailForUser
=
redeemRewardApi
.
getRedeemDetailForUser
(
redeemId
);
if
(
redeemDetailForUser
!=
null
)
{
appMemberUserScoreLogRespVO
.
setRewardCount
(
redeemDetailForUser
.
getRewardCount
());
appMemberUserScoreLogRespVO
.
setDescZh
(
redeemDetailForUser
.
getRewardNameZh
());
appMemberUserScoreLogRespVO
.
setDescEn
(
redeemDetailForUser
.
getRewardNameEn
());
}
}
break
;
}
handleReduceScoreLogDetail
(
userScoreLogDO
,
appMemberUserScoreLogRespVO
);
}
appMemberUserScoreLogRespVOS
.
add
(
appMemberUserScoreLogRespVO
);
}
private
void
handleAddScoreLogDetail
(
MemberUserScoreLogDO
userScoreLogDO
,
AppMemberUserScoreLogRespVO
appMemberUserScoreLogRespVO
)
{
switch
(
userScoreLogDO
.
getSourceType
())
{
case
1
:
appMemberUserScoreLogRespVO
.
setDescZh
(
"人工积分"
);
appMemberUserScoreLogRespVO
.
setDescEn
(
"manually add points"
);
break
;
case
4
:
handleRedeemDetail
(
userScoreLogDO
,
appMemberUserScoreLogRespVO
);
break
;
case
5
:
case
6
:
case
7
:
case
8
:
ScoreRuleBackDetailVO
scoreRule
=
scoreRuleService
.
getScoreRule
(
userScoreLogDO
.
getRuleId
());
if
(
scoreRule
!=
null
)
{
appMemberUserScoreLogRespVO
.
setDescEn
(
scoreRule
.
getDescEn
());
appMemberUserScoreLogRespVO
.
setDescZh
(
scoreRule
.
getDescZh
());
}
break
;
}
}
private
void
handleReduceScoreLogDetail
(
MemberUserScoreLogDO
userScoreLogDO
,
AppMemberUserScoreLogRespVO
appMemberUserScoreLogRespVO
)
{
switch
(
userScoreLogDO
.
getSourceType
())
{
case
1
:
appMemberUserScoreLogRespVO
.
setDescZh
(
"人工积分"
);
appMemberUserScoreLogRespVO
.
setDescEn
(
"manually reduce points"
);
break
;
case
2
:
handleRedeemDetail
(
userScoreLogDO
,
appMemberUserScoreLogRespVO
);
break
;
}
}
private
void
handleRedeemDetail
(
MemberUserScoreLogDO
userScoreLogDO
,
AppMemberUserScoreLogRespVO
appMemberUserScoreLogRespVO
)
{
HashMap
extParam
=
JsonUtils
.
parseObject
(
userScoreLogDO
.
getExtParam
(),
HashMap
.
class
);
Long
redeemId
=
extParam
.
get
(
"redeemId"
)
!=
null
?
Long
.
valueOf
(
extParam
.
get
(
"redeemId"
).
toString
())
:
null
;
if
(
redeemId
!=
null
)
{
RedeemDetailForUserDTO
redeemDetailForUser
=
redeemRewardApi
.
getRedeemDetailForUser
(
redeemId
);
if
(
redeemDetailForUser
!=
null
)
{
appMemberUserScoreLogRespVO
.
setRewardCount
(
redeemDetailForUser
.
getRewardCount
());
appMemberUserScoreLogRespVO
.
setDescZh
(
redeemDetailForUser
.
getRewardNameZh
());
appMemberUserScoreLogRespVO
.
setDescEn
(
redeemDetailForUser
.
getRewardNameEn
());
}
}
}
}
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