Commit cdf13700 cdf13700e7b76d8b38e3f850cf09f48b958136bc by xianghan

1.优化、规范会员接口

1 parent 4042c6ad
1 package com.topdraw.business.common;
2
3 /**
4 * @author :
5 * @description:
6 * @function :
7 * @date :Created in 2022/3/7 21:20
8 * @version: :
9 * @modified By:
10 * @since : modified in 2022/3/7 21:20
11 */
12 public interface CreateGroup {
13 }
1 package com.topdraw.business.common;
2
3 /**
4 * @author :
5 * @description:
6 * @function :
7 * @date :Created in 2022/3/7 21:20
8 * @version: :
9 * @modified By:
10 * @since : modified in 2022/3/7 21:20
11 */
12 public interface UpdateGroup {
13 }
...@@ -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 // 手机号
......