Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张云鹏
/
uc-engine
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
2cf78f54
...
2cf78f54f653d5ac16380083dac5500b94da5866
authored
2021-11-17 18:26:31 +0800
by
xianghan@topdraw.cn
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
修复清理积分接口
1 parent
a1507fc5
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
55 additions
and
11 deletions
member-service-impl/src/main/java/com/topdraw/business/basicdata/points/available/repository/PointsAvailableRepository.java
member-service-impl/src/main/java/com/topdraw/business/basicdata/points/available/service/PointsAvailableService.java
member-service-impl/src/main/java/com/topdraw/business/basicdata/points/available/service/impl/PointsAvailableServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/PointsOperationServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/TaskOperationServiceImpl.java
member-service-impl/src/test/java/com/topdraw/test/business/process/rest/PointsOperationControllerTest.java
member-service-impl/src/test/java/com/topdraw/test/business/process/rest/TaskOperationControllerTest.java
member-service-impl/src/main/java/com/topdraw/business/basicdata/points/available/repository/PointsAvailableRepository.java
View file @
2cf78f5
...
...
@@ -91,4 +91,6 @@ public interface PointsAvailableRepository extends JpaRepository<PointsAvailable
@Query
(
value
=
"SELECT sum(upa.points) AS pointsExpire from uc_points_available upa where upa.member_id = ?1"
,
nativeQuery
=
true
)
long
findTotalCountByMemberId
(
Long
memberId
);
List
<
PointsAvailable
>
findByMemberIdAndExpireTimeAfter
(
Long
memberId
,
Date
timestamp
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/basicdata/points/available/service/PointsAvailableService.java
View file @
2cf78f5
...
...
@@ -80,6 +80,8 @@ public interface PointsAvailableService {
*/
List
<
PointsAvailableDTO
>
findByMemberIdAndExpireTimeBefore
(
Long
memberId
,
Date
timestamp
);
List
<
PointsAvailableDTO
>
findByMemberIdAndExpireTimeAfter
(
Long
memberId
,
Date
timestamp
);
/**
* 即将过期的积分
* @param memberId 会员id
...
...
member-service-impl/src/main/java/com/topdraw/business/basicdata/points/available/service/impl/PointsAvailableServiceImpl.java
View file @
2cf78f5
...
...
@@ -127,6 +127,13 @@ public class PointsAvailableServiceImpl implements PointsAvailableService {
}
@Override
public
List
<
PointsAvailableDTO
>
findByMemberIdAndExpireTimeAfter
(
Long
memberId
,
Date
timestamp
)
{
return
Objects
.
nonNull
(
memberId
)?
PointsAvailableMapper
.
toDto
(
PointsAvailableRepository
.
findByMemberIdAndExpireTimeAfter
(
memberId
,
timestamp
))
:
null
;
}
@Override
public
Long
findSoonExpireTime
(
Long
memberId
,
Integer
factor
)
{
return
PointsAvailableRepository
.
findSoonExpireTime
(
memberId
,
factor
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/PointsOperationServiceImpl.java
View file @
2cf78f5
...
...
@@ -102,8 +102,10 @@ public class PointsOperationServiceImpl implements PointsOperationService {
this
.
doInsertTrPointsDetailByAvailablePointsMap
(
tempPoints
,
customAvailablePointsMap
,
currentPoints
);
// 4.更新可用积分表,超过的删除,剩余的新增
long
totalPoints
=
this
.
doFreshTrPointsAvailableByAvailablePointsMap
(
customAvailablePointsMap
,
currentPoints
);
// 5.即将过期的积分
long
soonExpirePoints
=
this
.
getSoonExpirePoints
(
memberId
,
tempPoints
);
// 6.更新会员积分信息
this
.
freshMemberCurrentPoints
(
memberId
,
totalPoints
);
this
.
freshMemberCurrentPoints
(
memberId
,
totalPoints
,
soonExpirePoints
);
return
true
;
}
...
...
@@ -281,7 +283,7 @@ public class PointsOperationServiceImpl implements PointsOperationService {
*/
private
void
cleanInvalidAvailablePointsByMemberId
(
Long
memberId
)
{
List
<
PointsAvailableDTO
>
pointsAvailableDTOS
=
pointsAvailableService
.
findByMemberIdAndExpireTime
Before
(
memberId
,
TimestampUtil
.
now
());
pointsAvailableService
.
findByMemberIdAndExpireTime
After
(
memberId
,
TimestampUtil
.
now
());
if
(!
CollectionUtils
.
isEmpty
(
pointsAvailableDTOS
))
{
//1.获取原始积分
for
(
PointsAvailableDTO
pointsAvailableDTO
:
pointsAvailableDTOS
)
{
...
...
@@ -301,8 +303,10 @@ public class PointsOperationServiceImpl implements PointsOperationService {
this
.
cleanInvalidAvailablePointsByMemberId
(
memberId
);
// 获取当前用户的可用总积分
long
currentPoints
=
this
.
findAvailablePointsByMemberId
(
memberId
);
// 即将过期的积分
long
soonExpirePoints
=
this
.
getSoonExpirePoints
(
memberId
,
null
);
// 更新会员信息
this
.
doUpdateMemberPoints
(
memberId
,
currentPoints
);
this
.
doUpdateMemberPoints
(
memberId
,
currentPoints
,
soonExpirePoints
);
return
currentPoints
;
}
...
...
@@ -321,10 +325,11 @@ public class PointsOperationServiceImpl implements PointsOperationService {
* @param memberId
* @param currentPoints
*/
private
void
doUpdateMemberPoints
(
Long
memberId
,
long
currentPoints
)
{
private
void
doUpdateMemberPoints
(
Long
memberId
,
long
currentPoints
,
long
soonExpirePoints
)
{
Member
member
=
new
Member
();
member
.
setId
(
memberId
);
member
.
setPoints
(
currentPoints
);
member
.
setDuePoints
(
soonExpirePoints
);
this
.
memberOperationService
.
doUpdateMemberPoints
(
member
);
}
...
...
@@ -403,9 +408,12 @@ public class PointsOperationServiceImpl implements PointsOperationService {
this
.
doInsertTrPointsAvailable
(
tempPoints
);
log
.
info
(
"----------->> refresh doInsertTrPointsAvailable end "
);
// 即将过期的积分
long
soonExpirePoints
=
this
.
getSoonExpirePoints
(
memberId
,
tempPoints
);
// 6.更新会员的总积分
log
.
info
(
"----------->> refresh freshMemberCurrentPoints start "
);
this
.
freshMemberCurrentPoints
(
memberId
,
totalPoints
);
this
.
freshMemberCurrentPoints
(
memberId
,
totalPoints
,
soonExpirePoints
);
log
.
info
(
"----------->> refresh freshMemberCurrentPoints end "
);
}
catch
(
Exception
e
)
{
...
...
@@ -461,11 +469,11 @@ public class PointsOperationServiceImpl implements PointsOperationService {
* @param memberId 会员Id
* @param currentPoints 当前总积分
*/
private
void
freshMemberCurrentPoints
(
Long
memberId
,
Long
currentPoints
)
{
private
void
freshMemberCurrentPoints
(
Long
memberId
,
Long
currentPoints
,
long
duePoints
)
{
Member
member
=
new
Member
();
member
.
setId
(
memberId
);
member
.
setPoints
(
Objects
.
nonNull
(
currentPoints
)?
currentPoints:
0
);
//
member.setDuePoints(duePoints);
member
.
setDuePoints
(
duePoints
);
member
.
setUpdateTime
(
Timestamp
.
valueOf
(
LocalDateTime
.
now
()));
try
{
this
.
memberOperationService
.
doUpdateMemberPoints
(
member
);
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/TaskOperationServiceImpl.java
View file @
2cf78f5
...
...
@@ -554,13 +554,16 @@ public class TaskOperationServiceImpl implements TaskOperationService {
if
(!
CollectionUtils
.
isEmpty
(
taskList
))
{
// 会员信息
MemberDTO
memberDTO
=
this
.
memberService
.
findById
(
memberId
);
// 判断是否完成任务
CompareTaskCondition
compareTaskCondition
=(
MemberDTO
memberDTO1
,
List
<
Task
>
taskList1
)
->
{
List
<
Task
>
taskStream
=
taskList1
.
stream
().
filter
(
task1
->
task1
.
getStatus
()
==
1
&&
(
Objects
.
isNull
(
task1
.
getExpireTime
())
||
task1
.
getExpireTime
().
compareTo
(
TimestampUtil
.
now
())
>=
0
)
&&
(
Objects
.
isNull
(
task1
.
getGroups
())
||
task1
.
getGroups
().
equalsIgnoreCase
(
memberDTO1
.
getGroups
()))
&&
(
Objects
.
isNull
(
task1
.
getGroups
())
||
task1
.
getGroups
().
equals
(
"0"
)
||
task1
.
getGroups
().
equals
IgnoreCase
(
memberDTO1
.
getGroups
()))
&&
(
Objects
.
isNull
(
task1
.
getValidTime
())
||
task1
.
getValidTime
().
compareTo
(
TimestampUtil
.
now
())
<=
0
)
&&
(
Objects
.
isNull
(
task1
.
getMemberLevel
())
||
task1
.
getMemberLevel
()
<=
memberDTO1
.
getLevel
())
&&
(
Objects
.
isNull
(
task1
.
getMemberVip
())
||
task1
.
getMemberVip
()
<=
memberDTO1
.
getVip
())
...
...
member-service-impl/src/test/java/com/topdraw/test/business/process/rest/PointsOperationControllerTest.java
View file @
2cf78f5
...
...
@@ -53,9 +53,9 @@ public class PointsOperationControllerTest extends BaseTest {
@Test
public
void
grantPointsByManual
(){
TempPoints
tempPoints
=
new
TempPoints
();
tempPoints
.
setMemberId
(
5L
);
tempPoints
.
setPoints
(
10L
);
tempPoints
.
setPointsType
(
0
);
tempPoints
.
setMemberId
(
3L
);
tempPoints
.
setRightsSendStrategy
(
0
);
tempPoints
.
setAccountId
(
2L
);
tempPoints
.
setExpireTime
(
Timestamp
.
valueOf
(
"2021-11-27 09:00:00"
));
...
...
@@ -72,6 +72,28 @@ public class PointsOperationControllerTest extends BaseTest {
LOG
.
info
(
"===>>>"
+
byId
);
}
@Test
public
void
cleanInvalidPointsAndCalculateCurrentPoints
(){
/*TempPoints tempPoints = new TempPoints();
tempPoints.setMemberId(5L);
tempPoints.setPoints(10L);
tempPoints.setPointsType(0);
tempPoints.setRightsSendStrategy(0);
tempPoints.setAccountId(2L);
tempPoints.setExpireTime(Timestamp.valueOf("2021-11-27 09:00:00"));
tempPoints.setDeviceType(2);
tempPoints.setAppCode("WEI_XIN_GOLD_PANDA");
tempPoints.setOrderId(null);
tempPoints.setMediaId(null);
tempPoints.setActivityId(null);
tempPoints.setItemId(null);
tempPoints.setDescription("系统发放");
tempPoints.setEvtType(1);
String s = JSON.toJSONString(tempPoints);*/
ResultInfo
byId
=
this
.
pointsOperationController
.
cleanInvalidPointsAndCalculateCurrentPoints
(
5L
);
LOG
.
info
(
"===>>>"
+
byId
);
}
/*@Test
public void update(){
MemberAddress memberAddress = new MemberAddress();
...
...
member-service-impl/src/test/java/com/topdraw/test/business/process/rest/TaskOperationControllerTest.java
View file @
2cf78f5
...
...
@@ -29,9 +29,9 @@ public class TaskOperationControllerTest extends BaseTest {
DataSyncMsg
dataSyncMsg
=
new
DataSyncMsg
();
dataSyncMsg
.
setEventType
(
EventType
.
VIEWING
.
name
());
DataSyncMsg
.
MsgData
msgData
=
new
DataSyncMsg
.
MsgData
();
msgData
.
setEvent
(
6
);
msgData
.
setEvent
(
3
);
// 类型 1-登录 2-观影 3-参加活动 4-订购 5-优享会员 6-签到
msgData
.
setRemarks
(
"remark"
);
msgData
.
setMemberId
(
3
L
);
msgData
.
setMemberId
(
5
L
);
msgData
.
setDeviceType
(
2
);
msgData
.
setAppCode
(
"WEI_XIN_GOLD_PANDA"
);
dataSyncMsg
.
setMsg
(
msgData
);
...
...
Please
register
or
sign in
to post a comment