1.优化、规范会员接口
Showing
8 changed files
with
115 additions
and
88 deletions
... | @@ -2,6 +2,7 @@ package com.topdraw.business.module.member.domain; | ... | @@ -2,6 +2,7 @@ package com.topdraw.business.module.member.domain; |
2 | 2 | ||
3 | import cn.hutool.core.bean.BeanUtil; | 3 | import cn.hutool.core.bean.BeanUtil; |
4 | import cn.hutool.core.bean.copier.CopyOptions; | 4 | import cn.hutool.core.bean.copier.CopyOptions; |
5 | import com.topdraw.business.module.member.relatedinfo.domain.UpdateGroup; | ||
5 | import lombok.Data; | 6 | import lombok.Data; |
6 | import lombok.experimental.Accessors; | 7 | import lombok.experimental.Accessors; |
7 | import org.springframework.data.annotation.CreatedDate; | 8 | import org.springframework.data.annotation.CreatedDate; |
... | @@ -9,6 +10,7 @@ import org.springframework.data.annotation.LastModifiedDate; | ... | @@ -9,6 +10,7 @@ import org.springframework.data.annotation.LastModifiedDate; |
9 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; | 10 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; |
10 | 11 | ||
11 | import javax.persistence.*; | 12 | import javax.persistence.*; |
13 | import javax.validation.constraints.NotNull; | ||
12 | import java.io.Serializable; | 14 | import java.io.Serializable; |
13 | import java.sql.Timestamp; | 15 | import java.sql.Timestamp; |
14 | import java.time.LocalDateTime; | 16 | import java.time.LocalDateTime; |
... | @@ -40,6 +42,7 @@ public class Member implements Serializable { | ... | @@ -40,6 +42,7 @@ public class Member implements Serializable { |
40 | 42 | ||
41 | /** 标识 */ | 43 | /** 标识 */ |
42 | @Column(name = "code", nullable = false) | 44 | @Column(name = "code", nullable = false) |
45 | @NotNull(message = "code can't be null!!",groups = {UpdateGroup.class}) | ||
43 | private String code; | 46 | private String code; |
44 | 47 | ||
45 | /** 类型 1:大屏;2:小屏 */ | 48 | /** 类型 1:大屏;2:小屏 */ | ... | ... |
... | @@ -14,9 +14,9 @@ import io.swagger.annotations.*; | ... | @@ -14,9 +14,9 @@ import io.swagger.annotations.*; |
14 | * @author XiangHan | 14 | * @author XiangHan |
15 | * @date 2021-11-17 | 15 | * @date 2021-11-17 |
16 | */ | 16 | */ |
17 | @Api(tags = "MemberGroup管理") | 17 | @Api(tags = "会员分组管理") |
18 | @RestController | 18 | @RestController |
19 | @RequestMapping("/api/MemberGroup") | 19 | @RequestMapping("/ucEngine/api/memberGroup") |
20 | public class MemberGroupController { | 20 | public class MemberGroupController { |
21 | 21 | ||
22 | @Autowired | 22 | @Autowired |
... | @@ -29,27 +29,27 @@ public class MemberGroupController { | ... | @@ -29,27 +29,27 @@ public class MemberGroupController { |
29 | } | 29 | } |
30 | 30 | ||
31 | @GetMapping(value = "/all") | 31 | @GetMapping(value = "/all") |
32 | @ApiOperation("查询所有MemberGroup") | 32 | @ApiOperation("查询所有会员分组") |
33 | public ResultInfo getMemberGroups(MemberGroupQueryCriteria criteria) { | 33 | public ResultInfo getMemberGroups(MemberGroupQueryCriteria criteria) { |
34 | return ResultInfo.success(MemberGroupService.queryAll(criteria)); | 34 | return ResultInfo.success(MemberGroupService.queryAll(criteria)); |
35 | } | 35 | } |
36 | 36 | ||
37 | @PostMapping | 37 | @PostMapping |
38 | @ApiOperation("新增MemberGroup") | 38 | @ApiOperation("新增会员分组") |
39 | public ResultInfo create(@Validated @RequestBody MemberGroup resources) { | 39 | public ResultInfo create(@Validated @RequestBody MemberGroup resources) { |
40 | MemberGroupService.create(resources); | 40 | MemberGroupService.create(resources); |
41 | return ResultInfo.success(); | 41 | return ResultInfo.success(); |
42 | } | 42 | } |
43 | 43 | ||
44 | @PutMapping | 44 | @PutMapping |
45 | @ApiOperation("修改MemberGroup") | 45 | @ApiOperation("修改会员分组") |
46 | public ResultInfo update(@Validated @RequestBody MemberGroup resources) { | 46 | public ResultInfo update(@Validated @RequestBody MemberGroup resources) { |
47 | MemberGroupService.update(resources); | 47 | MemberGroupService.update(resources); |
48 | return ResultInfo.success(); | 48 | return ResultInfo.success(); |
49 | } | 49 | } |
50 | 50 | ||
51 | @DeleteMapping(value = "/{id}") | 51 | @DeleteMapping(value = "/{id}") |
52 | @ApiOperation("删除MemberGroup") | 52 | @ApiOperation("删除会员分组") |
53 | public ResultInfo delete(@PathVariable Long id) { | 53 | public ResultInfo delete(@PathVariable Long id) { |
54 | MemberGroupService.delete(id); | 54 | MemberGroupService.delete(id); |
55 | return ResultInfo.success(); | 55 | return ResultInfo.success(); | ... | ... |
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.business.common.CreateGroup; | ||
5 | import com.topdraw.business.common.UpdateGroup; | ||
4 | import com.topdraw.business.module.member.domain.Member; | 6 | import com.topdraw.business.module.member.domain.Member; |
5 | import com.topdraw.business.module.member.service.MemberService; | 7 | import com.topdraw.business.module.member.service.MemberService; |
6 | import com.topdraw.business.module.member.service.dto.MemberDTO; | 8 | import com.topdraw.business.module.member.service.dto.MemberDTO; |
7 | import com.topdraw.business.module.user.iptv.domain.UserTv; | 9 | import com.topdraw.business.module.user.iptv.domain.UserTv; |
8 | import com.topdraw.business.process.service.UserOperationService; | 10 | import com.topdraw.business.process.service.UserOperationService; |
9 | import com.topdraw.common.ResultInfo; | 11 | import com.topdraw.common.ResultInfo; |
10 | import com.topdraw.util.Base64Util; | ||
11 | import io.swagger.annotations.Api; | 12 | import io.swagger.annotations.Api; |
12 | import io.swagger.annotations.ApiOperation; | 13 | import io.swagger.annotations.ApiOperation; |
13 | import lombok.extern.slf4j.Slf4j; | 14 | import lombok.extern.slf4j.Slf4j; |
14 | import org.springframework.beans.factory.annotation.Autowired; | 15 | import org.springframework.beans.factory.annotation.Autowired; |
15 | import org.springframework.util.Assert; | 16 | import org.springframework.util.Assert; |
16 | import org.springframework.util.StringUtils; | ||
17 | import org.springframework.validation.annotation.Validated; | 17 | import org.springframework.validation.annotation.Validated; |
18 | import org.springframework.web.bind.annotation.*; | 18 | import org.springframework.web.bind.annotation.*; |
19 | 19 | ||
... | @@ -24,7 +24,7 @@ import java.util.Objects; | ... | @@ -24,7 +24,7 @@ import java.util.Objects; |
24 | * @author XiangHan | 24 | * @author XiangHan |
25 | * @date 2021-10-22 | 25 | * @date 2021-10-22 |
26 | */ | 26 | */ |
27 | @Api(tags = "Member管理") | 27 | @Api(tags = "会员管理") |
28 | @RestController | 28 | @RestController |
29 | @RequestMapping("/ucEngine/api/member") | 29 | @RequestMapping("/ucEngine/api/member") |
30 | @CrossOrigin | 30 | @CrossOrigin |
... | @@ -33,66 +33,80 @@ public class MemberController { | ... | @@ -33,66 +33,80 @@ public class MemberController { |
33 | 33 | ||
34 | @Autowired | 34 | @Autowired |
35 | private MemberService memberService; | 35 | private MemberService memberService; |
36 | |||
37 | @Autowired | 36 | @Autowired |
38 | private UserOperationService userTvOperationService; | 37 | private UserOperationService userTvOperationService; |
39 | 38 | ||
39 | |||
40 | @Log("通过id查询会员") | ||
40 | @GetMapping(value = "/findById/{id}") | 41 | @GetMapping(value = "/findById/{id}") |
41 | @ApiOperation("新增UserTv会员") | 42 | @ApiOperation("通过id查询会员") |
42 | public ResultInfo findById(@PathVariable Long id) { | 43 | public ResultInfo findById(@PathVariable Long resources) { |
43 | MemberDTO memberDTO = this.memberService.findById(id); | 44 | |
45 | log.info("member ==>> findById ==>> param ==>> [{}]",resources); | ||
46 | Assert.notNull(resources,"id can't be null!!"); | ||
47 | |||
48 | MemberDTO memberDTO = this.memberService.findById(resources); | ||
49 | |||
50 | log.info("member ==>> findById ==>> memberDTO ==>> [{}]",memberDTO); | ||
51 | |||
44 | return ResultInfo.success(memberDTO); | 52 | return ResultInfo.success(memberDTO); |
45 | } | 53 | } |
46 | 54 | ||
55 | @Log("为大屏账户创建会员") | ||
47 | @PostMapping(value = "/createMemberByUserTv") | 56 | @PostMapping(value = "/createMemberByUserTv") |
48 | @ApiOperation("新增UserTv会员") | 57 | @ApiOperation("为大屏账户创建会员") |
49 | public ResultInfo createMemberByUserTv(@Validated @RequestBody UserTv resources) { | 58 | public ResultInfo createMemberByUserTv(@Validated(value = {CreateGroup.class}) @RequestBody UserTv resources) { |
59 | |||
60 | log.info("member ==>> createMemberByUserTv ==>> param ==>> [{}]",resources); | ||
61 | |||
50 | String platformAccount = resources.getPlatformAccount(); | 62 | String platformAccount = resources.getPlatformAccount(); |
51 | Assert.notNull(platformAccount, "The given platformAccount must not be null!"); | 63 | Assert.notNull(platformAccount, "The given platformAccount must not be null!"); |
64 | |||
52 | boolean result = this.userTvOperationService.createMemberByUserTv(resources); | 65 | boolean result = this.userTvOperationService.createMemberByUserTv(resources); |
66 | log.info("member ==>> createMemberByUserTv ==>> result ==>> [{}]",result); | ||
67 | |||
53 | return ResultInfo.success(result); | 68 | return ResultInfo.success(result); |
54 | } | 69 | } |
55 | 70 | ||
71 | @Log("新增会员") | ||
56 | @PostMapping(value = "/create") | 72 | @PostMapping(value = "/create") |
57 | @ApiOperation("新增Member") | 73 | @ApiOperation("新增会员") |
58 | @AnonymousAccess | ||
59 | public ResultInfo create(@Validated @RequestBody Member resources) { | 74 | public ResultInfo create(@Validated @RequestBody Member resources) { |
75 | log.info("member ==>> create ==>> param ==>> [{}]",resources); | ||
76 | |||
60 | Long id = memberService.create(resources); | 77 | Long id = memberService.create(resources); |
78 | |||
79 | log.info("member ==>> create ==>> result ==>> [{}]",resources); | ||
61 | return ResultInfo.success(id); | 80 | return ResultInfo.success(id); |
62 | } | 81 | } |
63 | 82 | ||
83 | @Log("手动修改vip") | ||
64 | @PostMapping(value = "/doUpdateVip") | 84 | @PostMapping(value = "/doUpdateVip") |
65 | @ApiOperation("修改Member等级") | 85 | @ApiOperation("手动修改vip") |
66 | public ResultInfo doUpdateVip(@RequestBody Member member) { | 86 | public ResultInfo doUpdateVip(@Validated @RequestBody Member resources) { |
67 | memberService.update(member); | 87 | // TODO mall-service需要修改 |
88 | log.info("member ==>> create ==>> param ==>> [{}]",resources); | ||
89 | memberService.update(resources); | ||
68 | return ResultInfo.success(); | 90 | return ResultInfo.success(); |
69 | } | 91 | } |
70 | 92 | ||
93 | @Log("修改会员") | ||
71 | @PutMapping(value = "/update") | 94 | @PutMapping(value = "/update") |
72 | @ApiOperation("修改Member") | 95 | @ApiOperation("修改会员") |
73 | @AnonymousAccess | 96 | public ResultInfo update(@Validated(value = {UpdateGroup.class}) @RequestBody Member resources) { |
74 | public ResultInfo update(@Validated @RequestBody Member resources) { | ||
75 | |||
76 | log.info("member ==>> update =>> [{}]",resources); | ||
77 | |||
78 | Long memberId = resources.getId(); | 97 | Long memberId = resources.getId(); |
79 | String code1 = resources.getCode(); | 98 | Assert.notNull(memberId,"memberId can't be null"); |
80 | MemberDTO memberDTO = null; | 99 | MemberDTO memberDTO = this.memberService.findById(memberId); |
81 | if (StringUtils.hasText(code1)) { | 100 | if (Objects.nonNull(memberDTO)) { |
82 | memberDTO = this.memberService.getByCode(code1); | ||
83 | if (Objects.isNull(memberDTO.getCode()) && Objects.nonNull(memberId)) { | ||
84 | memberDTO = this.memberService.findById(memberId); | ||
85 | } | ||
86 | } | ||
87 | |||
88 | String code = memberDTO.getCode(); | 101 | String code = memberDTO.getCode(); |
89 | log.info("member ==>> memberDTO =>> [{}]",memberDTO); | ||
90 | Assert.notNull(code, "code can't be null"); | 102 | Assert.notNull(code, "code can't be null"); |
91 | resources.setCode(code); | 103 | resources.setCode(code); |
92 | memberService.update(resources); | 104 | memberService.update(resources); |
105 | } | ||
93 | return ResultInfo.success(); | 106 | return ResultInfo.success(); |
94 | } | 107 | } |
95 | 108 | ||
109 | @Log("根据标识查询") | ||
96 | @GetMapping(value = "/getByCode/{code}") | 110 | @GetMapping(value = "/getByCode/{code}") |
97 | @ApiOperation(value = "根据标识查询") | 111 | @ApiOperation(value = "根据标识查询") |
98 | public ResultInfo getByCode(@PathVariable String code) { | 112 | public ResultInfo getByCode(@PathVariable String code) { | ... | ... |
1 | package com.topdraw.business.module.member.service; | 1 | package com.topdraw.business.module.member.service; |
2 | 2 | ||
3 | import com.topdraw.aspect.AsyncMqSend; | ||
4 | import com.topdraw.business.module.member.domain.Member; | 3 | import com.topdraw.business.module.member.domain.Member; |
5 | import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO; | ||
6 | import com.topdraw.business.module.member.service.dto.MemberDTO; | 4 | import com.topdraw.business.module.member.service.dto.MemberDTO; |
7 | import com.topdraw.business.module.member.service.dto.MemberQueryCriteria; | 5 | import com.topdraw.business.module.member.service.dto.MemberQueryCriteria; |
8 | import org.springframework.data.domain.Pageable; | 6 | import org.springframework.data.domain.Pageable; |
9 | import org.springframework.transaction.annotation.Transactional; | ||
10 | 7 | ||
11 | import java.util.List; | 8 | import java.util.List; |
12 | import java.util.Map; | 9 | import java.util.Map; |
... | @@ -18,15 +15,7 @@ import java.util.Map; | ... | @@ -18,15 +15,7 @@ import java.util.Map; |
18 | public interface MemberService { | 15 | public interface MemberService { |
19 | 16 | ||
20 | /** | 17 | /** |
21 | * 查询数据分页 | 18 | * 数据不分页 |
22 | * @param criteria 条件参数 | ||
23 | * @param pageable 分页参数 | ||
24 | * @return Map<String,Object> | ||
25 | */ | ||
26 | Map<String,Object> queryAll(MemberQueryCriteria criteria, Pageable pageable); | ||
27 | |||
28 | /** | ||
29 | * 查询所有数据不分页 | ||
30 | * @param criteria 条件参数 | 19 | * @param criteria 条件参数 |
31 | * @return List<MemberDTO> | 20 | * @return List<MemberDTO> |
32 | */ | 21 | */ |
... | @@ -40,25 +29,34 @@ public interface MemberService { | ... | @@ -40,25 +29,34 @@ public interface MemberService { |
40 | MemberDTO findById(Long id); | 29 | MemberDTO findById(Long id); |
41 | 30 | ||
42 | /** | 31 | /** |
43 | * | 32 | * 保存 |
44 | * @param resources | 33 | * @param resources |
45 | * @return | 34 | * @return Long id |
46 | */ | 35 | */ |
47 | Long create(Member resources); | 36 | Long create(Member resources); |
48 | 37 | ||
38 | /** | ||
39 | * 创建并返回会员 | ||
40 | * @param resources 会员 | ||
41 | * @return Member | ||
42 | */ | ||
49 | Member createAndReturnMember(Member resources); | 43 | Member createAndReturnMember(Member resources); |
50 | 44 | ||
51 | /** | 45 | /** |
52 | * | 46 | * 修改会员 |
53 | * @param resources | 47 | * @param resources |
54 | */ | 48 | */ |
55 | void update(Member resources); | 49 | void update(Member resources); |
56 | 50 | ||
57 | 51 | /** | |
52 | * 解绑 | ||
53 | * @param resources 会员 | ||
54 | * @return Map<String,Object> | ||
55 | */ | ||
58 | void unbind(Member resources); | 56 | void unbind(Member resources); |
59 | 57 | ||
60 | /** | 58 | /** |
61 | * | 59 | * 删除 |
62 | * @param id | 60 | * @param id |
63 | */ | 61 | */ |
64 | void delete(Long id); | 62 | void delete(Long id); |
... | @@ -76,5 +74,10 @@ public interface MemberService { | ... | @@ -76,5 +74,10 @@ public interface MemberService { |
76 | */ | 74 | */ |
77 | void doUpdateMemberPoints(Member member); | 75 | void doUpdateMemberPoints(Member member); |
78 | 76 | ||
77 | /** | ||
78 | * 查询数据分页 | ||
79 | * @param id 条件参数 | ||
80 | * @return Map<String,Object> | ||
81 | */ | ||
79 | List<MemberDTO> findByUserIptvId(Long id); | 82 | List<MemberDTO> findByUserIptvId(Long id); |
80 | } | 83 | } | ... | ... |
... | @@ -9,7 +9,6 @@ import com.topdraw.business.module.member.service.dto.MemberQueryCriteria; | ... | @@ -9,7 +9,6 @@ import com.topdraw.business.module.member.service.dto.MemberQueryCriteria; |
9 | import com.topdraw.business.module.member.service.mapper.MemberMapper; | 9 | import com.topdraw.business.module.member.service.mapper.MemberMapper; |
10 | import com.topdraw.util.IdWorker; | 10 | import com.topdraw.util.IdWorker; |
11 | import com.topdraw.util.RedissonUtil; | 11 | import com.topdraw.util.RedissonUtil; |
12 | import com.topdraw.utils.PageUtil; | ||
13 | import com.topdraw.utils.QueryHelp; | 12 | import com.topdraw.utils.QueryHelp; |
14 | import com.topdraw.utils.StringUtils; | 13 | import com.topdraw.utils.StringUtils; |
15 | import com.topdraw.utils.ValidationUtil; | 14 | import com.topdraw.utils.ValidationUtil; |
... | @@ -17,15 +16,10 @@ import lombok.extern.slf4j.Slf4j; | ... | @@ -17,15 +16,10 @@ import lombok.extern.slf4j.Slf4j; |
17 | import org.redisson.api.RLock; | 16 | import org.redisson.api.RLock; |
18 | import org.redisson.api.RedissonClient; | 17 | import org.redisson.api.RedissonClient; |
19 | import org.springframework.beans.factory.annotation.Autowired; | 18 | import org.springframework.beans.factory.annotation.Autowired; |
20 | import org.springframework.cache.annotation.CacheEvict; | ||
21 | import org.springframework.dao.EmptyResultDataAccessException; | 19 | import org.springframework.dao.EmptyResultDataAccessException; |
22 | import org.springframework.data.domain.Page; | ||
23 | import org.springframework.data.domain.Pageable; | ||
24 | import org.springframework.stereotype.Service; | 20 | import org.springframework.stereotype.Service; |
25 | import org.springframework.transaction.PlatformTransactionManager; | ||
26 | import org.springframework.transaction.annotation.Propagation; | 21 | import org.springframework.transaction.annotation.Propagation; |
27 | import org.springframework.transaction.annotation.Transactional; | 22 | import org.springframework.transaction.annotation.Transactional; |
28 | import org.springframework.util.Assert; | ||
29 | 23 | ||
30 | import java.nio.charset.StandardCharsets; | 24 | import java.nio.charset.StandardCharsets; |
31 | import java.util.*; | 25 | import java.util.*; |
... | @@ -40,26 +34,11 @@ import java.util.*; | ... | @@ -40,26 +34,11 @@ import java.util.*; |
40 | public class MemberServiceImpl implements MemberService { | 34 | public class MemberServiceImpl implements MemberService { |
41 | 35 | ||
42 | @Autowired | 36 | @Autowired |
43 | private MemberRepository memberRepository; | ||
44 | |||
45 | @Autowired | ||
46 | private MemberMapper memberMapper; | 37 | private MemberMapper memberMapper; |
47 | |||
48 | @Autowired | 38 | @Autowired |
49 | private RedissonClient redissonClient; | 39 | private RedissonClient redissonClient; |
50 | |||
51 | @Autowired | 40 | @Autowired |
52 | PlatformTransactionManager platformTransactionManager; | 41 | private MemberRepository memberRepository; |
53 | |||
54 | @Autowired | ||
55 | private com.topdraw.business.module.user.iptv.service.UserTvService UserTvService; | ||
56 | |||
57 | @Override | ||
58 | public Map<String, Object> queryAll(MemberQueryCriteria criteria, Pageable pageable) { | ||
59 | Page<Member> page = memberRepository.findAll((root, criteriaQuery, criteriaBuilder) | ||
60 | -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); | ||
61 | return PageUtil.toPage(page.map(memberMapper::toDto)); | ||
62 | } | ||
63 | 42 | ||
64 | @Override | 43 | @Override |
65 | public List<MemberDTO> queryAll(MemberQueryCriteria criteria) { | 44 | public List<MemberDTO> queryAll(MemberQueryCriteria criteria) { |
... | @@ -71,12 +50,11 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -71,12 +50,11 @@ public class MemberServiceImpl implements MemberService { |
71 | Member member = memberRepository.findById(id).orElseGet(Member::new); | 50 | Member member = memberRepository.findById(id).orElseGet(Member::new); |
72 | ValidationUtil.isNull(member.getId(),"Member","id",id); | 51 | ValidationUtil.isNull(member.getId(),"Member","id",id); |
73 | return memberMapper.toDto(member); | 52 | return memberMapper.toDto(member); |
74 | |||
75 | } | 53 | } |
76 | 54 | ||
77 | @Override | 55 | @Override |
78 | @Transactional(rollbackFor = Exception.class) | 56 | @Transactional(rollbackFor = Exception.class) |
79 | @AsyncMqSend | 57 | @AsyncMqSend() |
80 | public Long create(Member resources) { | 58 | public Long create(Member resources) { |
81 | Member member = this.checkMemberData(resources); | 59 | Member member = this.checkMemberData(resources); |
82 | memberRepository.save(member); | 60 | memberRepository.save(member); |
... | @@ -85,8 +63,9 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -85,8 +63,9 @@ public class MemberServiceImpl implements MemberService { |
85 | 63 | ||
86 | @Override | 64 | @Override |
87 | @Transactional(rollbackFor = Exception.class) | 65 | @Transactional(rollbackFor = Exception.class) |
88 | @AsyncMqSend | 66 | @AsyncMqSend() |
89 | public Member createAndReturnMember(Member resources) { | 67 | public Member createAndReturnMember(Member resources) { |
68 | // 检查并初始化数据 | ||
90 | Member member = this.checkMemberData(resources); | 69 | Member member = this.checkMemberData(resources); |
91 | memberRepository.save(member); | 70 | memberRepository.save(member); |
92 | return resources; | 71 | return resources; |
... | @@ -127,8 +106,7 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -127,8 +106,7 @@ public class MemberServiceImpl implements MemberService { |
127 | RLock rLock = this.redissonClient.getLock("member::update::code" + resources.getCode().toString()); | 106 | RLock rLock = this.redissonClient.getLock("member::update::code" + resources.getCode().toString()); |
128 | try { | 107 | try { |
129 | RedissonUtil.lock(rLock); | 108 | RedissonUtil.lock(rLock); |
130 | // Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new); | 109 | Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new); |
131 | Member member = memberRepository.findFirstByCode(resources.getCode()).orElseGet(Member::new); | ||
132 | ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId()); | 110 | ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId()); |
133 | member.copy(resources); | 111 | member.copy(resources); |
134 | this.save(member); | 112 | this.save(member); |
... | @@ -144,7 +122,7 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -144,7 +122,7 @@ public class MemberServiceImpl implements MemberService { |
144 | @Transactional(rollbackFor = Exception.class) | 122 | @Transactional(rollbackFor = Exception.class) |
145 | @AsyncMqSend() | 123 | @AsyncMqSend() |
146 | public void unbind(Member resources) { | 124 | public void unbind(Member resources) { |
147 | RLock rLock = this.redissonClient.getLock("member::update::id" + resources.getId().toString()); | 125 | RLock rLock = this.redissonClient.getLock("member::update::code" + resources.getId().toString()); |
148 | try { | 126 | try { |
149 | RedissonUtil.lock(rLock); | 127 | RedissonUtil.lock(rLock); |
150 | Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new); | 128 | Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new); |
... | @@ -167,13 +145,12 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -167,13 +145,12 @@ public class MemberServiceImpl implements MemberService { |
167 | @Transactional(rollbackFor = Exception.class) | 145 | @Transactional(rollbackFor = Exception.class) |
168 | @AsyncMqSend() | 146 | @AsyncMqSend() |
169 | public void delete(Long id) { | 147 | public void delete(Long id) { |
170 | Assert.notNull(id, "The given id must not be null!"); | 148 | RLock rLock = this.redissonClient.getLock("member::delete::code" + id); |
171 | RLock rLock = this.redissonClient.getLock("member::delete::id" + id); | ||
172 | try { | 149 | try { |
173 | RedissonUtil.lock(rLock); | 150 | RedissonUtil.lock(rLock); |
174 | Member member = memberRepository.findById(id).orElseThrow( | 151 | Member member = memberRepository.findById(id).orElseThrow( |
175 | () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", Member.class, id), 1)); | 152 | () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", Member.class, id), 1)); |
176 | memberRepository.delete(member); | 153 | //memberRepository.delete(member); |
177 | } catch (Exception e) { | 154 | } catch (Exception e) { |
178 | e.printStackTrace(); | 155 | e.printStackTrace(); |
179 | throw e; | 156 | throw e; |
... | @@ -182,7 +159,6 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -182,7 +159,6 @@ public class MemberServiceImpl implements MemberService { |
182 | } | 159 | } |
183 | } | 160 | } |
184 | 161 | ||
185 | |||
186 | @Override | 162 | @Override |
187 | public MemberDTO getByCode(String code) { | 163 | public MemberDTO getByCode(String code) { |
188 | return StringUtils.isNotEmpty(code) ? memberMapper.toDto(memberRepository.findFirstByCode(code).orElseGet(Member::new)) | 164 | return StringUtils.isNotEmpty(code) ? memberMapper.toDto(memberRepository.findFirstByCode(code).orElseGet(Member::new)) |
... | @@ -190,9 +166,10 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -190,9 +166,10 @@ public class MemberServiceImpl implements MemberService { |
190 | } | 166 | } |
191 | 167 | ||
192 | @Override | 168 | @Override |
169 | @Transactional(rollbackFor = Exception.class) | ||
193 | @AsyncMqSend() | 170 | @AsyncMqSend() |
194 | public void doUpdateMemberPoints(Member resources) { | 171 | public void doUpdateMemberPoints(Member resources) { |
195 | RLock rLock = this.redissonClient.getLock("member::update::id" + resources.getId().toString()); | 172 | RLock rLock = this.redissonClient.getLock("member::update::code" + resources.getId().toString()); |
196 | try { | 173 | try { |
197 | RedissonUtil.lock(rLock); | 174 | RedissonUtil.lock(rLock); |
198 | Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new); | 175 | Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new); |
... | @@ -213,5 +190,4 @@ public class MemberServiceImpl implements MemberService { | ... | @@ -213,5 +190,4 @@ public class MemberServiceImpl implements MemberService { |
213 | return memberMapper.toDto(memberList); | 190 | return memberMapper.toDto(memberList); |
214 | } | 191 | } |
215 | 192 | ||
216 | |||
217 | } | 193 | } | ... | ... |
1 | package com.topdraw.business.module.user.iptv.domain; | 1 | package com.topdraw.business.module.user.iptv.domain; |
2 | 2 | ||
3 | import com.topdraw.business.common.CreateGroup; | ||
4 | import com.topdraw.business.common.UpdateGroup; | ||
3 | import lombok.Data; | 5 | import lombok.Data; |
4 | import lombok.experimental.Accessors; | 6 | import lombok.experimental.Accessors; |
5 | import cn.hutool.core.bean.BeanUtil; | 7 | import cn.hutool.core.bean.BeanUtil; |
6 | import cn.hutool.core.bean.copier.CopyOptions; | 8 | import cn.hutool.core.bean.copier.CopyOptions; |
7 | import javax.persistence.*; | 9 | import javax.persistence.*; |
10 | import javax.validation.constraints.NotNull; | ||
11 | |||
8 | import org.springframework.data.annotation.CreatedDate; | 12 | import org.springframework.data.annotation.CreatedDate; |
9 | import org.springframework.data.annotation.LastModifiedDate; | 13 | import org.springframework.data.annotation.LastModifiedDate; |
10 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; | 14 | import org.springframework.data.jpa.domain.support.AuditingEntityListener; |
... | @@ -46,6 +50,7 @@ public class UserTv implements Serializable { | ... | @@ -46,6 +50,7 @@ public class UserTv implements Serializable { |
46 | 50 | ||
47 | // 运营商平台账号 | 51 | // 运营商平台账号 |
48 | @Column(name = "platform_account") | 52 | @Column(name = "platform_account") |
53 | @NotNull(message = "platformAccount can't be null !",groups = {CreateGroup.class}) | ||
49 | private String platformAccount; | 54 | private String platformAccount; |
50 | 55 | ||
51 | // 手机号 | 56 | // 手机号 | ... | ... |
-
Please register or sign in to post a comment