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
b3ece12e
...
b3ece12e793334fc79c9a83e3fc22b9abc101f33
authored
2022-06-25 21:30:23 +0800
by
xianghan
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1.修改绑定、解绑实现
1 parent
091d65dd
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
51 additions
and
112 deletions
member-service-impl/src/main/java/com/topdraw/business/module/member/service/impl/MemberServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/UserOperationServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/module/member/service/impl/MemberServiceImpl.java
View file @
b3ece12
...
...
@@ -23,7 +23,6 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CachePut
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
...
...
@@ -63,7 +62,6 @@ public class MemberServiceImpl implements MemberService {
@Override
@Transactional
(
readOnly
=
true
)
// @Cacheable(cacheNames = RedisKeyConstants.cacheMemberById, key = "#id")
public
MemberDTO
findById
(
Long
id
)
{
Member
member
=
this
.
memberRepository
.
findById
(
id
).
orElseGet
(
Member:
:
new
);
return
this
.
memberMapper
.
toDto
(
member
);
...
...
@@ -140,7 +138,6 @@ public class MemberServiceImpl implements MemberService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
// @CachePut(cacheNames = RedisKeyConstants.cacheMemberByCode, key = "#resource.code")
public
Integer
doUpdateMemberCoupon
(
Member
resource
)
{
return
this
.
memberRepository
.
doUpdateMemberCoupon
(
resource
);
}
...
...
@@ -155,7 +152,6 @@ public class MemberServiceImpl implements MemberService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@CachePut
(
cacheNames
=
RedisKeyConstants
.
cacheMemberByCode
,
key
=
"#resource.code"
)
public
MemberDTO
doUpdateMemberVipAndVipExpireTime
(
Member
resource
)
{
log
.
info
(
"修改会员vip和vip过期时间 ==>> {}"
,
resource
);
try
{
...
...
@@ -178,30 +174,20 @@ public class MemberServiceImpl implements MemberService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@CachePut
(
cacheNames
=
RedisKeyConstants
.
cacheMemberByCode
,
key
=
"#resource.code"
)
public
MemberDTO
doUpdateMemberUserIptvIdAndBindIptvPlatformAndBindIptvTime
(
Member
resource
)
{
log
.
info
(
"修改会员绑定大屏信息 ==>> {}"
,
resource
);
try
{
// this.redisUtils.doLock(RedisKeyConstants.updateCacheMemberById + resource.getId());
Integer
count
=
this
.
memberRepository
.
updateMemberUserIptvIdAndBindIptvPlatformAndBindIptvTime
(
resource
);
if
(
Objects
.
nonNull
(
count
)
&&
count
>
0
)
{
log
.
info
(
"修改会员绑定关系的结果, count ==>> {}"
,
count
);
if
(
count
>
0
)
{
Member
member
=
this
.
memberRepository
.
findById
(
resource
.
getId
()).
orElseGet
(
Member:
:
new
);
log
.
info
(
"修改会员绑定关系成功,==>> {}"
,
member
);
return
this
.
memberMapper
.
toDto
(
member
);
}
}
catch
(
Exception
e
)
{
log
.
info
(
"修改会员绑定大屏信息,"
+
e
.
getMessage
());
}
finally
{
// this.redisUtils.doUnLock(RedisKeyConstants.updateCacheMemberById + resource.getId());
}
return
this
.
memberMapper
.
toDto
(
resource
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@CachePut
(
cacheNames
=
RedisKeyConstants
.
cacheMemberByCode
,
key
=
"#resource.code"
)
public
MemberDTO
doUpdateMemberAvatarUrlAndNicknameAndGender
(
Member
resource
)
{
log
.
info
(
"修改会员头像、昵称、性别 ==>> {}"
,
resource
);
try
{
...
...
@@ -248,7 +234,6 @@ public class MemberServiceImpl implements MemberService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@CachePut
(
cacheNames
=
RedisKeyConstants
.
cacheMemberByCode
,
key
=
"#resources.code"
)
public
MemberDTO
update
(
Member
resources
)
{
log
.
info
(
"修改会员信息 ==>> {}"
,
resources
);
try
{
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/UserOperationServiceImpl.java
View file @
b3ece12
...
...
@@ -720,16 +720,39 @@ public class UserOperationServiceImpl implements UserOperationService {
log
.
info
(
"会员信息置空大屏的结果,memberDTO ==>> {}"
,
memberDTO
);
memberDTO
.
setPlatformAccount
(
platformAccount
);
// 置空主账号
userTvDTO
=
this
.
resetMainAccount
(
memberDTO
,
userTvDTO
,
bindMemberCode
);
userTvDTO
.
setMemberCode
(
memberCode
);
log
.
info
(
"大屏
账号置空主会员的结果,userTvDTO
==>> {}"
,
userTvDTO
);
((
UserOperationServiceImpl
)
AopContext
.
currentProxy
()).
asyncUnbind
(
new
MemberAndUserTvDTO
(
memberDTO
,
userTvDTO
));
log
.
info
(
"大屏
解绑,重置大屏账号的主会员,查看当前会员是否是主账号 ==>>memberCode ==>> {} || 大屏账号 ==>> userTvDTO
==>> {}"
,
userTvDTO
);
if
(
StringUtils
.
isBlank
(
bindMemberCode
))
{
UserTv
userTv
=
new
UserTv
();
userTv
.
setId
(
userTvDTO
.
getId
());
userTv
.
setPriorityMemberCode
(
null
);
this
.
userTvService
.
doUpdatePriorityMemberCode
(
userTv
);
UserTvDTO
_userTvDTO
=
new
UserTvDTO
();
_userTvDTO
.
setPlatformAccount
(
platformAccount
);
_userTvDTO
.
setPriorityMemberCode
(
null
);
log
.
info
(
"大屏账号置空主会员的结果,userTvDTO ==>> {}"
,
_userTvDTO
);
((
UserOperationServiceImpl
)
AopContext
.
currentProxy
()).
asyncUnbind
(
new
MemberAndUserTvDTO
(
memberDTO
,
_userTvDTO
));
this
.
updateUserTvSimplePriorityMemberCodeRedis
(
platformAccount
,
""
);
}
else
{
UserTv
userTv
=
new
UserTv
();
userTv
.
setId
(
userTvDTO
.
getId
());
userTv
.
setPriorityMemberCode
(
bindMemberCode
);
// 绑定新的主账号
this
.
userTvService
.
doUpdatePriorityMemberCode
(
userTv
);
UserTvDTO
_userTvDTO
=
new
UserTvDTO
();
_userTvDTO
.
setPlatformAccount
(
platformAccount
);
_userTvDTO
.
setPriorityMemberCode
(
bindMemberCode
);
log
.
info
(
"大屏账号置空主会员的结果,userTvDTO ==>> {}"
,
userTvDTO
);
((
UserOperationServiceImpl
)
AopContext
.
currentProxy
()).
asyncUnbind
(
new
MemberAndUserTvDTO
(
memberDTO
,
_userTvDTO
));
this
.
updateUserTvSimplePriorityMemberCodeRedis
(
platformAccount
,
bindMemberCode
);
}
return
true
;
}
...
...
@@ -1111,79 +1134,6 @@ public class UserOperationServiceImpl implements UserOperationService {
return
this
.
memberService
.
findById
(
memberId
);
}
/**
* 重置主账号
* @param memberDTO 会员code
* @param userTvDTO 大屏id
* @param bindMemberCode true:自动设置主账号 false: 手动设置
*/
private
UserTvDTO
resetMainAccount
(
MemberDTO
memberDTO
,
UserTvDTO
userTvDTO
,
String
bindMemberCode
)
{
log
.
info
(
"大屏解绑,重置大屏账号的主会员,查看当前会员是否是主账号 ==>>memberCode ==>> {} || 大屏账号 ==>> userTvDTO ==>> {}"
,
userTvDTO
);
if
(
StringUtils
.
isBlank
(
bindMemberCode
))
{
// 有其他绑定的小程序会员,排除自己
/*List<MemberDTO> memberDTOList = this.memberService.findByUserIptvId(id);
log.info("后台指定一个默认主会员,通过大屏id查询到的绑定的小屏会员memberDTOList ==>> {}", memberDTOList);
if (!CollectionUtils.isEmpty(memberDTOList)) {
Long memberId = userTvDTO.getMemberId();
MemberDTO memberDTO1 = this.memberService.findById(memberId);
List<MemberDTO> collect =
memberDTOList.stream().filter(memberDTO ->
!memberDTO.getCode().equalsIgnoreCase(memberCode) &&
!memberDTO.getCode().equalsIgnoreCase(memberDTO1.getCode())).collect(Collectors.toList());
log.info("过滤掉当前需要解绑的会员以及绑定的大屏会员之后剩余的会员列表 ==>> {}", memberDTOList);
if (!CollectionUtils.isEmpty(collect)) {
// 按绑定时间倒排
collect.sort(new Comparator<MemberDTO>() {
@Override
public int compare(MemberDTO memberDTO, MemberDTO t1) {
return t1.getBindIptvTime().compareTo(memberDTO.getBindIptvTime());
}
});
// 绑定新的主账号
UserTvDTO _userTvDTO = this.bondPriorityMember(userTvDTO, memberDTOList.get(0).getCode(), "manual");
log.info("绑定新的主账号 ==>> _userTvDTO ==>> {}", _userTvDTO);
return _userTvDTO;
}
} else {
log.info("无其他绑定的小屏会员信息 ");
// 绑定新的主账号
UserTvDTO _userTvDTO = this.bondPriorityMember(userTvDTO, null, "manual");
log.info("绑定新的主账号 ==>> _userTvDTO ==>> {}", _userTvDTO);
return _userTvDTO;
}*/
// 绑定新的主账号
// UserTvDTO _userTvDTO = this.bondPriorityMember(userTvDTO, null, "manual");
UserTv
userTv
=
new
UserTv
();
userTv
.
setId
(
userTvDTO
.
getId
());
userTv
.
setPlatform
(
userTvDTO
.
getPlatformAccount
());
userTv
.
setPriorityMemberCode
(
null
);
UserTvDTO
_userTvDTO
=
this
.
userTvService
.
doUpdatePriorityMemberCode
(
userTv
);
log
.
info
(
"绑定新的主账号 ==>> _userTvDTO ==>> {}"
,
_userTvDTO
);
return
_userTvDTO
;
}
else
{
UserTv
userTv
=
new
UserTv
();
userTv
.
setId
(
userTvDTO
.
getId
());
userTv
.
setPlatform
(
userTvDTO
.
getPlatformAccount
());
userTv
.
setPriorityMemberCode
(
bindMemberCode
);
// 绑定新的主账号
return
this
.
userTvService
.
doUpdatePriorityMemberCode
(
userTv
);
}
}
/**
*
...
...
@@ -1339,11 +1289,6 @@ public class UserOperationServiceImpl implements UserOperationService {
return
false
;
}
return
this
.
tvUnbindAndSetNewPriorityMemberCode
(
memberDTO
,
userTvDTO
);
}
private
boolean
tvUnbindAndSetNewPriorityMemberCode
(
MemberDTO
memberDTO
,
UserTvDTO
userTvDTO
)
{
// 解绑(置空大屏信息)
Member
member
=
new
Member
();
member
.
setId
(
memberDTO
.
getId
());
...
...
@@ -1352,9 +1297,8 @@ public class UserOperationServiceImpl implements UserOperationService {
member
.
setUserIptvId
(
null
);
member
.
setBindIptvPlatformType
(
null
);
log
.
info
(
"置空会员绑定的大屏信息, member ==>> {}"
,
member
);
memberDTO
=
this
.
memberService
.
doUpdateMemberUserIptvIdAndBindIptvPlatformAndBindIptvTime
(
member
);
this
.
memberService
.
doUpdateMemberUserIptvIdAndBindIptvPlatformAndBindIptvTime
(
member
);
log
.
info
(
"会员信息置空大屏的结果,memberDTO ==>> {}"
,
memberDTO
);
memberDTO
.
setPlatformAccount
(
userTvDTO
.
getPlatformAccount
());
// 有其他绑定的小程序会员,排除自己
List
<
MemberDTO
>
memberDTOS
=
this
.
memberService
.
findByUserIptvId
(
userTvDTO
.
getId
());
...
...
@@ -1380,8 +1324,15 @@ public class UserOperationServiceImpl implements UserOperationService {
userTv
.
setId
(
userTvDTO
.
getId
());
userTv
.
setPlatform
(
userTvDTO
.
getPlatformAccount
());
userTv
.
setPriorityMemberCode
(
collect
.
get
(
0
).
getCode
());
userTvDTO
=
this
.
userTvService
.
doUpdatePriorityMemberCode
(
userTv
);
log
.
info
(
"大屏账号绑定新的主账号 ==>> userTvDTO ==>> {}"
,
userTvDTO
);
this
.
userTvService
.
doUpdatePriorityMemberCode
(
userTv
);
UserTvDTO
_userTvDTO
=
new
UserTvDTO
();
_userTvDTO
.
setPlatformAccount
(
userTvDTO
.
getPlatformAccount
());
_userTvDTO
.
setPriorityMemberCode
(
userTv
.
getPriorityMemberCode
());
log
.
info
(
"同步绑定信息至大屏侧, 参数 ==>> {}"
,
new
MemberAndUserTvDTO
(
memberDTO
,
_userTvDTO
));
((
UserOperationServiceImpl
)
AopContext
.
currentProxy
()).
asyncUnbind
(
new
MemberAndUserTvDTO
(
memberDTO
,
_userTvDTO
));
this
.
updateUserTvSimplePriorityMemberCodeRedis
(
userTvDTO
.
getPlatformAccount
(),
userTv
.
getPriorityMemberCode
());
}
}
else
{
...
...
@@ -1389,19 +1340,22 @@ public class UserOperationServiceImpl implements UserOperationService {
// 绑定新的主账号
UserTv
userTv
=
new
UserTv
();
userTv
.
setId
(
userTvDTO
.
getId
());
userTv
.
setPlatform
(
userTvDTO
.
getPlatformAccount
());
userTv
.
setPriorityMemberCode
(
null
);
userTvDTO
=
this
.
userTvService
.
doUpdatePriorityMemberCode
(
userTv
);
log
.
info
(
"大屏账号置空主会员的结果,userTvDTO ==>> {}"
,
userTvDTO
);
}
log
.
info
(
"同步绑定信息至大屏侧, 参数 ==>> {}"
,
new
MemberAndUserTvDTO
(
memberDTO
,
userTvDTO
));
((
UserOperationServiceImpl
)
AopContext
.
currentProxy
()).
asyncUnbind
(
new
MemberAndUserTvDTO
(
memberDTO
,
userTvDTO
));
this
.
userTvService
.
doUpdatePriorityMemberCode
(
userTv
);
UserTvDTO
_userTvDTO
=
new
UserTvDTO
();
_userTvDTO
.
setPlatformAccount
(
userTvDTO
.
getPlatformAccount
());
_userTvDTO
.
setPriorityMemberCode
(
null
);
log
.
info
(
"同步绑定信息至大屏侧, 参数 ==>> {}"
,
new
MemberAndUserTvDTO
(
memberDTO
,
_userTvDTO
));
((
UserOperationServiceImpl
)
AopContext
.
currentProxy
()).
asyncUnbind
(
new
MemberAndUserTvDTO
(
memberDTO
,
_userTvDTO
));
this
.
updateUserTvSimplePriorityMemberCodeRedis
(
userTvDTO
.
getPlatformAccount
(),
""
);
}
return
true
;
}
@Override
public
UserWeixinDTO
findById
(
Long
userId
)
{
return
this
.
userWeixinService
.
findById
(
userId
);
...
...
Please
register
or
sign in
to post a comment