1.优化、规范会员接口
Showing
8 changed files
with
118 additions
and
91 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); | 101 | String code = memberDTO.getCode(); |
| 83 | if (Objects.isNull(memberDTO.getCode()) && Objects.nonNull(memberId)) { | 102 | Assert.notNull(code, "code can't be null"); |
| 84 | memberDTO = this.memberService.findById(memberId); | 103 | resources.setCode(code); |
| 85 | } | 104 | memberService.update(resources); |
| 86 | } | 105 | } |
| 87 | |||
| 88 | String code = memberDTO.getCode(); | ||
| 89 | log.info("member ==>> memberDTO =>> [{}]",memberDTO); | ||
| 90 | Assert.notNull(code, "code can't be null"); | ||
| 91 | resources.setCode(code); | ||
| 92 | memberService.update(resources); | ||
| 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