1.接口优化,删除不必要的接口
Showing
22 changed files
with
177 additions
and
326 deletions
... | @@ -20,13 +20,6 @@ | ... | @@ -20,13 +20,6 @@ |
20 | 20 | ||
21 | <dependencies> | 21 | <dependencies> |
22 | 22 | ||
23 | <!--redisson--> | ||
24 | <dependency> | ||
25 | <groupId>org.redisson</groupId> | ||
26 | <artifactId>redisson</artifactId> | ||
27 | <version>3.16.3</version> | ||
28 | </dependency> | ||
29 | |||
30 | <!--api--> | 23 | <!--api--> |
31 | <dependency> | 24 | <dependency> |
32 | <groupId>com.topdraw</groupId> | 25 | <groupId>com.topdraw</groupId> | ... | ... |
... | @@ -2,13 +2,12 @@ package com.topdraw.business.module.exp.detail.service.impl; | ... | @@ -2,13 +2,12 @@ package com.topdraw.business.module.exp.detail.service.impl; |
2 | 2 | ||
3 | import com.topdraw.business.module.exp.detail.domain.ExpDetail; | 3 | import com.topdraw.business.module.exp.detail.domain.ExpDetail; |
4 | import com.topdraw.business.module.exp.detail.domain.ExpDetailBuilder; | 4 | import com.topdraw.business.module.exp.detail.domain.ExpDetailBuilder; |
5 | import com.topdraw.utils.RedisUtils; | ||
5 | import com.topdraw.utils.ValidationUtil; | 6 | import com.topdraw.utils.ValidationUtil; |
6 | import com.topdraw.business.module.exp.detail.repository.ExpDetailRepository; | 7 | import com.topdraw.business.module.exp.detail.repository.ExpDetailRepository; |
7 | import com.topdraw.business.module.exp.detail.service.ExpDetailService; | 8 | import com.topdraw.business.module.exp.detail.service.ExpDetailService; |
8 | import com.topdraw.business.module.exp.detail.service.dto.ExpDetailDTO; | 9 | import com.topdraw.business.module.exp.detail.service.dto.ExpDetailDTO; |
9 | import com.topdraw.business.module.exp.detail.service.mapper.ExpDetailMapper; | 10 | import com.topdraw.business.module.exp.detail.service.mapper.ExpDetailMapper; |
10 | import org.redisson.api.RLock; | ||
11 | import org.redisson.api.RedissonClient; | ||
12 | import org.springframework.beans.factory.annotation.Autowired; | 11 | import org.springframework.beans.factory.annotation.Autowired; |
13 | import org.springframework.stereotype.Service; | 12 | import org.springframework.stereotype.Service; |
14 | import org.springframework.transaction.annotation.Propagation; | 13 | import org.springframework.transaction.annotation.Propagation; |
... | @@ -32,7 +31,7 @@ public class ExpDetailServiceImpl implements ExpDetailService { | ... | @@ -32,7 +31,7 @@ public class ExpDetailServiceImpl implements ExpDetailService { |
32 | private ExpDetailMapper expDetailMapper; | 31 | private ExpDetailMapper expDetailMapper; |
33 | 32 | ||
34 | @Autowired | 33 | @Autowired |
35 | private RedissonClient redissonClient; | 34 | private RedisUtils redisUtils; |
36 | 35 | ||
37 | @Override | 36 | @Override |
38 | public ExpDetailDTO findById(Long id) { | 37 | public ExpDetailDTO findById(Long id) { |
... | @@ -51,7 +50,7 @@ public class ExpDetailServiceImpl implements ExpDetailService { | ... | @@ -51,7 +50,7 @@ public class ExpDetailServiceImpl implements ExpDetailService { |
51 | @Override | 50 | @Override |
52 | @Transactional(rollbackFor = Exception.class) | 51 | @Transactional(rollbackFor = Exception.class) |
53 | public void update(ExpDetail resources) { | 52 | public void update(ExpDetail resources) { |
54 | RLock rLock = this.redissonClient.getLock(resources.getId().toString()); | 53 | this.redisUtils.doLock("expDetail::memberId::" + resources.getMemberId()); |
55 | try { | 54 | try { |
56 | ExpDetail ExpDetail = this.expDetailRepository.findById(resources.getId()).orElseGet(ExpDetail::new); | 55 | ExpDetail ExpDetail = this.expDetailRepository.findById(resources.getId()).orElseGet(ExpDetail::new); |
57 | ValidationUtil.isNull( ExpDetail.getId(),"ExpDetail","id",resources.getId()); | 56 | ValidationUtil.isNull( ExpDetail.getId(),"ExpDetail","id",resources.getId()); |
... | @@ -61,7 +60,7 @@ public class ExpDetailServiceImpl implements ExpDetailService { | ... | @@ -61,7 +60,7 @@ public class ExpDetailServiceImpl implements ExpDetailService { |
61 | e.printStackTrace(); | 60 | e.printStackTrace(); |
62 | throw e; | 61 | throw e; |
63 | } finally { | 62 | } finally { |
64 | rLock.unlock(); | 63 | this.redisUtils.doUnLock("expDetail::memberId::" + resources.getMemberId()); |
65 | } | 64 | } |
66 | } | 65 | } |
67 | 66 | ... | ... |
... | @@ -4,15 +4,13 @@ import com.topdraw.business.module.member.address.domain.MemberAddress; | ... | @@ -4,15 +4,13 @@ import com.topdraw.business.module.member.address.domain.MemberAddress; |
4 | import com.topdraw.business.module.member.address.domain.MemberAddressBuilder; | 4 | import com.topdraw.business.module.member.address.domain.MemberAddressBuilder; |
5 | import com.topdraw.business.module.member.service.MemberService; | 5 | import com.topdraw.business.module.member.service.MemberService; |
6 | import com.topdraw.business.module.member.service.dto.MemberDTO; | 6 | import com.topdraw.business.module.member.service.dto.MemberDTO; |
7 | import com.topdraw.util.RedissonUtil; | 7 | import com.topdraw.utils.RedisUtils; |
8 | import com.topdraw.utils.ValidationUtil; | 8 | import com.topdraw.utils.ValidationUtil; |
9 | import com.topdraw.business.module.member.address.repository.MemberAddressRepository; | 9 | import com.topdraw.business.module.member.address.repository.MemberAddressRepository; |
10 | import com.topdraw.business.module.member.address.service.MemberAddressService; | 10 | import com.topdraw.business.module.member.address.service.MemberAddressService; |
11 | import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO; | 11 | import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO; |
12 | import com.topdraw.business.module.member.address.service.mapper.MemberAddressMapper; | 12 | import com.topdraw.business.module.member.address.service.mapper.MemberAddressMapper; |
13 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
14 | import org.redisson.api.RLock; | ||
15 | import org.redisson.api.RedissonClient; | ||
16 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
17 | import org.springframework.stereotype.Service; | 15 | import org.springframework.stereotype.Service; |
18 | import org.springframework.transaction.annotation.Propagation; | 16 | import org.springframework.transaction.annotation.Propagation; |
... | @@ -37,7 +35,7 @@ public class MemberAddressServiceImpl implements MemberAddressService { | ... | @@ -37,7 +35,7 @@ public class MemberAddressServiceImpl implements MemberAddressService { |
37 | private MemberAddressRepository memberAddressRepository; | 35 | private MemberAddressRepository memberAddressRepository; |
38 | 36 | ||
39 | @Autowired | 37 | @Autowired |
40 | private RedissonClient redissonClient; | 38 | private RedisUtils redisUtils; |
41 | 39 | ||
42 | @Override | 40 | @Override |
43 | public MemberAddressDTO findById(Long id) { | 41 | public MemberAddressDTO findById(Long id) { |
... | @@ -62,10 +60,10 @@ public class MemberAddressServiceImpl implements MemberAddressService { | ... | @@ -62,10 +60,10 @@ public class MemberAddressServiceImpl implements MemberAddressService { |
62 | public void update(MemberAddress resources) { | 60 | public void update(MemberAddress resources) { |
63 | log.info("MemberAddressServiceImpl ==>> update ==>> param ==>> [{}]",resources); | 61 | log.info("MemberAddressServiceImpl ==>> update ==>> param ==>> [{}]",resources); |
64 | Assert.notNull(resources.getId(),"id can't be null"); | 62 | Assert.notNull(resources.getId(),"id can't be null"); |
65 | RLock rLock = this.redissonClient.getLock("MemberAddress::update::code" + resources.getId()); | 63 | // RLock rLock = this.redissonClient.getLock("MemberAddress::update::code" + resources.getId()); |
66 | try { | 64 | try { |
67 | RedissonUtil.lock(rLock); | 65 | // RedissonUtil.lock(rLock); |
68 | 66 | this.redisUtils.doLock("MemberAddress::update::code" + resources.getId()); | |
69 | MemberDTO memberDTO = this.checkMember(resources); | 67 | MemberDTO memberDTO = this.checkMember(resources); |
70 | resources.setMemberCode(memberDTO.getCode()); | 68 | resources.setMemberCode(memberDTO.getCode()); |
71 | 69 | ||
... | @@ -78,7 +76,8 @@ public class MemberAddressServiceImpl implements MemberAddressService { | ... | @@ -78,7 +76,8 @@ public class MemberAddressServiceImpl implements MemberAddressService { |
78 | e.printStackTrace(); | 76 | e.printStackTrace(); |
79 | throw e; | 77 | throw e; |
80 | } finally { | 78 | } finally { |
81 | RedissonUtil.unlock(rLock); | 79 | // RedissonUtil.unlock(rLock); |
80 | this.redisUtils.doUnLock("MemberAddress::update::code" + resources.getId()); | ||
82 | } | 81 | } |
83 | } | 82 | } |
84 | 83 | ... | ... |
... | @@ -37,7 +37,7 @@ public class Member implements Serializable { | ... | @@ -37,7 +37,7 @@ public class Member implements Serializable { |
37 | @Id | 37 | @Id |
38 | @GeneratedValue(strategy = GenerationType.IDENTITY) | 38 | @GeneratedValue(strategy = GenerationType.IDENTITY) |
39 | @Column(name = "id") | 39 | @Column(name = "id") |
40 | @NotNull(message = "code can't be null!!",groups = {UpdateGroup.class}) | 40 | @NotNull(message = "id can't be null!!",groups = {UpdateGroup.class}) |
41 | private Long id; | 41 | private Long id; |
42 | 42 | ||
43 | /** 标识 */ | 43 | /** 标识 */ | ... | ... |
... | @@ -6,7 +6,7 @@ import com.topdraw.business.module.member.profile.domain.MemberProfileBuilder; | ... | @@ -6,7 +6,7 @@ import com.topdraw.business.module.member.profile.domain.MemberProfileBuilder; |
6 | import com.topdraw.business.module.member.service.MemberService; | 6 | import com.topdraw.business.module.member.service.MemberService; |
7 | import com.topdraw.business.module.member.service.dto.MemberDTO; | 7 | import com.topdraw.business.module.member.service.dto.MemberDTO; |
8 | import com.topdraw.util.Base64Util; | 8 | import com.topdraw.util.Base64Util; |
9 | import com.topdraw.util.RedissonUtil; | 9 | import com.topdraw.utils.RedisUtils; |
10 | import com.topdraw.utils.StringUtils; | 10 | import com.topdraw.utils.StringUtils; |
11 | import com.topdraw.utils.ValidationUtil; | 11 | import com.topdraw.utils.ValidationUtil; |
12 | import com.topdraw.business.module.member.profile.repository.MemberProfileRepository; | 12 | import com.topdraw.business.module.member.profile.repository.MemberProfileRepository; |
... | @@ -14,8 +14,6 @@ import com.topdraw.business.module.member.profile.service.MemberProfileService; | ... | @@ -14,8 +14,6 @@ import com.topdraw.business.module.member.profile.service.MemberProfileService; |
14 | import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO; | 14 | import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO; |
15 | import com.topdraw.business.module.member.profile.service.mapper.MemberProfileMapper; | 15 | import com.topdraw.business.module.member.profile.service.mapper.MemberProfileMapper; |
16 | import lombok.extern.slf4j.Slf4j; | 16 | import lombok.extern.slf4j.Slf4j; |
17 | import org.redisson.api.RLock; | ||
18 | import org.redisson.api.RedissonClient; | ||
19 | import org.springframework.beans.BeanUtils; | 17 | import org.springframework.beans.BeanUtils; |
20 | import org.springframework.beans.factory.annotation.Autowired; | 18 | import org.springframework.beans.factory.annotation.Autowired; |
21 | import org.springframework.stereotype.Service; | 19 | import org.springframework.stereotype.Service; |
... | @@ -37,12 +35,12 @@ public class MemberProfileServiceImpl implements MemberProfileService { | ... | @@ -37,12 +35,12 @@ public class MemberProfileServiceImpl implements MemberProfileService { |
37 | @Autowired | 35 | @Autowired |
38 | private MemberService memberService; | 36 | private MemberService memberService; |
39 | @Autowired | 37 | @Autowired |
40 | private RedissonClient redissonClient; | ||
41 | @Autowired | ||
42 | private MemberProfileMapper memberProfileMapper; | 38 | private MemberProfileMapper memberProfileMapper; |
43 | @Autowired | 39 | @Autowired |
44 | private MemberProfileRepository memberProfileRepository; | 40 | private MemberProfileRepository memberProfileRepository; |
45 | 41 | ||
42 | @Autowired | ||
43 | private RedisUtils redisUtils; | ||
46 | 44 | ||
47 | @Override | 45 | @Override |
48 | public MemberProfileDTO findById(Long id) { | 46 | public MemberProfileDTO findById(Long id) { |
... | @@ -112,10 +110,8 @@ public class MemberProfileServiceImpl implements MemberProfileService { | ... | @@ -112,10 +110,8 @@ public class MemberProfileServiceImpl implements MemberProfileService { |
112 | public void update(MemberProfile resources) { | 110 | public void update(MemberProfile resources) { |
113 | 111 | ||
114 | log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources); | 112 | log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources); |
115 | RLock rLock = this.redissonClient.getLock("memberProfile::update::id" + resources.getId()); | 113 | this.redisUtils.doLock("memberProfile::update::id" + resources.getId()); |
116 | try { | 114 | try { |
117 | RedissonUtil.lock(rLock); | ||
118 | |||
119 | // 检查会员是否存在 | 115 | // 检查会员是否存在 |
120 | this.checkMember(resources); | 116 | this.checkMember(resources); |
121 | // 真实姓名(加密) | 117 | // 真实姓名(加密) |
... | @@ -133,7 +129,7 @@ public class MemberProfileServiceImpl implements MemberProfileService { | ... | @@ -133,7 +129,7 @@ public class MemberProfileServiceImpl implements MemberProfileService { |
133 | e.printStackTrace(); | 129 | e.printStackTrace(); |
134 | throw e; | 130 | throw e; |
135 | } finally { | 131 | } finally { |
136 | RedissonUtil.unlock(rLock); | 132 | this.redisUtils.doUnLock("memberProfile::update::id" + resources.getId()); |
137 | } | 133 | } |
138 | 134 | ||
139 | } | 135 | } | ... | ... |
... | @@ -8,15 +8,13 @@ import com.topdraw.business.module.member.service.dto.MemberDTO; | ... | @@ -8,15 +8,13 @@ import com.topdraw.business.module.member.service.dto.MemberDTO; |
8 | import com.topdraw.exception.BadRequestException; | 8 | import com.topdraw.exception.BadRequestException; |
9 | import com.topdraw.exception.GlobeExceptionMsg; | 9 | import com.topdraw.exception.GlobeExceptionMsg; |
10 | import com.topdraw.util.Base64Util; | 10 | import com.topdraw.util.Base64Util; |
11 | import com.topdraw.util.RedissonUtil; | 11 | import com.topdraw.utils.RedisUtils; |
12 | import com.topdraw.utils.ValidationUtil; | 12 | import com.topdraw.utils.ValidationUtil; |
13 | import com.topdraw.business.module.member.relatedinfo.repository.MemberRelatedInfoRepository; | 13 | import com.topdraw.business.module.member.relatedinfo.repository.MemberRelatedInfoRepository; |
14 | import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService; | 14 | import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService; |
15 | import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO; | 15 | import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO; |
16 | import com.topdraw.business.module.member.relatedinfo.service.mapper.MemberRelatedInfoMapper; | 16 | import com.topdraw.business.module.member.relatedinfo.service.mapper.MemberRelatedInfoMapper; |
17 | import lombok.extern.slf4j.Slf4j; | 17 | import lombok.extern.slf4j.Slf4j; |
18 | import org.redisson.api.RLock; | ||
19 | import org.redisson.api.RedissonClient; | ||
20 | import org.springframework.beans.factory.annotation.Autowired; | 18 | import org.springframework.beans.factory.annotation.Autowired; |
21 | import org.springframework.stereotype.Service; | 19 | import org.springframework.stereotype.Service; |
22 | import org.springframework.transaction.annotation.Propagation; | 20 | import org.springframework.transaction.annotation.Propagation; |
... | @@ -44,7 +42,7 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService { | ... | @@ -44,7 +42,7 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService { |
44 | private MemberRelatedInfoRepository memberRelatedInfoRepository; | 42 | private MemberRelatedInfoRepository memberRelatedInfoRepository; |
45 | 43 | ||
46 | @Autowired | 44 | @Autowired |
47 | private RedissonClient redissonClient; | 45 | private RedisUtils redisUtils; |
48 | 46 | ||
49 | 47 | ||
50 | private static final String DEFAULT_IDCARD = "000000000000000000"; | 48 | private static final String DEFAULT_IDCARD = "000000000000000000"; |
... | @@ -108,9 +106,8 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService { | ... | @@ -108,9 +106,8 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService { |
108 | @Transactional(rollbackFor = Exception.class) | 106 | @Transactional(rollbackFor = Exception.class) |
109 | public void update(MemberRelatedInfo resources) { | 107 | public void update(MemberRelatedInfo resources) { |
110 | log.info("MemberRelatedInfoServiceImpl ==>> update ==>> param ==>> [{}]",resources); | 108 | log.info("MemberRelatedInfoServiceImpl ==>> update ==>> param ==>> [{}]",resources); |
111 | RLock rLock = this.redissonClient.getLock("memberRelatedInfo::update::id" + resources.getId()); | 109 | this.redisUtils.doLock("memberRelatedInfo::update::id" + resources.getId()); |
112 | try { | 110 | try { |
113 | RedissonUtil.lock(rLock); | ||
114 | 111 | ||
115 | this.checkMemberAndEncodeRealname(resources); | 112 | this.checkMemberAndEncodeRealname(resources); |
116 | 113 | ||
... | @@ -126,7 +123,7 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService { | ... | @@ -126,7 +123,7 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService { |
126 | e.printStackTrace(); | 123 | e.printStackTrace(); |
127 | throw e; | 124 | throw e; |
128 | } finally { | 125 | } finally { |
129 | RedissonUtil.unlock(rLock); | 126 | this.redisUtils.doUnLock("memberRelatedInfo::update::id" + resources.getId()); |
130 | } | 127 | } |
131 | } | 128 | } |
132 | 129 | ... | ... |
1 | package com.topdraw.business.module.member.rest; | 1 | package com.topdraw.business.module.member.rest; |
2 | 2 | ||
3 | import com.topdraw.annotation.AnonymousAccess; | ||
3 | import com.topdraw.aop.log.Log; | 4 | import com.topdraw.aop.log.Log; |
4 | import com.topdraw.business.module.common.validated.CreateGroup; | 5 | import com.topdraw.business.module.common.validated.CreateGroup; |
5 | import com.topdraw.business.module.common.validated.UpdateGroup; | 6 | import com.topdraw.business.module.common.validated.UpdateGroup; |
6 | import com.topdraw.business.module.member.domain.Member; | 7 | import com.topdraw.business.module.member.domain.Member; |
7 | import com.topdraw.business.module.member.service.MemberService; | 8 | import com.topdraw.business.module.member.service.MemberService; |
9 | import com.topdraw.business.module.member.service.dto.MemberDTO; | ||
8 | import com.topdraw.business.module.user.iptv.domain.UserTv; | 10 | import com.topdraw.business.module.user.iptv.domain.UserTv; |
9 | import com.topdraw.business.process.service.MemberOperationService; | 11 | import com.topdraw.business.process.service.MemberOperationService; |
10 | import com.topdraw.business.process.service.UserOperationService; | 12 | import com.topdraw.business.process.service.UserOperationService; |
... | @@ -32,6 +34,7 @@ public class MemberController { | ... | @@ -32,6 +34,7 @@ public class MemberController { |
32 | @Autowired | 34 | @Autowired |
33 | private UserOperationService userTvOperationService; | 35 | private UserOperationService userTvOperationService; |
34 | 36 | ||
37 | |||
35 | @Log("为大屏账户创建会员") | 38 | @Log("为大屏账户创建会员") |
36 | @RequestMapping(value = "/createMemberByUserTv") | 39 | @RequestMapping(value = "/createMemberByUserTv") |
37 | @ApiOperation("为大屏账户创建会员") | 40 | @ApiOperation("为大屏账户创建会员") | ... | ... |
... | @@ -11,6 +11,8 @@ import java.util.List; | ... | @@ -11,6 +11,8 @@ import java.util.List; |
11 | */ | 11 | */ |
12 | public interface MemberService { | 12 | public interface MemberService { |
13 | 13 | ||
14 | |||
15 | |||
14 | /** | 16 | /** |
15 | * 根据ID查询 | 17 | * 根据ID查询 |
16 | * @param id ID | 18 | * @param id ID |
... | @@ -30,26 +32,26 @@ public interface MemberService { | ... | @@ -30,26 +32,26 @@ public interface MemberService { |
30 | * @param resources | 32 | * @param resources |
31 | * @return Long id | 33 | * @return Long id |
32 | */ | 34 | */ |
33 | Long create(Member resources); | 35 | MemberDTO create(Member resources); |
34 | 36 | ||
35 | /** | 37 | /** |
36 | * 创建并返回会员 | 38 | * 创建并返回会员 |
37 | * @param resources 会员 | 39 | * @param resources 会员 |
38 | * @return Member | 40 | * @return Member |
39 | */ | 41 | */ |
40 | Member createAndReturnMember(Member resources); | 42 | MemberDTO createAndReturnMember(Member resources); |
41 | 43 | ||
42 | /** | 44 | /** |
43 | * 修改会员 | 45 | * 修改会员 |
44 | * @param resources | 46 | * @param resources |
45 | */ | 47 | */ |
46 | void update(Member resources); | 48 | MemberDTO update(Member resources); |
47 | 49 | ||
48 | /** | 50 | /** |
49 | * 修改会员积分 | 51 | * 修改会员积分 |
50 | * @param member 会员 | 52 | * @param member 会员 |
51 | */ | 53 | */ |
52 | void doUpdateMemberPoints(Member member); | 54 | MemberDTO doUpdateMemberPoints(Member member); |
53 | 55 | ||
54 | /** | 56 | /** |
55 | * 查询绑定了大屏会员列表 | 57 | * 查询绑定了大屏会员列表 | ... | ... |
... | @@ -9,14 +9,15 @@ import com.topdraw.business.module.member.service.dto.MemberDTO; | ... | @@ -9,14 +9,15 @@ import com.topdraw.business.module.member.service.dto.MemberDTO; |
9 | import com.topdraw.business.module.member.service.mapper.MemberMapper; | 9 | import com.topdraw.business.module.member.service.mapper.MemberMapper; |
10 | import com.topdraw.exception.BadRequestException; | 10 | import com.topdraw.exception.BadRequestException; |
11 | import com.topdraw.exception.GlobeExceptionMsg; | 11 | import com.topdraw.exception.GlobeExceptionMsg; |
12 | import com.topdraw.util.RedissonUtil; | 12 | import com.topdraw.utils.RedisUtils; |
13 | import com.topdraw.utils.ValidationUtil; | 13 | import com.topdraw.utils.ValidationUtil; |
14 | import lombok.extern.slf4j.Slf4j; | 14 | import lombok.extern.slf4j.Slf4j; |
15 | import org.apache.commons.lang3.StringUtils; | 15 | import org.apache.commons.lang3.StringUtils; |
16 | import org.redisson.api.RLock; | ||
17 | import org.redisson.api.RedissonClient; | ||
18 | import org.springframework.beans.BeanUtils; | 16 | import org.springframework.beans.BeanUtils; |
19 | import org.springframework.beans.factory.annotation.Autowired; | 17 | import org.springframework.beans.factory.annotation.Autowired; |
18 | import org.springframework.cache.annotation.CacheEvict; | ||
19 | import org.springframework.cache.annotation.CachePut; | ||
20 | import org.springframework.cache.annotation.Cacheable; | ||
20 | import org.springframework.stereotype.Service; | 21 | import org.springframework.stereotype.Service; |
21 | import org.springframework.transaction.annotation.Propagation; | 22 | import org.springframework.transaction.annotation.Propagation; |
22 | import org.springframework.transaction.annotation.Transactional; | 23 | import org.springframework.transaction.annotation.Transactional; |
... | @@ -40,15 +41,15 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -40,15 +41,15 @@ public class MemberServiceImpl implements MemberService { |
40 | private MemberProfileService memberProfileService; | 41 | private MemberProfileService memberProfileService; |
41 | 42 | ||
42 | @Autowired | 43 | @Autowired |
43 | private RedissonClient redissonClient; | 44 | private RedisUtils redisUtils; |
45 | |||
44 | 46 | ||
45 | @Override | 47 | @Override |
46 | public MemberDTO findById(Long id) { | 48 | public MemberDTO findById(Long id) { |
47 | |||
48 | Member member = this.memberRepository.findById(id).orElseGet(Member::new); | 49 | Member member = this.memberRepository.findById(id).orElseGet(Member::new); |
49 | ValidationUtil.isNull(member.getId(),"Member","id",id); | 50 | ValidationUtil.isNull(member.getId(),"Member","id",id); |
50 | 51 | ||
51 | return memberMapper.toDto(member); | 52 | return this.memberMapper.toDto(member); |
52 | 53 | ||
53 | } | 54 | } |
54 | 55 | ||
... | @@ -58,7 +59,7 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -58,7 +59,7 @@ public class MemberServiceImpl implements MemberService { |
58 | Member member = this.memberRepository.findFirstByCode(code).orElseGet(Member::new); | 59 | Member member = this.memberRepository.findFirstByCode(code).orElseGet(Member::new); |
59 | ValidationUtil.isNull(member.getId(),"Member","id",code); | 60 | ValidationUtil.isNull(member.getId(),"Member","id",code); |
60 | 61 | ||
61 | return memberMapper.toDto(member); | 62 | return this.memberMapper.toDto(member); |
62 | 63 | ||
63 | } | 64 | } |
64 | 65 | ||
... | @@ -67,7 +68,7 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -67,7 +68,7 @@ public class MemberServiceImpl implements MemberService { |
67 | Member member = this.memberRepository.findByIdOrCode(id,code).orElseGet(Member::new); | 68 | Member member = this.memberRepository.findByIdOrCode(id,code).orElseGet(Member::new); |
68 | ValidationUtil.isNull(member.getId(),"Member","param",code); | 69 | ValidationUtil.isNull(member.getId(),"Member","param",code); |
69 | 70 | ||
70 | return memberMapper.toDto(member); | 71 | return this.memberMapper.toDto(member); |
71 | 72 | ||
72 | } | 73 | } |
73 | 74 | ||
... | @@ -76,7 +77,7 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -76,7 +77,7 @@ public class MemberServiceImpl implements MemberService { |
76 | 77 | ||
77 | List<Member> memberList = this.memberRepository.findByUserIptvId(id); | 78 | List<Member> memberList = this.memberRepository.findByUserIptvId(id); |
78 | 79 | ||
79 | return memberMapper.toDto(memberList); | 80 | return this.memberMapper.toDto(memberList); |
80 | 81 | ||
81 | } | 82 | } |
82 | 83 | ||
... | @@ -101,7 +102,7 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -101,7 +102,7 @@ public class MemberServiceImpl implements MemberService { |
101 | 102 | ||
102 | @Override | 103 | @Override |
103 | @Transactional(rollbackFor = Exception.class) | 104 | @Transactional(rollbackFor = Exception.class) |
104 | public Long create(Member resources) { | 105 | public MemberDTO create(Member resources) { |
105 | 106 | ||
106 | Member member = MemberBuilder.build(resources); | 107 | Member member = MemberBuilder.build(resources); |
107 | Long memberId = this.save(member); | 108 | Long memberId = this.save(member); |
... | @@ -110,28 +111,27 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -110,28 +111,27 @@ public class MemberServiceImpl implements MemberService { |
110 | // 保存会员属性 | 111 | // 保存会员属性 |
111 | this.memberProfileService.createDefault(member); | 112 | this.memberProfileService.createDefault(member); |
112 | 113 | ||
113 | return member.getId(); | 114 | return this.memberMapper.toDto(member); |
114 | 115 | ||
115 | } | 116 | } |
116 | 117 | ||
117 | @Override | 118 | @Override |
118 | @Transactional(rollbackFor = Exception.class) | 119 | @Transactional(rollbackFor = Exception.class) |
119 | public Member createAndReturnMember(Member resources) { | 120 | public MemberDTO createAndReturnMember(Member resources) { |
120 | 121 | ||
121 | this.create(MemberBuilder.build(resources)); | 122 | MemberDTO memberDTO = this.create(MemberBuilder.build(resources)); |
122 | 123 | ||
123 | return resources; | 124 | return memberDTO; |
124 | 125 | ||
125 | } | 126 | } |
126 | 127 | ||
127 | @Override | 128 | @Override |
128 | @Transactional(rollbackFor = Exception.class) | 129 | @Transactional(rollbackFor = Exception.class) |
129 | public void update(Member resources) { | 130 | public MemberDTO update(Member resources) { |
130 | 131 | ||
131 | log.info("MemberServiceImpl ==>> update ==>> resources ==>> [{}]" , resources); | 132 | log.info("MemberServiceImpl ==>> update ==>> resources ==>> [{}]" , resources); |
132 | RLock rLock = this.redissonClient.getLock("member::update::code" + resources.getCode()); | 133 | this.redisUtils.doLock("member::update::code" + resources.getCode()); |
133 | try { | 134 | try { |
134 | RedissonUtil.lock(rLock); | ||
135 | MemberDTO memberDTO = this.checkMember(resources); | 135 | MemberDTO memberDTO = this.checkMember(resources); |
136 | 136 | ||
137 | Member member = new Member(); | 137 | Member member = new Member(); |
... | @@ -140,11 +140,13 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -140,11 +140,13 @@ public class MemberServiceImpl implements MemberService { |
140 | 140 | ||
141 | this.save(member); | 141 | this.save(member); |
142 | 142 | ||
143 | return this.memberMapper.toDto(member); | ||
144 | |||
143 | } catch (Exception e) { | 145 | } catch (Exception e) { |
144 | e.printStackTrace(); | 146 | e.printStackTrace(); |
145 | throw e; | 147 | throw e; |
146 | } finally { | 148 | } finally { |
147 | RedissonUtil.unlock(rLock); | 149 | this.redisUtils.doUnLock("member::update::code" + resources.getCode()); |
148 | } | 150 | } |
149 | 151 | ||
150 | } | 152 | } |
... | @@ -157,19 +159,23 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -157,19 +159,23 @@ public class MemberServiceImpl implements MemberService { |
157 | 159 | ||
158 | @Override | 160 | @Override |
159 | @Transactional(rollbackFor = Exception.class) | 161 | @Transactional(rollbackFor = Exception.class) |
160 | public void doUpdateMemberPoints(Member resources) { | 162 | public MemberDTO doUpdateMemberPoints(Member resources) { |
161 | RLock rLock = this.redissonClient.getLock("member::update::code" + resources.getId().toString()); | ||
162 | try { | 163 | try { |
163 | RedissonUtil.lock(rLock); | 164 | this.redisUtils.doLock("member::update::code" + resources.getCode()); |
165 | |||
164 | Member member = this.memberRepository.findById(resources.getId()).orElseGet(Member::new); | 166 | Member member = this.memberRepository.findById(resources.getId()).orElseGet(Member::new); |
165 | ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId()); | 167 | ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId()); |
166 | member.copy(resources); | 168 | member.copy(resources); |
169 | |||
167 | this.save(member); | 170 | this.save(member); |
171 | |||
172 | return this.memberMapper.toDto(member); | ||
173 | |||
168 | } catch (Exception e) { | 174 | } catch (Exception e) { |
169 | e.printStackTrace(); | 175 | e.printStackTrace(); |
170 | throw e; | 176 | throw e; |
171 | } finally { | 177 | } finally { |
172 | RedissonUtil.unlock(rLock); | 178 | this.redisUtils.doUnLock("member::update::code" + resources.getCode()); |
173 | } | 179 | } |
174 | } | 180 | } |
175 | 181 | ... | ... |
1 | package com.topdraw.business.module.points.available.service.impl; | 1 | package com.topdraw.business.module.points.available.service.impl; |
2 | 2 | ||
3 | import com.topdraw.aspect.AsyncMqSend; | ||
4 | import com.topdraw.business.module.points.available.domain.PointsAvailable; | 3 | import com.topdraw.business.module.points.available.domain.PointsAvailable; |
5 | import com.topdraw.util.RedissonUtil; | 4 | import com.topdraw.utils.RedisUtils; |
6 | import com.topdraw.utils.ValidationUtil; | 5 | import com.topdraw.utils.ValidationUtil; |
7 | import com.topdraw.business.module.points.available.repository.PointsAvailableRepository; | 6 | import com.topdraw.business.module.points.available.repository.PointsAvailableRepository; |
8 | import com.topdraw.business.module.points.available.service.PointsAvailableService; | 7 | import com.topdraw.business.module.points.available.service.PointsAvailableService; |
9 | import com.topdraw.business.module.points.available.service.dto.PointsAvailableDTO; | 8 | import com.topdraw.business.module.points.available.service.dto.PointsAvailableDTO; |
10 | import com.topdraw.business.module.points.available.service.dto.PointsAvailableQueryCriteria; | ||
11 | import com.topdraw.business.module.points.available.service.mapper.PointsAvailableMapper; | 9 | import com.topdraw.business.module.points.available.service.mapper.PointsAvailableMapper; |
12 | import org.redisson.api.RLock; | ||
13 | import org.redisson.api.RedissonClient; | ||
14 | import org.springframework.beans.factory.annotation.Autowired; | 10 | import org.springframework.beans.factory.annotation.Autowired; |
15 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
16 | import org.springframework.transaction.annotation.Propagation; | 12 | import org.springframework.transaction.annotation.Propagation; |
17 | import org.springframework.transaction.annotation.Transactional; | 13 | import org.springframework.transaction.annotation.Transactional; |
18 | import org.springframework.dao.EmptyResultDataAccessException; | 14 | import org.springframework.dao.EmptyResultDataAccessException; |
19 | import org.springframework.data.domain.Page; | ||
20 | import org.springframework.data.domain.Pageable; | ||
21 | import org.springframework.util.Assert; | 15 | import org.springframework.util.Assert; |
22 | import com.topdraw.utils.PageUtil; | ||
23 | import com.topdraw.utils.QueryHelp; | ||
24 | import com.topdraw.utils.StringUtils; | 16 | import com.topdraw.utils.StringUtils; |
25 | 17 | ||
26 | import java.time.LocalDateTime; | 18 | import java.time.LocalDateTime; |
... | @@ -41,7 +33,7 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { | ... | @@ -41,7 +33,7 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { |
41 | private PointsAvailableMapper PointsAvailableMapper; | 33 | private PointsAvailableMapper PointsAvailableMapper; |
42 | 34 | ||
43 | @Autowired | 35 | @Autowired |
44 | private RedissonClient redissonClient; | 36 | private RedisUtils redisUtils; |
45 | 37 | ||
46 | @Override | 38 | @Override |
47 | public List<PointsAvailableDTO> findByMemberIdOrderByExpireTime(Long memberId) { | 39 | public List<PointsAvailableDTO> findByMemberIdOrderByExpireTime(Long memberId) { |
... | @@ -58,24 +50,22 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { | ... | @@ -58,24 +50,22 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { |
58 | @Override | 50 | @Override |
59 | @Transactional(rollbackFor = Exception.class) | 51 | @Transactional(rollbackFor = Exception.class) |
60 | public void create(PointsAvailable resources) { | 52 | public void create(PointsAvailable resources) { |
61 | RLock rLock = this.redissonClient.getLock("PointsAvailable::create::id"+resources.getMemberId().toString()); | 53 | this.redisUtils.doLock("PointsAvailable::create::id"+resources.getMemberId().toString()); |
62 | try { | 54 | try { |
63 | RedissonUtil.lock(rLock); | ||
64 | PointsAvailableRepository.save(resources); | 55 | PointsAvailableRepository.save(resources); |
65 | } catch (Exception e) { | 56 | } catch (Exception e) { |
66 | e.printStackTrace(); | 57 | e.printStackTrace(); |
67 | throw e; | 58 | throw e; |
68 | } finally { | 59 | } finally { |
69 | RedissonUtil.unlock(rLock); | 60 | this.redisUtils.doUnLock("PointsAvailable::create::id"+resources.getMemberId().toString()); |
70 | } | 61 | } |
71 | } | 62 | } |
72 | 63 | ||
73 | @Override | 64 | @Override |
74 | @Transactional(rollbackFor = Exception.class) | 65 | @Transactional(rollbackFor = Exception.class) |
75 | public void update(PointsAvailable resources) { | 66 | public void update(PointsAvailable resources) { |
76 | RLock rLock = this.redissonClient.getLock("PointsAvailable::update::id"+resources.getMemberId().toString()); | 67 | this.redisUtils.doLock("PointsAvailable::update::id"+resources.getMemberId().toString()); |
77 | try { | 68 | try { |
78 | RedissonUtil.lock(rLock); | ||
79 | PointsAvailable PointsAvailable = PointsAvailableRepository.findById(resources.getId()).orElseGet(PointsAvailable::new); | 69 | PointsAvailable PointsAvailable = PointsAvailableRepository.findById(resources.getId()).orElseGet(PointsAvailable::new); |
80 | ValidationUtil.isNull( PointsAvailable.getId(),"PointsAvailable","id",resources.getId()); | 70 | ValidationUtil.isNull( PointsAvailable.getId(),"PointsAvailable","id",resources.getId()); |
81 | PointsAvailable.copy(resources); | 71 | PointsAvailable.copy(resources); |
... | @@ -84,7 +74,7 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { | ... | @@ -84,7 +74,7 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { |
84 | e.printStackTrace(); | 74 | e.printStackTrace(); |
85 | throw e; | 75 | throw e; |
86 | } finally { | 76 | } finally { |
87 | RedissonUtil.unlock(rLock); | 77 | this.redisUtils.doUnLock("PointsAvailable::update::id"+resources.getMemberId().toString()); |
88 | } | 78 | } |
89 | } | 79 | } |
90 | 80 | ||
... | @@ -92,9 +82,8 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { | ... | @@ -92,9 +82,8 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { |
92 | @Transactional(rollbackFor = Exception.class) | 82 | @Transactional(rollbackFor = Exception.class) |
93 | public void delete(Long id) { | 83 | public void delete(Long id) { |
94 | Assert.notNull(id, "The given id must not be null!"); | 84 | Assert.notNull(id, "The given id must not be null!"); |
95 | RLock rLock = this.redissonClient.getLock("PointsAvailable::delete::id"+id); | 85 | this.redisUtils.doLock("PointsAvailable::delete::id"+id); |
96 | try { | 86 | try { |
97 | RedissonUtil.lock(rLock); | ||
98 | PointsAvailable PointsAvailable = PointsAvailableRepository.findById(id).orElseThrow( | 87 | PointsAvailable PointsAvailable = PointsAvailableRepository.findById(id).orElseThrow( |
99 | () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", PointsAvailable.class, id), 1)); | 88 | () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", PointsAvailable.class, id), 1)); |
100 | PointsAvailableRepository.delete(PointsAvailable); | 89 | PointsAvailableRepository.delete(PointsAvailable); |
... | @@ -102,22 +91,21 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { | ... | @@ -102,22 +91,21 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { |
102 | e.printStackTrace(); | 91 | e.printStackTrace(); |
103 | throw e; | 92 | throw e; |
104 | } finally { | 93 | } finally { |
105 | RedissonUtil.unlock(rLock); | 94 | this.redisUtils.doLock("PointsAvailable::delete::id"+id); |
106 | } | 95 | } |
107 | } | 96 | } |
108 | 97 | ||
109 | @Override | 98 | @Override |
110 | @Transactional(rollbackFor = Exception.class) | 99 | @Transactional(rollbackFor = Exception.class) |
111 | public void deleteBatchByIds(List<Long> id) { | 100 | public void deleteBatchByIds(List<Long> id) { |
112 | RLock rLock = this.redissonClient.getLock("PointsAvailable::create::id"+id.get(0)); | 101 | this.redisUtils.doLock("PointsAvailable::create::id"+id); |
113 | try { | 102 | try { |
114 | RedissonUtil.lock(rLock); | ||
115 | PointsAvailableRepository.deleteBatchByIds(id); | 103 | PointsAvailableRepository.deleteBatchByIds(id); |
116 | } catch (Exception e) { | 104 | } catch (Exception e) { |
117 | e.printStackTrace(); | 105 | e.printStackTrace(); |
118 | throw e; | 106 | throw e; |
119 | } finally { | 107 | } finally { |
120 | RedissonUtil.unlock(rLock); | 108 | this.redisUtils.doUnLock("PointsAvailable::create::id"+id); |
121 | } | 109 | } |
122 | } | 110 | } |
123 | 111 | ||
... | @@ -154,9 +142,8 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { | ... | @@ -154,9 +142,8 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { |
154 | @Override | 142 | @Override |
155 | public void delete4Custom(Long id) { | 143 | public void delete4Custom(Long id) { |
156 | Assert.notNull(id, "The given id must not be null!"); | 144 | Assert.notNull(id, "The given id must not be null!"); |
157 | RLock rLock = this.redissonClient.getLock("PointsAvailable::delete::id"+id); | 145 | this.redisUtils.doLock("PointsAvailable::delete::id"+id); |
158 | try { | 146 | try { |
159 | RedissonUtil.lock(rLock); | ||
160 | PointsAvailable PointsAvailable = PointsAvailableRepository.findById(id).orElseThrow( | 147 | PointsAvailable PointsAvailable = PointsAvailableRepository.findById(id).orElseThrow( |
161 | () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", PointsAvailable.class, id), 1)); | 148 | () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", PointsAvailable.class, id), 1)); |
162 | PointsAvailableRepository.delete(PointsAvailable); | 149 | PointsAvailableRepository.delete(PointsAvailable); |
... | @@ -164,21 +151,20 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { | ... | @@ -164,21 +151,20 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { |
164 | e.printStackTrace(); | 151 | e.printStackTrace(); |
165 | throw e; | 152 | throw e; |
166 | } finally { | 153 | } finally { |
167 | RedissonUtil.unlock(rLock); | 154 | this.redisUtils.doUnLock("PointsAvailable::delete::id"+id); |
168 | } | 155 | } |
169 | } | 156 | } |
170 | 157 | ||
171 | @Override | 158 | @Override |
172 | public void create4Custom(PointsAvailable resources) { | 159 | public void create4Custom(PointsAvailable resources) { |
173 | RLock rLock = this.redissonClient.getLock("PointsAvailable::create::id"+resources.getMemberId().toString()); | 160 | this.redisUtils.doLock("PointsAvailable::create::id"+resources.getMemberId().toString()); |
174 | try { | 161 | try { |
175 | RedissonUtil.lock(rLock); | ||
176 | PointsAvailableRepository.save(resources); | 162 | PointsAvailableRepository.save(resources); |
177 | } catch (Exception e) { | 163 | } catch (Exception e) { |
178 | e.printStackTrace(); | 164 | e.printStackTrace(); |
179 | throw e; | 165 | throw e; |
180 | } finally { | 166 | } finally { |
181 | RedissonUtil.unlock(rLock); | 167 | this.redisUtils.doUnLock("PointsAvailable::create::id"+resources.getMemberId().toString()); |
182 | } | 168 | } |
183 | } | 169 | } |
184 | 170 | ... | ... |
1 | package com.topdraw.business.module.points.service.impl; | 1 | package com.topdraw.business.module.points.service.impl; |
2 | 2 | ||
3 | import com.topdraw.aspect.AsyncMqSend; | ||
4 | import com.topdraw.business.module.points.domain.Points; | 3 | import com.topdraw.business.module.points.domain.Points; |
5 | import com.topdraw.util.RedissonUtil; | 4 | import com.topdraw.utils.RedisUtils; |
6 | import com.topdraw.utils.ValidationUtil; | 5 | import com.topdraw.utils.ValidationUtil; |
7 | import com.topdraw.business.module.points.repository.PointsRepository; | 6 | import com.topdraw.business.module.points.repository.PointsRepository; |
8 | import com.topdraw.business.module.points.service.PointsService; | 7 | import com.topdraw.business.module.points.service.PointsService; |
9 | import com.topdraw.business.module.points.service.dto.PointsDTO; | 8 | import com.topdraw.business.module.points.service.dto.PointsDTO; |
10 | import com.topdraw.business.module.points.service.dto.PointsQueryCriteria; | 9 | import com.topdraw.business.module.points.service.dto.PointsQueryCriteria; |
11 | import com.topdraw.business.module.points.service.mapper.PointsMapper; | 10 | import com.topdraw.business.module.points.service.mapper.PointsMapper; |
12 | import org.redisson.api.RLock; | ||
13 | import org.redisson.api.RedissonClient; | ||
14 | import org.springframework.beans.factory.annotation.Autowired; | 11 | import org.springframework.beans.factory.annotation.Autowired; |
15 | import org.springframework.stereotype.Service; | 12 | import org.springframework.stereotype.Service; |
16 | import org.springframework.transaction.annotation.Propagation; | 13 | import org.springframework.transaction.annotation.Propagation; |
... | @@ -42,7 +39,7 @@ public class PointsServiceImpl implements PointsService { | ... | @@ -42,7 +39,7 @@ public class PointsServiceImpl implements PointsService { |
42 | private PointsMapper PointsMapper; | 39 | private PointsMapper PointsMapper; |
43 | 40 | ||
44 | @Autowired | 41 | @Autowired |
45 | private RedissonClient redissonClient; | 42 | private RedisUtils redisUtils; |
46 | 43 | ||
47 | @Override | 44 | @Override |
48 | public Map<String, Object> queryAll(PointsQueryCriteria criteria, Pageable pageable) { | 45 | public Map<String, Object> queryAll(PointsQueryCriteria criteria, Pageable pageable) { |
... | @@ -73,9 +70,8 @@ public class PointsServiceImpl implements PointsService { | ... | @@ -73,9 +70,8 @@ public class PointsServiceImpl implements PointsService { |
73 | @Override | 70 | @Override |
74 | @Transactional(rollbackFor = Exception.class) | 71 | @Transactional(rollbackFor = Exception.class) |
75 | public void update(Points resources) { | 72 | public void update(Points resources) { |
76 | RLock rLock = this.redissonClient.getLock(resources.getId().toString()); | 73 | this.redisUtils.doLock("Points::update::userId"+resources.getUserId().toString()); |
77 | try { | 74 | try { |
78 | RedissonUtil.lock(rLock); | ||
79 | Points Points = PointsRepository.findById(resources.getId()).orElseGet(Points::new); | 75 | Points Points = PointsRepository.findById(resources.getId()).orElseGet(Points::new); |
80 | ValidationUtil.isNull(Points.getId(), "Points", "id", resources.getId()); | 76 | ValidationUtil.isNull(Points.getId(), "Points", "id", resources.getId()); |
81 | Points.copy(resources); | 77 | Points.copy(resources); |
... | @@ -84,7 +80,7 @@ public class PointsServiceImpl implements PointsService { | ... | @@ -84,7 +80,7 @@ public class PointsServiceImpl implements PointsService { |
84 | e.printStackTrace(); | 80 | e.printStackTrace(); |
85 | throw e; | 81 | throw e; |
86 | } finally { | 82 | } finally { |
87 | RedissonUtil.unlock(rLock); | 83 | this.redisUtils.doUnLock("Points::update::userId"+resources.getUserId().toString()); |
88 | } | 84 | } |
89 | } | 85 | } |
90 | 86 | ... | ... |
1 | package com.topdraw.business.module.rights.service; | 1 | package com.topdraw.business.module.rights.service; |
2 | 2 | ||
3 | import com.topdraw.business.module.rights.domain.Rights; | ||
4 | import com.topdraw.business.module.rights.service.dto.RightsDTO; | 3 | import com.topdraw.business.module.rights.service.dto.RightsDTO; |
5 | import com.topdraw.business.module.rights.service.dto.RightsQueryCriteria; | ||
6 | import org.springframework.data.domain.Pageable; | ||
7 | import java.util.Map; | ||
8 | import java.util.List; | ||
9 | 4 | ||
10 | /** | 5 | /** |
11 | * @author XiangHan | 6 | * @author XiangHan |
... | @@ -14,21 +9,6 @@ import java.util.List; | ... | @@ -14,21 +9,6 @@ import java.util.List; |
14 | public interface RightsService { | 9 | public interface RightsService { |
15 | 10 | ||
16 | /** | 11 | /** |
17 | * 查询数据分页 | ||
18 | * @param criteria 条件参数 | ||
19 | * @param pageable 分页参数 | ||
20 | * @return Map<String,Object> | ||
21 | */ | ||
22 | Map<String,Object> queryAll(RightsQueryCriteria criteria, Pageable pageable); | ||
23 | |||
24 | /** | ||
25 | * 查询所有数据不分页 | ||
26 | * @param criteria 条件参数 | ||
27 | * @return List<RightsDTO> | ||
28 | */ | ||
29 | List<RightsDTO> queryAll(RightsQueryCriteria criteria); | ||
30 | |||
31 | /** | ||
32 | * 根据ID查询 | 12 | * 根据ID查询 |
33 | * @param id ID | 13 | * @param id ID |
34 | * @return RightsDTO | 14 | * @return RightsDTO |
... | @@ -36,19 +16,6 @@ public interface RightsService { | ... | @@ -36,19 +16,6 @@ public interface RightsService { |
36 | RightsDTO findById(Long id); | 16 | RightsDTO findById(Long id); |
37 | 17 | ||
38 | /** | 18 | /** |
39 | * 批量查询 | ||
40 | * @param ids | ||
41 | * @return | ||
42 | */ | ||
43 | List<RightsDTO> findBatchByIds(Long... ids); | ||
44 | |||
45 | void create(Rights resources); | ||
46 | |||
47 | void update(Rights resources); | ||
48 | |||
49 | void delete(Long id); | ||
50 | |||
51 | /** | ||
52 | * Code校验 | 19 | * Code校验 |
53 | * @param code | 20 | * @param code |
54 | * @return RightsDTO | 21 | * @return RightsDTO | ... | ... |
1 | package com.topdraw.business.module.rights.service.impl; | 1 | package com.topdraw.business.module.rights.service.impl; |
2 | 2 | ||
3 | import com.topdraw.aspect.AsyncMqSend; | ||
4 | import com.topdraw.business.module.rights.domain.Rights; | 3 | import com.topdraw.business.module.rights.domain.Rights; |
5 | import com.topdraw.utils.ValidationUtil; | 4 | import com.topdraw.utils.*; |
6 | import com.topdraw.business.module.rights.repository.RightsRepository; | 5 | import com.topdraw.business.module.rights.repository.RightsRepository; |
7 | import com.topdraw.business.module.rights.service.RightsService; | 6 | import com.topdraw.business.module.rights.service.RightsService; |
8 | import com.topdraw.business.module.rights.service.dto.RightsDTO; | 7 | import com.topdraw.business.module.rights.service.dto.RightsDTO; |
9 | import com.topdraw.business.module.rights.service.dto.RightsQueryCriteria; | ||
10 | import com.topdraw.business.module.rights.service.mapper.RightsMapper; | 8 | import com.topdraw.business.module.rights.service.mapper.RightsMapper; |
11 | import org.redisson.api.RLock; | ||
12 | import org.redisson.api.RedissonClient; | ||
13 | import org.springframework.beans.factory.annotation.Autowired; | 9 | import org.springframework.beans.factory.annotation.Autowired; |
14 | import org.springframework.stereotype.Service; | 10 | import org.springframework.stereotype.Service; |
15 | import org.springframework.transaction.annotation.Propagation; | 11 | import org.springframework.transaction.annotation.Propagation; |
16 | import org.springframework.transaction.annotation.Transactional; | 12 | import org.springframework.transaction.annotation.Transactional; |
17 | import org.springframework.dao.EmptyResultDataAccessException; | ||
18 | import org.springframework.data.domain.Page; | ||
19 | import org.springframework.data.domain.Pageable; | ||
20 | import org.springframework.util.Assert; | ||
21 | import com.topdraw.utils.PageUtil; | ||
22 | import com.topdraw.utils.QueryHelp; | ||
23 | import com.topdraw.utils.StringUtils; | ||
24 | import org.springframework.util.CollectionUtils; | ||
25 | |||
26 | import java.util.List; | ||
27 | import java.util.Map; | ||
28 | 13 | ||
29 | /** | 14 | /** |
30 | * @author XiangHan | 15 | * @author XiangHan |
... | @@ -41,18 +26,7 @@ public class RightsServiceImpl implements RightsService { | ... | @@ -41,18 +26,7 @@ public class RightsServiceImpl implements RightsService { |
41 | private RightsMapper RightsMapper; | 26 | private RightsMapper RightsMapper; |
42 | 27 | ||
43 | @Autowired | 28 | @Autowired |
44 | private RedissonClient redissonClient; | 29 | private RedisUtils redisUtils; |
45 | |||
46 | @Override | ||
47 | public Map<String, Object> queryAll(RightsQueryCriteria criteria, Pageable pageable) { | ||
48 | Page<Rights> page = RightsRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); | ||
49 | return PageUtil.toPage(page.map(RightsMapper::toDto)); | ||
50 | } | ||
51 | |||
52 | @Override | ||
53 | public List<RightsDTO> queryAll(RightsQueryCriteria criteria) { | ||
54 | return RightsMapper.toDto(RightsRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); | ||
55 | } | ||
56 | 30 | ||
57 | @Override | 31 | @Override |
58 | public RightsDTO findById(Long id) { | 32 | public RightsDTO findById(Long id) { |
... | @@ -62,45 +36,6 @@ public class RightsServiceImpl implements RightsService { | ... | @@ -62,45 +36,6 @@ public class RightsServiceImpl implements RightsService { |
62 | } | 36 | } |
63 | 37 | ||
64 | @Override | 38 | @Override |
65 | public List<RightsDTO> findBatchByIds(Long... ids) { | ||
66 | List<Rights> rightsList = this.RightsRepository.findBatchByIds(ids); | ||
67 | return !CollectionUtils.isEmpty(rightsList) ? RightsMapper.toDto(rightsList) : null; | ||
68 | } | ||
69 | |||
70 | @Override | ||
71 | @Transactional(rollbackFor = Exception.class) | ||
72 | public void create(Rights resources) { | ||
73 | RightsRepository.save(resources); | ||
74 | } | ||
75 | |||
76 | @Override | ||
77 | @Transactional(rollbackFor = Exception.class) | ||
78 | public void update(Rights resources) { | ||
79 | RLock rLock = this.redissonClient.getLock(resources.getId().toString()); | ||
80 | try { | ||
81 | Rights Rights = RightsRepository.findById(resources.getId()).orElseGet(Rights::new); | ||
82 | ValidationUtil.isNull( Rights.getId(),"Rights","id",resources.getId()); | ||
83 | Rights.copy(resources); | ||
84 | RightsRepository.save(Rights); | ||
85 | } catch (Exception e) { | ||
86 | e.printStackTrace(); | ||
87 | throw e; | ||
88 | } finally { | ||
89 | rLock.unlock(); | ||
90 | } | ||
91 | } | ||
92 | |||
93 | @Override | ||
94 | @Transactional(rollbackFor = Exception.class) | ||
95 | public void delete(Long id) { | ||
96 | Assert.notNull(id, "The given id must not be null!"); | ||
97 | Rights Rights = RightsRepository.findById(id).orElseThrow( | ||
98 | () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", Rights.class, id), 1)); | ||
99 | RightsRepository.delete(Rights); | ||
100 | } | ||
101 | |||
102 | |||
103 | @Override | ||
104 | public RightsDTO getByCode(String code) { | 39 | public RightsDTO getByCode(String code) { |
105 | return StringUtils.isNotEmpty(code) ? RightsMapper.toDto(RightsRepository.findFirstByCode(code).orElseGet(Rights::new)) | 40 | return StringUtils.isNotEmpty(code) ? RightsMapper.toDto(RightsRepository.findFirstByCode(code).orElseGet(Rights::new)) |
106 | : new RightsDTO(); | 41 | : new RightsDTO(); | ... | ... |
... | @@ -2,11 +2,16 @@ package com.topdraw.business.process.rest; | ... | @@ -2,11 +2,16 @@ package com.topdraw.business.process.rest; |
2 | 2 | ||
3 | import cn.hutool.core.util.ObjectUtil; | 3 | import cn.hutool.core.util.ObjectUtil; |
4 | import com.topdraw.annotation.AnonymousAccess; | 4 | import com.topdraw.annotation.AnonymousAccess; |
5 | import com.topdraw.aop.log.Log; | ||
6 | import com.topdraw.business.module.common.validated.CreateGroup; | ||
7 | import com.topdraw.business.module.common.validated.UpdateGroup; | ||
8 | import com.topdraw.business.module.member.domain.Member; | ||
5 | import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO; | 9 | import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO; |
6 | import com.topdraw.business.module.member.service.MemberService; | 10 | import com.topdraw.business.module.member.service.MemberService; |
7 | import com.topdraw.business.module.member.service.dto.MemberDTO; | 11 | import com.topdraw.business.module.member.service.dto.MemberDTO; |
8 | import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory; | 12 | import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory; |
9 | import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService; | 13 | import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService; |
14 | import com.topdraw.business.module.user.iptv.domain.UserTv; | ||
10 | import com.topdraw.business.module.user.weixin.service.UserWeixinService; | 15 | import com.topdraw.business.module.user.weixin.service.UserWeixinService; |
11 | import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO; | 16 | import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO; |
12 | import com.topdraw.business.process.domian.weixin.BuyVipBean; | 17 | import com.topdraw.business.process.domian.weixin.BuyVipBean; |
... | @@ -16,7 +21,9 @@ import com.topdraw.common.ResultInfo; | ... | @@ -16,7 +21,9 @@ import com.topdraw.common.ResultInfo; |
16 | import com.topdraw.exception.BadRequestException; | 21 | import com.topdraw.exception.BadRequestException; |
17 | import io.swagger.annotations.Api; | 22 | import io.swagger.annotations.Api; |
18 | import io.swagger.annotations.ApiOperation; | 23 | import io.swagger.annotations.ApiOperation; |
24 | import lombok.extern.slf4j.Slf4j; | ||
19 | import org.springframework.beans.factory.annotation.Autowired; | 25 | import org.springframework.beans.factory.annotation.Autowired; |
26 | import org.springframework.validation.annotation.Validated; | ||
20 | import org.springframework.web.bind.annotation.*; | 27 | import org.springframework.web.bind.annotation.*; |
21 | 28 | ||
22 | import java.time.LocalDateTime; | 29 | import java.time.LocalDateTime; |
... | @@ -25,6 +32,8 @@ import java.util.Objects; | ... | @@ -25,6 +32,8 @@ import java.util.Objects; |
25 | @Api("会员处理") | 32 | @Api("会员处理") |
26 | @RestController | 33 | @RestController |
27 | @RequestMapping(value = "/ucEngine/api/memberOperation") | 34 | @RequestMapping(value = "/ucEngine/api/memberOperation") |
35 | @CrossOrigin | ||
36 | @Slf4j | ||
28 | public class MemberOperationController { | 37 | public class MemberOperationController { |
29 | 38 | ||
30 | @Autowired | 39 | @Autowired |
... | @@ -36,6 +45,31 @@ public class MemberOperationController { | ... | @@ -36,6 +45,31 @@ public class MemberOperationController { |
36 | @Autowired | 45 | @Autowired |
37 | private MemberService memberService; | 46 | private MemberService memberService; |
38 | 47 | ||
48 | @Log("查询会员") | ||
49 | @GetMapping(value = "/findById/{id}") | ||
50 | @ApiOperation("查询会员") | ||
51 | @AnonymousAccess | ||
52 | public ResultInfo findById(@PathVariable(value = "id") Long id) { | ||
53 | log.info("memberOperation ==>> findById ==>> param ==>> [{}]",id); | ||
54 | MemberDTO memberDTO = this.memberOperationService.findById(id); | ||
55 | log.info("memberOperation ==>> findById ==>> result ==>> [{}]",memberDTO); | ||
56 | return ResultInfo.success(memberDTO); | ||
57 | } | ||
58 | |||
59 | @Log("手动修改vip") | ||
60 | @RequestMapping(value = "/doUpdateVipByCode") | ||
61 | @ApiOperation("手动修改vip") | ||
62 | @AnonymousAccess | ||
63 | public ResultInfo doUpdateVipByCode(@Validated(value = {UpdateGroup.class}) @RequestBody Member resources) { | ||
64 | log.info("member ==>> doUpdateVipByCode ==>> param ==>> [{}]",resources); | ||
65 | |||
66 | MemberDTO memberDTO = this.memberService.findByCode(resources.getCode()); | ||
67 | resources.setId(memberDTO.getId()); | ||
68 | this.memberOperationService.update(resources); | ||
69 | log.info("member ==>> doUpdateVipByCode ==>> result ==>> [{}]",resources); | ||
70 | return ResultInfo.success(); | ||
71 | } | ||
72 | |||
39 | @GetMapping("/getMemberProfileAndCheckVip/{appId}/{memberId}") | 73 | @GetMapping("/getMemberProfileAndCheckVip/{appId}/{memberId}") |
40 | @ApiOperation("获取会员基本信息并且检查vip状态") | 74 | @ApiOperation("获取会员基本信息并且检查vip状态") |
41 | @AnonymousAccess | 75 | @AnonymousAccess | ... | ... |
... | @@ -11,13 +11,13 @@ public interface MemberOperationService { | ... | @@ -11,13 +11,13 @@ public interface MemberOperationService { |
11 | * | 11 | * |
12 | * @param member | 12 | * @param member |
13 | */ | 13 | */ |
14 | void doUpdateMemberInfo(Member member); | 14 | MemberDTO doUpdateMemberInfo(Member member); |
15 | 15 | ||
16 | /** | 16 | /** |
17 | * | 17 | * |
18 | * @param member | 18 | * @param member |
19 | */ | 19 | */ |
20 | void doInsertMember(Member member); | 20 | MemberDTO doInsertMember(Member member); |
21 | 21 | ||
22 | /** | 22 | /** |
23 | * | 23 | * |
... | @@ -30,19 +30,19 @@ public interface MemberOperationService { | ... | @@ -30,19 +30,19 @@ public interface MemberOperationService { |
30 | * | 30 | * |
31 | * @param member | 31 | * @param member |
32 | */ | 32 | */ |
33 | void doUpdateMemberExp(Member member); | 33 | MemberDTO doUpdateMemberExp(Member member); |
34 | 34 | ||
35 | /** | 35 | /** |
36 | * | 36 | * |
37 | * @param member | 37 | * @param member |
38 | */ | 38 | */ |
39 | void doUpdateMemberPoints(Member member); | 39 | MemberDTO doUpdateMemberPoints(Member member); |
40 | 40 | ||
41 | /** | 41 | /** |
42 | * | 42 | * |
43 | * @param member | 43 | * @param member |
44 | */ | 44 | */ |
45 | void doUpdateMemberCoupon(Member member); | 45 | MemberDTO doUpdateMemberCoupon(Member member); |
46 | 46 | ||
47 | /** | 47 | /** |
48 | * | 48 | * |
... | @@ -63,5 +63,6 @@ public interface MemberOperationService { | ... | @@ -63,5 +63,6 @@ public interface MemberOperationService { |
63 | * 修改会员 | 63 | * 修改会员 |
64 | * @param resources | 64 | * @param resources |
65 | */ | 65 | */ |
66 | void update(Member resources); | 66 | MemberDTO update(Member resources); |
67 | |||
67 | } | 68 | } | ... | ... |
... | @@ -11,10 +11,7 @@ import com.topdraw.business.process.service.CouponOperationService; | ... | @@ -11,10 +11,7 @@ import com.topdraw.business.process.service.CouponOperationService; |
11 | import com.topdraw.business.process.service.MemberOperationService; | 11 | import com.topdraw.business.process.service.MemberOperationService; |
12 | import com.topdraw.business.process.domian.TempCoupon; | 12 | import com.topdraw.business.process.domian.TempCoupon; |
13 | import com.topdraw.business.process.service.RightsOperationService; | 13 | import com.topdraw.business.process.service.RightsOperationService; |
14 | import com.topdraw.util.RedissonUtil; | 14 | import com.topdraw.utils.RedisUtils; |
15 | import com.topdraw.util.TimestampUtil; | ||
16 | import org.redisson.api.RLock; | ||
17 | import org.redisson.api.RedissonClient; | ||
18 | import org.slf4j.Logger; | 15 | import org.slf4j.Logger; |
19 | import org.slf4j.LoggerFactory; | 16 | import org.slf4j.LoggerFactory; |
20 | import org.springframework.beans.BeanUtils; | 17 | import org.springframework.beans.BeanUtils; |
... | @@ -22,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired; | ... | @@ -22,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired; |
22 | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | 19 | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
23 | import org.springframework.stereotype.Service; | 20 | import org.springframework.stereotype.Service; |
24 | 21 | ||
25 | import java.sql.Timestamp; | ||
26 | import java.time.LocalDateTime; | 22 | import java.time.LocalDateTime; |
27 | import java.util.List; | 23 | import java.util.List; |
28 | import java.util.Objects; | 24 | import java.util.Objects; |
... | @@ -43,11 +39,13 @@ public class CouponOperationServiceImpl implements CouponOperationService { | ... | @@ -43,11 +39,13 @@ public class CouponOperationServiceImpl implements CouponOperationService { |
43 | RightsOperationService rightsOperationService; | 39 | RightsOperationService rightsOperationService; |
44 | @Autowired | 40 | @Autowired |
45 | MemberService memberService; | 41 | MemberService memberService; |
46 | @Autowired | 42 | |
47 | RedissonClient redissonClient; | ||
48 | @Autowired | 43 | @Autowired |
49 | ThreadPoolTaskExecutor threadPoolTaskExecutor; | 44 | ThreadPoolTaskExecutor threadPoolTaskExecutor; |
50 | 45 | ||
46 | @Autowired | ||
47 | private RedisUtils redisUtils; | ||
48 | |||
51 | // 过期阀值(默认一个月) | 49 | // 过期阀值(默认一个月) |
52 | private static final Integer EXPIRE_FACTOR_DAY = 30; | 50 | private static final Integer EXPIRE_FACTOR_DAY = 30; |
53 | 51 | ||
... | @@ -94,9 +92,8 @@ public class CouponOperationServiceImpl implements CouponOperationService { | ... | @@ -94,9 +92,8 @@ public class CouponOperationServiceImpl implements CouponOperationService { |
94 | // Long userId = tempCoupon.getUserId(); | 92 | // Long userId = tempCoupon.getUserId(); |
95 | Long memberId = tempCoupon.getMemberId(); | 93 | Long memberId = tempCoupon.getMemberId(); |
96 | Integer rightsAmount = tempCoupon.getRightsAmount(); | 94 | Integer rightsAmount = tempCoupon.getRightsAmount(); |
97 | RLock rLock = this.redissonClient.getLock("refreshMemberCoupon:" + memberId.toString()); | ||
98 | try { | 95 | try { |
99 | RedissonUtil.lock(rLock); | 96 | this.redisUtils.doLock("refreshMemberCoupon:" + memberId.toString()); |
100 | // 1.历史总优惠券数量 | 97 | // 1.历史总优惠券数量 |
101 | Long historyCouponCount = this.getTotalHistoryCoupon(memberId); | 98 | Long historyCouponCount = this.getTotalHistoryCoupon(memberId); |
102 | // 1.当前总优惠券数量 | 99 | // 1.当前总优惠券数量 |
... | @@ -113,7 +110,7 @@ public class CouponOperationServiceImpl implements CouponOperationService { | ... | @@ -113,7 +110,7 @@ public class CouponOperationServiceImpl implements CouponOperationService { |
113 | e.printStackTrace(); | 110 | e.printStackTrace(); |
114 | throw e; | 111 | throw e; |
115 | } finally { | 112 | } finally { |
116 | RedissonUtil.unlock(rLock); | 113 | this.redisUtils.doUnLock("refreshMemberCoupon:" + memberId.toString()); |
117 | } | 114 | } |
118 | } | 115 | } |
119 | 116 | ... | ... |
... | @@ -12,11 +12,8 @@ import com.topdraw.business.process.service.ExpOperationService; | ... | @@ -12,11 +12,8 @@ import com.topdraw.business.process.service.ExpOperationService; |
12 | import com.topdraw.business.process.service.MemberOperationService; | 12 | import com.topdraw.business.process.service.MemberOperationService; |
13 | import com.topdraw.business.process.domian.TempExp; | 13 | import com.topdraw.business.process.domian.TempExp; |
14 | import com.topdraw.util.IdWorker; | 14 | import com.topdraw.util.IdWorker; |
15 | import com.topdraw.util.RedissonUtil; | 15 | import com.topdraw.utils.RedisUtils; |
16 | import com.topdraw.util.TimestampUtil; | ||
17 | import com.topdraw.utils.StringUtils; | 16 | import com.topdraw.utils.StringUtils; |
18 | import org.redisson.api.RLock; | ||
19 | import org.redisson.api.RedissonClient; | ||
20 | import org.slf4j.Logger; | 17 | import org.slf4j.Logger; |
21 | import org.slf4j.LoggerFactory; | 18 | import org.slf4j.LoggerFactory; |
22 | import org.springframework.beans.BeanUtils; | 19 | import org.springframework.beans.BeanUtils; |
... | @@ -45,11 +42,13 @@ public class ExpOperationServiceImpl implements ExpOperationService { | ... | @@ -45,11 +42,13 @@ public class ExpOperationServiceImpl implements ExpOperationService { |
45 | MemberLevelService memberLevelService; | 42 | MemberLevelService memberLevelService; |
46 | @Autowired | 43 | @Autowired |
47 | MemberService memberService; | 44 | MemberService memberService; |
48 | @Autowired | 45 | |
49 | RedissonClient redissonClient; | ||
50 | @Autowired | 46 | @Autowired |
51 | ThreadPoolTaskExecutor threadPoolTaskExecutor; | 47 | ThreadPoolTaskExecutor threadPoolTaskExecutor; |
52 | 48 | ||
49 | @Autowired | ||
50 | private RedisUtils redisUtils; | ||
51 | |||
53 | @Override | 52 | @Override |
54 | @AsyncMqSend | 53 | @AsyncMqSend |
55 | public void grantPointsThroughTempExp(List<TempExp> tempExpList) { | 54 | public void grantPointsThroughTempExp(List<TempExp> tempExpList) { |
... | @@ -80,9 +79,8 @@ public class ExpOperationServiceImpl implements ExpOperationService { | ... | @@ -80,9 +79,8 @@ public class ExpOperationServiceImpl implements ExpOperationService { |
80 | * @param tempExp | 79 | * @param tempExp |
81 | */ | 80 | */ |
82 | private void refresh(TempExp tempExp) { | 81 | private void refresh(TempExp tempExp) { |
83 | RLock lock = this.redissonClient.getLock("uc-refresh-exp:" + tempExp.getMemberId()); | ||
84 | try { | 82 | try { |
85 | RedissonUtil.lock(lock); | 83 | this.redisUtils.doLock("uc-refresh-exp:" + tempExp.getMemberId()); |
86 | // 原始积分 | 84 | // 原始积分 |
87 | long originExp = this.getExpByMemberId(tempExp); | 85 | long originExp = this.getExpByMemberId(tempExp); |
88 | // 总积分 | 86 | // 总积分 |
... | @@ -98,7 +96,7 @@ public class ExpOperationServiceImpl implements ExpOperationService { | ... | @@ -98,7 +96,7 @@ public class ExpOperationServiceImpl implements ExpOperationService { |
98 | e.printStackTrace(); | 96 | e.printStackTrace(); |
99 | throw e; | 97 | throw e; |
100 | } finally { | 98 | } finally { |
101 | RedissonUtil.unlock(lock); | 99 | this.redisUtils.doUnLock("uc-refresh-exp:" + tempExp.getMemberId()); |
102 | } | 100 | } |
103 | } | 101 | } |
104 | 102 | ... | ... |
... | @@ -16,6 +16,10 @@ import com.topdraw.business.process.service.MemberOperationService; | ... | @@ -16,6 +16,10 @@ import com.topdraw.business.process.service.MemberOperationService; |
16 | import com.topdraw.exception.EntityNotFoundException; | 16 | import com.topdraw.exception.EntityNotFoundException; |
17 | import org.springframework.beans.BeanUtils; | 17 | import org.springframework.beans.BeanUtils; |
18 | import org.springframework.beans.factory.annotation.Autowired; | 18 | import org.springframework.beans.factory.annotation.Autowired; |
19 | import org.springframework.cache.annotation.CacheConfig; | ||
20 | import org.springframework.cache.annotation.CacheEvict; | ||
21 | import org.springframework.cache.annotation.CachePut; | ||
22 | import org.springframework.cache.annotation.Cacheable; | ||
19 | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | 23 | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
20 | import org.springframework.stereotype.Service; | 24 | import org.springframework.stereotype.Service; |
21 | import org.springframework.util.Assert; | 25 | import org.springframework.util.Assert; |
... | @@ -25,6 +29,7 @@ import java.time.ZoneOffset; | ... | @@ -25,6 +29,7 @@ import java.time.ZoneOffset; |
25 | import java.util.Objects; | 29 | import java.util.Objects; |
26 | 30 | ||
27 | @Service | 31 | @Service |
32 | @CacheConfig(cacheNames = "member") | ||
28 | public class MemberOperationServiceImpl implements MemberOperationService { | 33 | public class MemberOperationServiceImpl implements MemberOperationService { |
29 | 34 | ||
30 | @Autowired | 35 | @Autowired |
... | @@ -38,14 +43,15 @@ public class MemberOperationServiceImpl implements MemberOperationService { | ... | @@ -38,14 +43,15 @@ public class MemberOperationServiceImpl implements MemberOperationService { |
38 | @Autowired | 43 | @Autowired |
39 | private ThreadPoolTaskExecutor threadPoolTaskExecutor; | 44 | private ThreadPoolTaskExecutor threadPoolTaskExecutor; |
40 | 45 | ||
46 | @CachePut(key = "#resources.memberId") | ||
41 | @Override | 47 | @Override |
42 | public MemberDTO buyVip(BuyVipBean criteria) { | 48 | public MemberDTO buyVip(BuyVipBean resources) { |
43 | // 小程序账户id | 49 | // 小程序账户id |
44 | Long id = criteria.getId(); | 50 | Long id = resources.getId(); |
45 | 51 | ||
46 | // 过期时间 | 52 | // 过期时间 |
47 | LocalDateTime vipExpireTime1 = criteria.getVipExpireTime(); | 53 | LocalDateTime vipExpireTime1 = resources.getVipExpireTime(); |
48 | Integer vip1 = criteria.getVip(); | 54 | Integer vip1 = resources.getVip(); |
49 | 55 | ||
50 | // 查询微信账户 | 56 | // 查询微信账户 |
51 | UserWeixinDTO userWeixin = this.findWeiXinById(id); | 57 | UserWeixinDTO userWeixin = this.findWeiXinById(id); |
... | @@ -90,11 +96,14 @@ public class MemberOperationServiceImpl implements MemberOperationService { | ... | @@ -90,11 +96,14 @@ public class MemberOperationServiceImpl implements MemberOperationService { |
90 | return memberDTO; | 96 | return memberDTO; |
91 | } | 97 | } |
92 | 98 | ||
99 | @CachePut(key = "#resources.id") | ||
93 | @Override | 100 | @Override |
94 | public void update(Member resources) { | 101 | public MemberDTO update(Member resources) { |
95 | this.memberService.update(resources); | 102 | MemberDTO member = this.memberService.update(resources); |
103 | return member; | ||
96 | } | 104 | } |
97 | 105 | ||
106 | |||
98 | private UserWeixinDTO findWeiXinById(Long id) { | 107 | private UserWeixinDTO findWeiXinById(Long id) { |
99 | UserWeixinDTO userWeixinDTO = this.userWeixinService.findById(id); | 108 | UserWeixinDTO userWeixinDTO = this.userWeixinService.findById(id); |
100 | if (Objects.isNull(userWeixinDTO)) { | 109 | if (Objects.isNull(userWeixinDTO)) { |
... | @@ -105,35 +114,40 @@ public class MemberOperationServiceImpl implements MemberOperationService { | ... | @@ -105,35 +114,40 @@ public class MemberOperationServiceImpl implements MemberOperationService { |
105 | } | 114 | } |
106 | 115 | ||
107 | @Override | 116 | @Override |
108 | public void doUpdateMemberInfo(Member member) { | 117 | public MemberDTO doUpdateMemberInfo(Member resources) { |
109 | Long id = member.getId(); | 118 | Long id = resources.getId(); |
110 | Assert.notNull(id,"ERROR MSG: MemberOperationServiceImpl -> doUpdateMemberInfo -> id not be null!!"); | 119 | Assert.notNull(id,"ERROR MSG: MemberOperationServiceImpl -> doUpdateMemberInfo -> id not be null!!"); |
111 | this.memberService.update(member); | 120 | return this.update(resources); |
112 | } | 121 | } |
113 | 122 | ||
123 | @CachePut(key = "#resources.id") | ||
114 | @Override | 124 | @Override |
115 | public void doInsertMember(Member member) { | 125 | public MemberDTO doInsertMember(Member resources) { |
116 | this.memberService.create(member); | 126 | return this.memberService.create(resources); |
117 | } | 127 | } |
118 | 128 | ||
129 | @Cacheable(key = "#memberId") | ||
119 | @Override | 130 | @Override |
120 | public MemberDTO findById(Long memberId) { | 131 | public MemberDTO findById(Long memberId) { |
121 | return Objects.nonNull(memberId) ? this.memberService.findById(memberId) : null; | 132 | MemberDTO memberDTO = this.memberService.findById(memberId); |
133 | return Objects.nonNull(memberId) ? memberDTO : null; | ||
122 | } | 134 | } |
123 | 135 | ||
124 | @Override | 136 | @Override |
125 | public void doUpdateMemberExp(Member member) { | 137 | public MemberDTO doUpdateMemberExp(Member member) { |
126 | this.doUpdateMemberInfo(member); | 138 | return this.update(member); |
127 | } | 139 | } |
128 | 140 | ||
141 | |||
142 | @CachePut(key = "#resources.id") | ||
129 | @Override | 143 | @Override |
130 | public void doUpdateMemberPoints(Member member) { | 144 | public MemberDTO doUpdateMemberPoints(Member resources) { |
131 | this.memberService.doUpdateMemberPoints(member); | 145 | return this.memberService.doUpdateMemberPoints(resources); |
132 | } | 146 | } |
133 | 147 | ||
134 | @Override | 148 | @Override |
135 | public void doUpdateMemberCoupon(Member member) { | 149 | public MemberDTO doUpdateMemberCoupon(Member member) { |
136 | this.doUpdateMemberInfo(member); | 150 | return this.update(member); |
137 | } | 151 | } |
138 | 152 | ||
139 | @Override | 153 | @Override | ... | ... |
... | @@ -17,12 +17,10 @@ import com.topdraw.business.process.service.MemberOperationService; | ... | @@ -17,12 +17,10 @@ import com.topdraw.business.process.service.MemberOperationService; |
17 | import com.topdraw.business.process.service.PointsOperationService; | 17 | import com.topdraw.business.process.service.PointsOperationService; |
18 | import com.topdraw.business.process.domian.TempPoints; | 18 | import com.topdraw.business.process.domian.TempPoints; |
19 | import com.topdraw.util.IdWorker; | 19 | import com.topdraw.util.IdWorker; |
20 | import com.topdraw.util.RedissonUtil; | ||
21 | import com.topdraw.util.TimestampUtil; | 20 | import com.topdraw.util.TimestampUtil; |
21 | import com.topdraw.utils.RedisUtils; | ||
22 | import com.topdraw.utils.StringUtils; | 22 | import com.topdraw.utils.StringUtils; |
23 | import lombok.extern.slf4j.Slf4j; | 23 | import lombok.extern.slf4j.Slf4j; |
24 | import org.redisson.api.RLock; | ||
25 | import org.redisson.api.RedissonClient; | ||
26 | import org.slf4j.Logger; | 24 | import org.slf4j.Logger; |
27 | import org.slf4j.LoggerFactory; | 25 | import org.slf4j.LoggerFactory; |
28 | import org.springframework.beans.BeanUtils; | 26 | import org.springframework.beans.BeanUtils; |
... | @@ -60,16 +58,18 @@ public class PointsOperationServiceImpl implements PointsOperationService { | ... | @@ -60,16 +58,18 @@ public class PointsOperationServiceImpl implements PointsOperationService { |
60 | @Autowired | 58 | @Autowired |
61 | MemberService memberService; | 59 | MemberService memberService; |
62 | 60 | ||
61 | @Autowired | ||
62 | private RedisUtils redisUtils; | ||
63 | @Autowired | ||
64 | ThreadPoolTaskExecutor threadPoolTaskExecutor; | ||
65 | |||
63 | // 过期阈值 30天 | 66 | // 过期阈值 30天 |
64 | private static final Integer EXPIRE_FACTOR = 30; | 67 | private static final Integer EXPIRE_FACTOR = 30; |
65 | 68 | ||
66 | private static final String DELETE_AVAILABLE_POINTS = "delete"; | 69 | private static final String DELETE_AVAILABLE_POINTS = "delete"; |
67 | private static final String INSERT_AVAILABLE_POINTS = "insert"; | 70 | private static final String INSERT_AVAILABLE_POINTS = "insert"; |
68 | 71 | ||
69 | @Autowired | 72 | |
70 | RedissonClient redissonClient; | ||
71 | @Autowired | ||
72 | ThreadPoolTaskExecutor threadPoolTaskExecutor; | ||
73 | 73 | ||
74 | @Override | 74 | @Override |
75 | @Transactional(rollbackFor = Exception.class) | 75 | @Transactional(rollbackFor = Exception.class) |
... | @@ -104,9 +104,8 @@ public class PointsOperationServiceImpl implements PointsOperationService { | ... | @@ -104,9 +104,8 @@ public class PointsOperationServiceImpl implements PointsOperationService { |
104 | 104 | ||
105 | Long memberId = tempPoints.getMemberId(); | 105 | Long memberId = tempPoints.getMemberId(); |
106 | 106 | ||
107 | RLock rLock = this.redissonClient.getLock("member::id::" + memberId.toString()); | ||
108 | try { | 107 | try { |
109 | RedissonUtil.lock(rLock); | 108 | this.redisUtils.doLock("member::id::" + memberId.toString()); |
110 | //1.删除过期的积分 | 109 | //1.删除过期的积分 |
111 | this.cleanInvalidAvailablePointsByMemberId(memberId); | 110 | this.cleanInvalidAvailablePointsByMemberId(memberId); |
112 | // 1.判断可用积分是否够用 | 111 | // 1.判断可用积分是否够用 |
... | @@ -139,7 +138,7 @@ public class PointsOperationServiceImpl implements PointsOperationService { | ... | @@ -139,7 +138,7 @@ public class PointsOperationServiceImpl implements PointsOperationService { |
139 | e.printStackTrace(); | 138 | e.printStackTrace(); |
140 | throw e; | 139 | throw e; |
141 | } finally { | 140 | } finally { |
142 | RedissonUtil.unlock(rLock); | 141 | this.redisUtils.doUnLock("member::id::" + memberId.toString()); |
143 | } | 142 | } |
144 | 143 | ||
145 | return customPointsResult; | 144 | return customPointsResult; |
... | @@ -414,11 +413,8 @@ public class PointsOperationServiceImpl implements PointsOperationService { | ... | @@ -414,11 +413,8 @@ public class PointsOperationServiceImpl implements PointsOperationService { |
414 | private void refresh(TempPoints tempPoints) { | 413 | private void refresh(TempPoints tempPoints) { |
415 | Long memberId = tempPoints.getMemberId(); | 414 | Long memberId = tempPoints.getMemberId(); |
416 | log.info("----------->> 会员id ===>>>>" + memberId); | 415 | log.info("----------->> 会员id ===>>>>" + memberId); |
417 | RLock rLock = this.redissonClient.getLock("member::id::" + memberId.toString()); | ||
418 | log.info("----------->> rLock --->> start" ); | ||
419 | try { | 416 | try { |
420 | RedissonUtil.lock(rLock); | 417 | this.redisUtils.doLock("member::id::" + memberId.toString()); |
421 | |||
422 | // 1.可用总积分 | 418 | // 1.可用总积分 |
423 | Long currentPoints = this.findAvailablePointsByMemberId(memberId); | 419 | Long currentPoints = this.findAvailablePointsByMemberId(memberId); |
424 | log.info("----------->> 可用总积分 --->>>> " + currentPoints); | 420 | log.info("----------->> 可用总积分 --->>>> " + currentPoints); |
... | @@ -447,7 +443,7 @@ public class PointsOperationServiceImpl implements PointsOperationService { | ... | @@ -447,7 +443,7 @@ public class PointsOperationServiceImpl implements PointsOperationService { |
447 | e.printStackTrace(); | 443 | e.printStackTrace(); |
448 | throw e; | 444 | throw e; |
449 | } finally { | 445 | } finally { |
450 | RedissonUtil.unlock(rLock); | 446 | this.redisUtils.doUnLock("member::id::" + memberId.toString()); |
451 | } | 447 | } |
452 | } | 448 | } |
453 | 449 | ... | ... |
... | @@ -1063,7 +1063,7 @@ public class UserOperationServiceImpl implements UserOperationService { | ... | @@ -1063,7 +1063,7 @@ public class UserOperationServiceImpl implements UserOperationService { |
1063 | * @return | 1063 | * @return |
1064 | */ | 1064 | */ |
1065 | private Long createMember(Member member){ | 1065 | private Long createMember(Member member){ |
1066 | return this.memberService.create(member); | 1066 | return this.memberService.create(member).getId(); |
1067 | } | 1067 | } |
1068 | 1068 | ||
1069 | /** | 1069 | /** | ... | ... |
1 | package com.topdraw.config; | ||
2 | |||
3 | import com.topdraw.utils.StringUtils; | ||
4 | import org.redisson.Redisson; | ||
5 | import org.redisson.api.RedissonClient; | ||
6 | import org.redisson.config.Config; | ||
7 | import org.springframework.beans.factory.annotation.Value; | ||
8 | import org.springframework.context.annotation.Bean; | ||
9 | import org.springframework.context.annotation.Configuration; | ||
10 | |||
11 | @Configuration | ||
12 | public class RedissonConfig { | ||
13 | |||
14 | // @Value("122.112.214.149") | ||
15 | @Value("${spring.redis.host}") | ||
16 | private String redisHost; | ||
17 | |||
18 | @Value("${spring.redis.port}") | ||
19 | private String port; | ||
20 | |||
21 | @Value("${spring.redis.password}") | ||
22 | private String password; | ||
23 | |||
24 | @Bean | ||
25 | public Redisson redisson(){ | ||
26 | Config config = new Config(); | ||
27 | if (StringUtils.isNotEmpty(password)) { | ||
28 | config.useSingleServer().setAddress("redis://"+redisHost+":"+port).setPassword(password); | ||
29 | } else { | ||
30 | config.useSingleServer().setAddress("redis://"+redisHost+":"+port); | ||
31 | } | ||
32 | /* config.useClusterServers().addNodeAddress( | ||
33 | "redis://172.29.3.245:6375","redis://172.29.3.245:6376", "redis://172.29.3.245:6377", | ||
34 | "redis://172.29.3.245:6378","redis://172.29.3.245:6i379", "redis://172.29.3.245:6380") | ||
35 | .setPassword("a123456").setScanInterval(5000);*/ | ||
36 | Redisson redissonClient = (Redisson)Redisson.create(config); | ||
37 | return redissonClient; | ||
38 | } | ||
39 | |||
40 | } |
1 | package com.topdraw.util; | ||
2 | |||
3 | |||
4 | import org.redisson.api.RLock; | ||
5 | |||
6 | public class RedissonUtil { | ||
7 | |||
8 | public static void lock(RLock rLock){ | ||
9 | rLock.lock(); | ||
10 | } | ||
11 | |||
12 | |||
13 | public static void unlock(RLock rLock){ | ||
14 | if (rLock.isLocked() && rLock.isHeldByCurrentThread()) | ||
15 | rLock.unlock(); | ||
16 | } | ||
17 | |||
18 | /** | ||
19 | * 保存数据 | ||
20 | * @param key 键 | ||
21 | * @param value 值 | ||
22 | * @param validTime 过期时间 | ||
23 | */ | ||
24 | public static void doSave(String key , String value , Integer validTime){ | ||
25 | |||
26 | } | ||
27 | |||
28 | } |
-
Please register or sign in to post a comment