Commit 76303f7f 76303f7fcb6c8c9336f0d2e84db11c61a037a6b3 by xianghan

1.update

1 parent 799a2ce5
Showing 63 changed files with 2355 additions and 1056 deletions
...@@ -19,6 +19,9 @@ import javax.persistence.Transient; ...@@ -19,6 +19,9 @@ import javax.persistence.Transient;
19 public class DefaultAsyncMqModule { 19 public class DefaultAsyncMqModule {
20 20
21 @Transient 21 @Transient
22 private String platformAccount;
23
24 @Transient
22 private String memberCode; 25 private String memberCode;
23 26
24 } 27 }
......
1 package com.topdraw.business.module.member.address.domain;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.exception.GlobeExceptionMsg;
5 import org.apache.commons.lang3.StringUtils;
6 import org.springframework.util.Assert;
7
8 import java.util.Objects;
9
10 /**
11 * @author :
12 * @description:
13 * @function :
14 * @date :Created in 2022/3/11 11:08
15 * @version: :
16 * @modified By:
17 * @since : modified in 2022/3/11 11:08
18 */
19 public class MemberAddressBuilder {
20
21 private static final Integer DEFAULT_VALUE_0 = 0;
22 private static final Integer DEFAULT_VALUE_1 = 1;
23
24 public static MemberAddress build(MemberAddress memberAddress, Long memberId, String memberCode){
25 Long id = memberAddress.getId();
26 Integer type = memberAddress.getType();
27 Integer isDefault = memberAddress.getIsDefault();
28 Integer sequence = memberAddress.getSequence();
29 Integer status= memberAddress.getStatus();
30 String contactor = memberAddress.getContactor();
31 String cellphone = memberAddress.getCellphone();
32 String country = memberAddress.getCountry();
33 String province = memberAddress.getProvince();
34 String city = memberAddress.getCity();
35 String district = memberAddress.getDistrict();
36 String address = memberAddress.getAddress();
37 String zipCode = memberAddress.getZipCode();
38 return build(id,memberId,memberCode,type,isDefault,sequence,status,
39 contactor,cellphone,country,province,city,district,address,zipCode);
40 }
41
42 public static MemberAddress build(MemberAddress memberAddress, Member member){
43 Long id = memberAddress.getId();
44 Long memberId = member.getId();
45 String memberCode = member.getCode();
46 Integer type = memberAddress.getType();
47 Integer isDefault = memberAddress.getIsDefault();
48 Integer sequence = memberAddress.getSequence();
49 Integer status= memberAddress.getStatus();
50 String contactor = memberAddress.getContactor();
51 String cellphone = memberAddress.getCellphone();
52 String country = memberAddress.getCountry();
53 String province = memberAddress.getProvince();
54 String city = memberAddress.getCity();
55 String district = memberAddress.getDistrict();
56 String address = memberAddress.getAddress();
57 String zipCode = memberAddress.getZipCode();
58 return build(id,memberId,memberCode,type,isDefault,sequence,status,
59 contactor,cellphone,country,province,city,district,address,zipCode);
60 }
61
62 public static MemberAddress build(MemberAddress memberAddress){
63 Long id = memberAddress.getId();
64 Long memberId = memberAddress.getMemberId();
65 String memberCode = memberAddress.getMemberCode();
66 Integer type = memberAddress.getType();
67 Integer isDefault = memberAddress.getIsDefault();
68 Integer sequence = memberAddress.getSequence();
69 Integer status= memberAddress.getStatus();
70 String contactor = memberAddress.getContactor();
71 String cellphone = memberAddress.getCellphone();
72 String country = memberAddress.getCountry();
73 String province = memberAddress.getProvince();
74 String city = memberAddress.getCity();
75 String district = memberAddress.getDistrict();
76 String address = memberAddress.getAddress();
77 String zipCode = memberAddress.getZipCode();
78 return build(id,memberId,memberCode,type,isDefault,sequence,status,
79 contactor,cellphone,country,province,city,district,address,zipCode);
80 }
81
82
83 public static MemberAddress build(Long id , Long memberId, String memberCode,
84 Integer sequence, Integer type , Integer isDefault , Integer status,
85 String contactor, String cellphone,
86 String country, String province, String city,
87 String district, String address, String zipCode){
88 Assert.notNull(memberId, GlobeExceptionMsg.MEMBER_ID_IS_NULL);
89
90 MemberAddress memberAddress = new MemberAddress();
91 memberAddress.setId(Objects.nonNull(id)?null:id);
92 memberAddress.setMemberId(Objects.isNull(memberId)?null:memberId);
93 memberAddress.setMemberCode(stringIsNull(memberCode));
94
95 memberAddress.setSequence(Objects.nonNull(sequence)?null:DEFAULT_VALUE_1);
96 memberAddress.setType(Objects.isNull(type)?null:DEFAULT_VALUE_0);
97 memberAddress.setIsDefault(Objects.nonNull(isDefault)?null:DEFAULT_VALUE_0);
98 memberAddress.setStatus(Objects.isNull(status)?null:DEFAULT_VALUE_1);
99
100 memberAddress.setContactor(stringIsNull(contactor));
101 memberAddress.setCellphone(stringIsNull(cellphone));
102
103 memberAddress.setCountry(stringIsNull(country));
104 memberAddress.setProvince(stringIsNull(province));
105 memberAddress.setCity(stringIsNull(city));
106 memberAddress.setDistrict(stringIsNull(district));
107 memberAddress.setAddress(stringIsNull(address));
108 memberAddress.setZipCode(stringIsNull(zipCode));
109
110 return memberAddress;
111
112 }
113
114 private static String stringIsNull(String s){
115 return StringUtils.isBlank(s)?"":s;
116 }
117
118 }
...@@ -2,11 +2,6 @@ package com.topdraw.business.module.member.address.service; ...@@ -2,11 +2,6 @@ package com.topdraw.business.module.member.address.service;
2 2
3 import com.topdraw.business.module.member.address.domain.MemberAddress; 3 import com.topdraw.business.module.member.address.domain.MemberAddress;
4 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO; 4 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
5 import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
6 import org.springframework.data.domain.Pageable;
7
8 import java.util.List;
9 import java.util.Map;
10 5
11 /** 6 /**
12 * @author XiangHan 7 * @author XiangHan
...@@ -15,31 +10,28 @@ import java.util.Map; ...@@ -15,31 +10,28 @@ import java.util.Map;
15 public interface MemberAddressService { 10 public interface MemberAddressService {
16 11
17 /** 12 /**
18 * 查询数据分页
19 * @param criteria 条件参数
20 * @param pageable 分页参数
21 * @return Map<String,Object>
22 */
23 Map<String,Object> queryAll(MemberAddressQueryCriteria criteria, Pageable pageable);
24
25 /**
26 * 查询所有数据不分页
27 * @param criteria 条件参数
28 * @return List<MemberAddressDTO>
29 */
30 List<MemberAddressDTO> queryAll(MemberAddressQueryCriteria criteria);
31
32 /**
33 * 根据ID查询 13 * 根据ID查询
34 * @param id ID 14 * @param resources ID
35 * @return MemberAddressDTO 15 * @return MemberAddressDTO
36 */ 16 */
37 MemberAddressDTO findById(Long id); 17 MemberAddressDTO findById(Long resources);
38 18
39 void create(MemberAddress resources); 19 /**
20 * 保存会员地址
21 * @param resources
22 */
23 MemberAddressDTO create(MemberAddress resources);
40 24
41 void update(MemberAddress resources); 25 /**
26 * 修改会员地址
27 * @param resources
28 */
29 MemberAddressDTO update(MemberAddress resources);
42 30
43 void delete(Long id); 31 /**
32 * 通过id删除
33 * @param resources
34 */
35 void delete(Long resources);
44 36
45 } 37 }
......
1 package com.topdraw.business.module.member.address.service.dto;
2
3 import com.topdraw.annotation.Query;
4 import lombok.Data;
5
6 /**
7 * @author XiangHan
8 * @date 2021-10-22
9 */
10 @Data
11 public class MemberAddressQueryCriteria{
12
13 @Query
14 private Long memberId;
15
16 }
1 package com.topdraw.business.module.member.address.service.impl; 1 package com.topdraw.business.module.member.address.service.impl;
2 2
3 import com.topdraw.business.module.member.address.domain.MemberAddress; 3 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.repository.MemberAddressRepository; 5 import com.topdraw.business.module.member.address.repository.MemberAddressRepository;
5 import com.topdraw.business.module.member.address.service.MemberAddressService; 6 import com.topdraw.business.module.member.address.service.MemberAddressService;
6 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO; 7 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
7 import com.topdraw.business.module.member.address.service.dto.MemberAddressQueryCriteria;
8 import com.topdraw.business.module.member.address.service.mapper.MemberAddressMapper; 8 import com.topdraw.business.module.member.address.service.mapper.MemberAddressMapper;
9 import com.topdraw.business.module.member.service.MemberService; 9 import com.topdraw.business.module.member.service.MemberService;
10 import com.topdraw.business.module.member.service.dto.MemberDTO; 10 import com.topdraw.business.module.member.service.dto.MemberDTO;
11 import com.topdraw.utils.PageUtil; 11 import com.topdraw.utils.RedisUtils;
12 import com.topdraw.utils.QueryHelp;
13 import com.topdraw.utils.ValidationUtil; 12 import com.topdraw.utils.ValidationUtil;
13 import lombok.extern.slf4j.Slf4j;
14 import org.springframework.beans.BeanUtils;
14 import org.springframework.beans.factory.annotation.Autowired; 15 import org.springframework.beans.factory.annotation.Autowired;
15 import org.springframework.dao.EmptyResultDataAccessException; 16 import org.springframework.dao.EmptyResultDataAccessException;
16 import org.springframework.data.domain.Page;
17 import org.springframework.data.domain.Pageable;
18 import org.springframework.stereotype.Service; 17 import org.springframework.stereotype.Service;
19 import org.springframework.transaction.annotation.Propagation; 18 import org.springframework.transaction.annotation.Propagation;
20 import org.springframework.transaction.annotation.Transactional; 19 import org.springframework.transaction.annotation.Transactional;
21 import org.springframework.util.Assert; 20 import org.springframework.util.Assert;
22 21
23 import java.util.List;
24 import java.util.Map;
25 import java.util.Objects;
26 import java.util.Optional;
27
28 /** 22 /**
29 * @author XiangHan 23 * @author XiangHan
30 * @date 2021-10-22 24 * @date 2021-10-22
31 */ 25 */
32 @Service 26 @Service
33 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) 27 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
28 @Slf4j
34 public class MemberAddressServiceImpl implements MemberAddressService { 29 public class MemberAddressServiceImpl implements MemberAddressService {
35 30
36 @Autowired 31 @Autowired
37 private MemberAddressRepository MemberAddressRepository; 32 private MemberService memberService;
38
39 @Autowired 33 @Autowired
40 private MemberAddressMapper MemberAddressMapper; 34 private MemberAddressMapper memberAddressMapper;
41 @Autowired 35 @Autowired
42 private MemberService memberService; 36 private MemberAddressRepository memberAddressRepository;
43 37
44 @Override 38 @Autowired
45 public Map<String, Object> queryAll(MemberAddressQueryCriteria criteria, Pageable pageable) { 39 private RedisUtils redisUtils;
46 Page<MemberAddress> page = MemberAddressRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
47 return PageUtil.toPage(page.map(MemberAddressMapper::toDto));
48 }
49
50 @Override
51 public List<MemberAddressDTO> queryAll(MemberAddressQueryCriteria criteria) {
52 return MemberAddressMapper.toDto(MemberAddressRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
53 }
54 40
55 @Override 41 @Override
56 public MemberAddressDTO findById(Long id) { 42 public MemberAddressDTO findById(Long id) {
57 MemberAddress MemberAddress = MemberAddressRepository.findById(id).orElseGet(MemberAddress::new); 43 Assert.notNull(id,"id can't be null");
44 MemberAddress MemberAddress = this.memberAddressRepository.findById(id).orElseGet(MemberAddress::new);
58 ValidationUtil.isNull(MemberAddress.getId(),"MemberAddress","id",id); 45 ValidationUtil.isNull(MemberAddress.getId(),"MemberAddress","id",id);
59 return MemberAddressMapper.toDto(MemberAddress); 46 return this.memberAddressMapper.toDto(MemberAddress);
60 } 47 }
61 48
62 @Override 49 @Override
63 @Transactional(rollbackFor = Exception.class) 50 @Transactional(rollbackFor = Exception.class)
64 public void create(MemberAddress resources) { 51 public MemberAddressDTO create(MemberAddress resources) {
65 String memberCode = resources.getMemberCode(); 52 log.info("MemberAddressServiceImpl ==>> create ==>> param ==>> [{}]",resources);
66 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 53 MemberDTO memberDTO = this.checkMember(resources);
67 Long id = memberDTO.getId(); 54 MemberAddress _memberAddress = MemberAddressBuilder.build(resources, memberDTO.getId(), memberDTO.getCode());
68 resources.setMemberId(id); 55 MemberAddress memberAddress = this.memberAddressRepository.save(_memberAddress);
69 MemberAddressRepository.save(resources); 56
57 log.info("MemberAddressServiceImpl ==>> create ==>> result ==>> [{}]",resources);
58 MemberAddressDTO memberAddressDTO = new MemberAddressDTO();
59 BeanUtils.copyProperties(memberAddress, memberAddressDTO);
60 return memberAddressDTO;
61
70 } 62 }
71 63
72 @Override 64 @Override
73 @Transactional(rollbackFor = Exception.class) 65 @Transactional(rollbackFor = Exception.class)
74 public void update(MemberAddress resources) { 66 public MemberAddressDTO update(MemberAddress resources) {
75 String memberCode = resources.getMemberCode(); 67 log.info("MemberAddressServiceImpl ==>> update ==>> param ==>> [{}]",resources);
76 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 68 Assert.notNull(resources.getId(),"id can't be null");
77 if (Objects.nonNull(memberDTO)) { 69 try {
78 Long memberId = memberDTO.getId(); 70 this.redisUtils.doLock("MemberAddress::update::code" + resources.getId());
79 Integer sequence = resources.getSequence(); 71 MemberDTO memberDTO = this.checkMember(resources);
80 Assert.notNull(sequence,"sequence can't be null!"); 72 resources.setMemberCode(memberDTO.getCode());
81 Optional<MemberAddress> memberAddressOptional = MemberAddressRepository.findByMemberIdAndSequence(memberId,sequence); 73
82 if (memberAddressOptional.isPresent()) { 74 MemberAddress _memberAddress = this.memberAddressRepository.findById(resources.getId()).orElseGet(MemberAddress::new);
83 MemberAddress memberAddress = memberAddressOptional.get(); 75 ValidationUtil.isNull( _memberAddress.getId(),"MemberAddress","id",resources.getId());
84 ValidationUtil.isNull(memberAddress.getId(),"MemberAddress","id",resources.getId()); 76 _memberAddress.copy(resources);
85 resources.setId(memberAddress.getId()); 77 MemberAddress memberAddress = this.memberAddressRepository.save(_memberAddress);
86 memberAddress.copy(resources); 78
87 MemberAddressRepository.save(memberAddress); 79 MemberAddressDTO memberAddressDTO = new MemberAddressDTO();
88 } 80 BeanUtils.copyProperties(memberAddress, memberAddressDTO);
81 return memberAddressDTO;
82 } catch (Exception e) {
83 e.printStackTrace();
84 throw e;
85 } finally {
86 this.redisUtils.doUnLock("MemberAddress::update::code" + resources.getId());
89 } 87 }
90 } 88 }
91 89
...@@ -93,9 +91,30 @@ public class MemberAddressServiceImpl implements MemberAddressService { ...@@ -93,9 +91,30 @@ public class MemberAddressServiceImpl implements MemberAddressService {
93 @Transactional(rollbackFor = Exception.class) 91 @Transactional(rollbackFor = Exception.class)
94 public void delete(Long id) { 92 public void delete(Long id) {
95 Assert.notNull(id, "The given id must not be null!"); 93 Assert.notNull(id, "The given id must not be null!");
96 MemberAddress MemberAddress = MemberAddressRepository.findById(id).orElseThrow( 94 MemberAddress MemberAddress = this.memberAddressRepository.findById(id).orElseThrow(
97 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberAddress.class, id), 1)); 95 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberAddress.class, id), 1));
98 MemberAddressRepository.delete(MemberAddress); 96 this.memberAddressRepository.delete(MemberAddress);
97 }
98
99 /**
100 * 检查会员
101 * @param memberAddress
102 * @return
103 */
104 private MemberDTO checkMember(MemberAddress memberAddress){
105 Long memberId = memberAddress.getMemberId();
106 String memberCode = memberAddress.getMemberCode();
107 return this.checkMember(memberId,memberCode);
108 }
109
110 /**
111 * 检查会员
112 * @param memberId 会员id
113 * @param memberCode 会员code
114 * @return
115 */
116 private MemberDTO checkMember(Long memberId, String memberCode) {
117 return this.memberService.checkMember(memberId, memberCode);
99 } 118 }
100 119
101 120
......
1 package com.topdraw.business.module.member.domain;
2
3
4 import com.topdraw.util.IdWorker;
5 import org.apache.commons.lang3.StringUtils;
6
7 import java.nio.charset.StandardCharsets;
8 import java.util.Base64;
9 import java.util.Objects;
10
11 /**
12 * @author XiangHan
13 * @date 2021-10-22
14 */
15 public class MemberBuilder {
16
17 private static final Long DEFAULT_VALUE = 0L;
18 private static final Integer DEFAULT_VALUE_1 = 1;
19 private static final Integer DEFAULT_VALUE_ = -1;
20
21 public static Member build(Member member){
22 Member _member = checkMemberData(member);
23 return _member;
24 }
25
26 private static Member checkMemberData(Member member) {
27 String code = member.getCode();
28 member.setCode(StringUtils.isEmpty(code)?String.valueOf(IdWorker.generator()):code);
29 Integer gender = member.getGender();
30 member.setGender(Objects.nonNull(gender) ? gender : DEFAULT_VALUE_);
31 Integer type = member.getType();
32 member.setType(Objects.nonNull(type) ? type:DEFAULT_VALUE_);
33 Integer status = member.getStatus();
34 member.setStatus(Objects.nonNull(status) ? status:DEFAULT_VALUE_1);
35 Integer vip = member.getVip();
36 member.setVip(Objects.nonNull(vip) ? vip:0);
37 Integer level = member.getLevel();
38 member.setLevel(Objects.nonNull(level) ? level:DEFAULT_VALUE_1);
39 member.setExp(DEFAULT_VALUE);
40 member.setPoints(DEFAULT_VALUE);
41 member.setDuePoints(DEFAULT_VALUE);
42 member.setCouponAmount(DEFAULT_VALUE);
43 member.setDueCouponAmount(DEFAULT_VALUE);
44 member.setBlackStatus(DEFAULT_VALUE);
45 member.setBirthday(StringUtils.isBlank(member.getBirthday())?"1900-01-01":member.getBirthday());
46 String nickname = member.getNickname();
47 if (StringUtils.isNotEmpty(nickname)) {
48 String base64Nickname = new String(Base64.getEncoder().encode(nickname.getBytes(StandardCharsets.UTF_8)));
49 member.setNickname(base64Nickname);
50 }
51 return member;
52 }
53
54 public static Member build(Integer type, String avatarUrl, String nickname, int vip){
55 // todo 原型模式
56 Member member = new Member();
57 member.setType(type);
58 member.setAvatarUrl(avatarUrl);
59 member.setNickname(nickname);
60 member.setVip(vip);
61 Member _member = checkMemberData(member);
62 return _member;
63 }
64 }
...@@ -15,39 +15,25 @@ import java.util.Map; ...@@ -15,39 +15,25 @@ import java.util.Map;
15 public interface MemberLevelService { 15 public interface MemberLevelService {
16 16
17 /** 17 /**
18 * 查询数据分页
19 * @param criteria 条件参数
20 * @param pageable 分页参数
21 * @return Map<String,Object>
22 */
23 Map<String,Object> queryAll(MemberLevelQueryCriteria criteria, Pageable pageable);
24
25 /**
26 * 查询所有数据不分页
27 * @param criteria 条件参数
28 * @return List<MemberLevelDTO>
29 */
30 List<MemberLevelDTO> queryAll(MemberLevelQueryCriteria criteria);
31
32 /**
33 * 根据ID查询 18 * 根据ID查询
34 * @param id ID 19 * @param id ID
35 * @return MemberLevelDTO 20 * @return MemberLevelDTO
36 */ 21 */
37 MemberLevelDTO findById(Long id); 22 MemberLevelDTO findById(Long id);
38 23
39 void create(MemberLevel resources);
40
41 void update(MemberLevel resources);
42
43 void delete(Long id);
44
45 /** 24 /**
46 * Code校验 25 * Code校验
47 * @param code 26 * @param code
48 * @return MemberLevelDTO 27 * @return MemberLevelDTO
49 */ 28 */
50 MemberLevelDTO getByCode(String code); 29 MemberLevelDTO getByCode(String code);
51 30
31 /**
32 * 通过等级和状态检索
33 * @param i
34 * @param status
35 * @return
36 */
52 List<MemberLevelDTO> findLevelAndStatus(Integer i, Integer status); 37 List<MemberLevelDTO> findLevelAndStatus(Integer i, Integer status);
38
53 } 39 }
......
...@@ -4,23 +4,15 @@ import com.topdraw.business.module.member.level.domain.MemberLevel; ...@@ -4,23 +4,15 @@ import com.topdraw.business.module.member.level.domain.MemberLevel;
4 import com.topdraw.business.module.member.level.repository.MemberLevelRepository; 4 import com.topdraw.business.module.member.level.repository.MemberLevelRepository;
5 import com.topdraw.business.module.member.level.service.MemberLevelService; 5 import com.topdraw.business.module.member.level.service.MemberLevelService;
6 import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO; 6 import com.topdraw.business.module.member.level.service.dto.MemberLevelDTO;
7 import com.topdraw.business.module.member.level.service.dto.MemberLevelQueryCriteria;
8 import com.topdraw.business.module.member.level.service.mapper.MemberLevelMapper; 7 import com.topdraw.business.module.member.level.service.mapper.MemberLevelMapper;
9 import com.topdraw.utils.PageUtil;
10 import com.topdraw.utils.QueryHelp;
11 import com.topdraw.utils.StringUtils; 8 import com.topdraw.utils.StringUtils;
12 import com.topdraw.utils.ValidationUtil; 9 import com.topdraw.utils.ValidationUtil;
13 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.dao.EmptyResultDataAccessException;
15 import org.springframework.data.domain.Page;
16 import org.springframework.data.domain.Pageable;
17 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
18 import org.springframework.transaction.annotation.Propagation; 12 import org.springframework.transaction.annotation.Propagation;
19 import org.springframework.transaction.annotation.Transactional; 13 import org.springframework.transaction.annotation.Transactional;
20 import org.springframework.util.Assert;
21 14
22 import java.util.List; 15 import java.util.List;
23 import java.util.Map;
24 16
25 /** 17 /**
26 * @author XiangHan 18 * @author XiangHan
...@@ -31,62 +23,27 @@ import java.util.Map; ...@@ -31,62 +23,27 @@ import java.util.Map;
31 public class MemberLevelServiceImpl implements MemberLevelService { 23 public class MemberLevelServiceImpl implements MemberLevelService {
32 24
33 @Autowired 25 @Autowired
34 private MemberLevelRepository MemberLevelRepository; 26 private MemberLevelRepository memberLevelRepository;
35 27
36 @Autowired 28 @Autowired
37 private MemberLevelMapper MemberLevelMapper; 29 private MemberLevelMapper memberLevelMapper;
38
39 @Override
40 public Map<String, Object> queryAll(MemberLevelQueryCriteria criteria, Pageable pageable) {
41 Page<MemberLevel> page = MemberLevelRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
42 return PageUtil.toPage(page.map(MemberLevelMapper::toDto));
43 }
44
45 @Override
46 public List<MemberLevelDTO> queryAll(MemberLevelQueryCriteria criteria) {
47 return MemberLevelMapper.toDto(MemberLevelRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
48 }
49 30
50 @Override 31 @Override
51 public MemberLevelDTO findById(Long id) { 32 public MemberLevelDTO findById(Long id) {
52 MemberLevel MemberLevel = MemberLevelRepository.findById(id).orElseGet(MemberLevel::new); 33 MemberLevel MemberLevel = this.memberLevelRepository.findById(id).orElseGet(MemberLevel::new);
53 ValidationUtil.isNull(MemberLevel.getId(),"MemberLevel","id",id); 34 ValidationUtil.isNull(MemberLevel.getId(),"MemberLevel","id",id);
54 return MemberLevelMapper.toDto(MemberLevel); 35 return this.memberLevelMapper.toDto(MemberLevel);
55 }
56
57 @Override
58 @Transactional(rollbackFor = Exception.class)
59 public void create(MemberLevel resources) {
60 MemberLevelRepository.save(resources);
61 } 36 }
62 37
63 @Override 38 @Override
64 @Transactional(rollbackFor = Exception.class)
65 public void update(MemberLevel resources) {
66 MemberLevel MemberLevel = MemberLevelRepository.findById(resources.getId()).orElseGet(MemberLevel::new);
67 ValidationUtil.isNull( MemberLevel.getId(),"MemberLevel","id",resources.getId());
68 MemberLevel.copy(resources);
69 MemberLevelRepository.save(MemberLevel);
70 }
71
72 @Override
73 @Transactional(rollbackFor = Exception.class)
74 public void delete(Long id) {
75 Assert.notNull(id, "The given id must not be null!");
76 MemberLevel MemberLevel = MemberLevelRepository.findById(id).orElseThrow(
77 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberLevel.class, id), 1));
78 MemberLevelRepository.delete(MemberLevel);
79 }
80
81
82 @Override
83 public MemberLevelDTO getByCode(String code) { 39 public MemberLevelDTO getByCode(String code) {
84 return StringUtils.isNotEmpty(code) ? MemberLevelMapper.toDto(MemberLevelRepository.findFirstByCode(code).orElseGet(MemberLevel::new)) 40 return StringUtils.isNotEmpty(code) ? this.memberLevelMapper.toDto(this.memberLevelRepository.findFirstByCode(code).orElseGet(MemberLevel::new))
85 : new MemberLevelDTO(); 41 : new MemberLevelDTO();
86 } 42 }
87 43
88 @Override 44 @Override
89 public List<MemberLevelDTO> findLevelAndStatus(Integer level, Integer status) { 45 public List<MemberLevelDTO> findLevelAndStatus(Integer level, Integer status) {
90 return MemberLevelMapper.toDto(MemberLevelRepository.findByLevelAndStatus(level,status)); 46 return this.memberLevelMapper.toDto(this.memberLevelRepository.findByLevelAndStatus(level,status));
91 } 47 }
48
92 } 49 }
......
...@@ -23,6 +23,9 @@ import java.sql.Timestamp; ...@@ -23,6 +23,9 @@ import java.sql.Timestamp;
23 @Table(name="uc_member_profile") 23 @Table(name="uc_member_profile")
24 public class MemberProfile implements Serializable { 24 public class MemberProfile implements Serializable {
25 25
26 @Transient
27 private String avatarUrl;
28
26 // 主键 29 // 主键
27 @Id 30 @Id
28 @GeneratedValue(strategy = GenerationType.IDENTITY) 31 @GeneratedValue(strategy = GenerationType.IDENTITY)
...@@ -50,7 +53,7 @@ public class MemberProfile implements Serializable { ...@@ -50,7 +53,7 @@ public class MemberProfile implements Serializable {
50 53
51 // 生日 54 // 生日
52 @Column(name = "birthday", nullable = false) 55 @Column(name = "birthday", nullable = false)
53 private Timestamp birthday; 56 private String birthday;
54 57
55 // 星座 58 // 星座
56 @Column(name = "constellation") 59 @Column(name = "constellation")
......
1 package com.topdraw.business.module.member.profile.domain;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.exception.GlobeExceptionMsg;
5 import org.apache.commons.lang3.StringUtils;
6 import org.springframework.util.Assert;
7
8 public class MemberProfileBuilder {
9
10 public static MemberProfile build(Member member){
11 MemberProfile memberProfile = build(member.getId(),member.getCode(),member.getNickname(),member.getGender(),"","","","","","",
12 "","","",member.getBirthday());
13 return memberProfile;
14 }
15
16 public static MemberProfile build(Long memberId){
17 MemberProfile memberProfile = build(memberId,"","",-1,"","","","","","",
18 "","","","");
19 return memberProfile;
20 }
21
22 public static MemberProfile build(Long memberId , String memberCode, String realname , Integer gender, String birthday){
23 MemberProfile memberProfile = build(memberId,memberCode,realname,gender,"","","","","","",
24 "","","",birthday);
25 return memberProfile;
26 }
27
28 public static MemberProfile build(Long memberId, String memberCode, String realName, Integer sex,
29 String country, String district, String city, String idCard, String province,
30 String email, String description, String phone, String constellation,
31 String birthday) {
32
33 Assert.notNull(memberId, GlobeExceptionMsg.MEMBER_ID_IS_NULL);
34
35 MemberProfile memberProfile = new MemberProfile();
36 memberProfile.setMemberId(memberId);
37 memberProfile.setMemberCode(memberCode);
38 memberProfile.setRealname(stringIsNull(realName));
39 memberProfile.setGender(sex == null ? 0 : sex);
40 memberProfile.setCountry(StringUtils.isBlank(country)?"中国":birthday);
41 memberProfile.setDistrict(stringIsNull(district));
42 memberProfile.setCity(stringIsNull(city));
43 memberProfile.setIdCard(StringUtils.isBlank(idCard)?"000000000000000000":idCard);
44 memberProfile.setProvince(stringIsNull(province));
45 memberProfile.setEmail(stringIsNull(email));
46 memberProfile.setDescription(stringIsNull(description));
47 memberProfile.setPhone(stringIsNull(phone));
48 memberProfile.setConstellation(stringIsNull(constellation));
49 memberProfile.setBirthday(StringUtils.isBlank(birthday)?"1900-01-01":birthday);
50
51 return memberProfile;
52 }
53
54 private static String stringIsNull(String s){
55 return StringUtils.isBlank(s)?"":s;
56 }
57
58 public static MemberProfile build(MemberProfile resources) {
59 if (resources.getMemberId() == null)
60 throw new NullPointerException("memberId is null");
61
62 MemberProfile memberProfile = new MemberProfile();
63 memberProfile.setId(resources.getId());
64 memberProfile.setMemberId(resources.getMemberId());
65 memberProfile.setRealname(stringIsNull(resources.getRealname()));
66 memberProfile.setGender(resources.getGender() == null ? -1 : resources.getGender());
67 memberProfile.setCountry(stringIsNull(resources.getCountry()));
68 memberProfile.setDistrict(stringIsNull(resources.getDistrict()));
69 memberProfile.setCity(stringIsNull(resources.getCity()));
70 memberProfile.setIdCard(StringUtils.isBlank(resources.getIdCard())?"000000000000000000":resources.getIdCard());
71 memberProfile.setProvince(stringIsNull(resources.getProvince()));
72 memberProfile.setEmail(stringIsNull(resources.getEmail()));
73 memberProfile.setDescription(stringIsNull(resources.getDescription()));
74 memberProfile.setPhone(stringIsNull(resources.getPhone()));
75 memberProfile.setConstellation(stringIsNull(resources.getConstellation()));
76 memberProfile.setBirthday(stringIsNull(resources.getBirthday()));
77 return memberProfile;
78 }
79 }
...@@ -12,5 +12,7 @@ import java.util.Optional; ...@@ -12,5 +12,7 @@ import java.util.Optional;
12 */ 12 */
13 public interface MemberProfileRepository extends JpaRepository<MemberProfile, Long>, JpaSpecificationExecutor<MemberProfile> { 13 public interface MemberProfileRepository extends JpaRepository<MemberProfile, Long>, JpaSpecificationExecutor<MemberProfile> {
14 14
15 MemberProfile findByMemberId(Long memberId); 15 Optional<MemberProfile> findByMemberId(Long memberId);
16
17 Optional<MemberProfile> findFirstByMemberId(Long memberId);
16 } 18 }
......
1 package com.topdraw.business.module.member.profile.service; 1 package com.topdraw.business.module.member.profile.service;
2 2
3 import com.topdraw.business.module.member.domain.Member;
3 import com.topdraw.business.module.member.profile.domain.MemberProfile; 4 import com.topdraw.business.module.member.profile.domain.MemberProfile;
4 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO; 5 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
5 import com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria; 6 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import org.springframework.data.domain.Pageable;
7
8 import java.util.List;
9 import java.util.Map;
10 7
11 /** 8 /**
12 * @author XiangHan 9 * @author XiangHan
...@@ -15,31 +12,70 @@ import java.util.Map; ...@@ -15,31 +12,70 @@ import java.util.Map;
15 public interface MemberProfileService { 12 public interface MemberProfileService {
16 13
17 /** 14 /**
18 * 查询数据分页
19 * @param criteria 条件参数
20 * @param pageable 分页参数
21 * @return Map<String,Object>
22 */
23 Map<String,Object> queryAll(MemberProfileQueryCriteria criteria, Pageable pageable);
24
25 /**
26 * 查询所有数据不分页
27 * @param criteria 条件参数
28 * @return List<MemberProfileDTO>
29 */
30 List<MemberProfileDTO> queryAll(MemberProfileQueryCriteria criteria);
31
32 /**
33 * 根据ID查询 15 * 根据ID查询
34 * @param id ID 16 * @param id ID
35 * @return MemberProfileDTO 17 * @return MemberProfileDTO
36 */ 18 */
37 MemberProfileDTO findById(Long id); 19 MemberProfileDTO findById(Long id);
38 20
21 /**
22 * 保存
23 * @param resources 会员基本信息
24 * @return
25 */
39 MemberProfile create(MemberProfile resources); 26 MemberProfile create(MemberProfile resources);
40 27
41 void update(MemberProfile resources); 28 /**
29 * 默认属性
30 * @param resources
31 * @return
32 */
33 MemberProfile createDefault(MemberProfile resources);
34
35 /**
36 * 通过会员创建默认属性
37 * @param resources
38 * @return
39 */
40 MemberProfile createDefault(Member resources);
41
42 /**
43 * 通过会员id创建默认属性
44 * @param resources
45 * @return
46 */
47 MemberProfile createDefaultByMemberId(Long resources);
42 48
49 /**
50 * 修改
51 * @param resources
52 */
53 MemberProfileDTO update(MemberProfile resources);
54
55 /**
56 * 删除
57 * @param id
58 */
43 void delete(Long id); 59 void delete(Long id);
44 60
61 /**
62 * 通过会员id查询
63 * @param memberId
64 * @return
65 */
66 MemberProfileDTO findByMemberId(Long memberId);
67
68 /**
69 * 通过会员code查询
70 * @param memberCode
71 * @return
72 */
73 MemberProfileDTO findByMemberCode(String memberCode);
74
75 /**
76 * 修改会员属性并同步会员信息
77 * @param resources
78 */
79 MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources, MemberDTO memberDTO);
80
45 } 81 }
......
...@@ -13,6 +13,15 @@ import java.sql.Timestamp; ...@@ -13,6 +13,15 @@ import java.sql.Timestamp;
13 @Data 13 @Data
14 public class MemberProfileDTO implements Serializable { 14 public class MemberProfileDTO implements Serializable {
15 15
16 // 超时时间
17 private Long vipExpireTime;
18
19 // vip
20 private Integer vip;
21
22 // 头像
23 private String avatarUrl;
24
16 // 主键 25 // 主键
17 private Long id; 26 private Long id;
18 27
...@@ -29,7 +38,7 @@ public class MemberProfileDTO implements Serializable { ...@@ -29,7 +38,7 @@ public class MemberProfileDTO implements Serializable {
29 private Integer gender; 38 private Integer gender;
30 39
31 // 生日 40 // 生日
32 private Timestamp birthday; 41 private String birthday;
33 42
34 // 星座 43 // 星座
35 private String constellation; 44 private String constellation;
......
1 package com.topdraw.business.module.member.profile.service.dto;
2
3 import lombok.Data;
4
5 /**
6 * @author XiangHan
7 * @date 2021-10-22
8 */
9 @Data
10 public class MemberProfileQueryCriteria{
11 }
1 package com.topdraw.business.module.member.profile.service.impl; 1 package com.topdraw.business.module.member.profile.service.impl;
2 2
3 import com.topdraw.business.module.member.domain.Member;
3 import com.topdraw.business.module.member.profile.domain.MemberProfile; 4 import com.topdraw.business.module.member.profile.domain.MemberProfile;
5 import com.topdraw.business.module.member.profile.domain.MemberProfileBuilder;
4 import com.topdraw.business.module.member.profile.repository.MemberProfileRepository; 6 import com.topdraw.business.module.member.profile.repository.MemberProfileRepository;
5 import com.topdraw.business.module.member.profile.service.MemberProfileService; 7 import com.topdraw.business.module.member.profile.service.MemberProfileService;
6 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO; 8 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
7 import com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria;
8 import com.topdraw.business.module.member.profile.service.mapper.MemberProfileMapper; 9 import com.topdraw.business.module.member.profile.service.mapper.MemberProfileMapper;
9 import com.topdraw.business.module.member.service.MemberService; 10 import com.topdraw.business.module.member.service.MemberService;
10 import com.topdraw.business.module.member.service.dto.MemberDTO; 11 import com.topdraw.business.module.member.service.dto.MemberDTO;
11 import com.topdraw.utils.PageUtil; 12 import com.topdraw.utils.*;
12 import com.topdraw.utils.QueryHelp; 13 import lombok.extern.slf4j.Slf4j;
13 import com.topdraw.utils.StringUtils; 14 import org.apache.logging.log4j.util.Base64Util;
14 import com.topdraw.utils.ValidationUtil; 15 import org.springframework.beans.BeanUtils;
15 import org.springframework.beans.factory.annotation.Autowired; 16 import org.springframework.beans.factory.annotation.Autowired;
16 import org.springframework.dao.EmptyResultDataAccessException; 17 import org.springframework.dao.EmptyResultDataAccessException;
17 import org.springframework.data.domain.Page;
18 import org.springframework.data.domain.Pageable;
19 import org.springframework.stereotype.Service; 18 import org.springframework.stereotype.Service;
20 import org.springframework.transaction.annotation.Propagation; 19 import org.springframework.transaction.annotation.Propagation;
21 import org.springframework.transaction.annotation.Transactional; 20 import org.springframework.transaction.annotation.Transactional;
22 import org.springframework.util.Assert; 21 import org.springframework.util.Assert;
23 22
24 import java.util.List;
25 import java.util.Map;
26 import java.util.Objects;
27
28 /** 23 /**
29 * @author XiangHan 24 * @author XiangHan
30 * @date 2021-10-22 25 * @date 2021-10-22
31 */ 26 */
32 @Service 27 @Service
33 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) 28 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
29 @Slf4j
34 public class MemberProfileServiceImpl implements MemberProfileService { 30 public class MemberProfileServiceImpl implements MemberProfileService {
35 31
36 @Autowired 32 @Autowired
37 private MemberProfileRepository MemberProfileRepository; 33 private MemberService memberService;
38
39 @Autowired 34 @Autowired
40 private MemberProfileMapper MemberProfileMapper; 35 private MemberProfileMapper memberProfileMapper;
41 @Autowired 36 @Autowired
42 private MemberService memberService; 37 private MemberProfileRepository memberProfileRepository;
43 38
44 @Override 39 @Override
45 public Map<String, Object> queryAll(MemberProfileQueryCriteria criteria, Pageable pageable) { 40 public MemberProfileDTO findById(Long id) {
46 Page<MemberProfile> page = MemberProfileRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); 41 MemberProfile MemberProfile = this.memberProfileRepository.findById(id).orElseGet(MemberProfile::new);
47 return PageUtil.toPage(page.map(MemberProfileMapper::toDto)); 42 ValidationUtil.isNull(MemberProfile.getId(),"MemberProfile","id",id);
43 return this.memberProfileMapper.toDto(MemberProfile);
48 } 44 }
49 45
50 @Override 46 @Override
51 public List<MemberProfileDTO> queryAll(MemberProfileQueryCriteria criteria) { 47 public MemberProfileDTO findByMemberId(Long memberId) {
52 return MemberProfileMapper.toDto(MemberProfileRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); 48 log.info("MemberProfileDTO ==>> findByMemberId ==>> resources ===>> [{}]",memberId);
49 MemberProfile memberProfile = this.memberProfileRepository.findByMemberId(memberId).orElseGet(MemberProfile::new);
50 ValidationUtil.isNull(memberProfile.getId(),"MemberProfile","memberId",memberId);
51 return this.memberProfileMapper.toDto(memberProfile);
53 } 52 }
54 53
55 @Override 54 @Override
56 public MemberProfileDTO findById(Long id) { 55 public MemberProfileDTO findByMemberCode(String memberCode) {
57 MemberProfile MemberProfile = MemberProfileRepository.findById(id).orElseGet(MemberProfile::new); 56 log.info("MemberProfileDTO ==>> findByMemberCode ==>> resources ===>> [{}]",memberCode);
58 ValidationUtil.isNull(MemberProfile.getId(),"MemberProfile","id",id); 57 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
59 return MemberProfileMapper.toDto(MemberProfile); 58 log.info("MemberProfileDTO ==>> findByMemberCode ==>> result ===>> [{}]",memberDTO);
59 return this.findByMemberId(memberDTO.getId());
60 } 60 }
61 61
62 @Override 62 @Override
63 @Transactional(rollbackFor = Exception.class) 63 @Transactional(rollbackFor = Exception.class)
64 public MemberProfile create(MemberProfile resources) { 64 public MemberProfile create(MemberProfile resources) {
65 String memberCode = resources.getMemberCode(); 65 log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources);
66 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 66
67 if (Objects.nonNull(memberDTO)) { 67 // 检查会员
68 String code = memberDTO.getCode(); 68 this.checkMember(resources);
69 if (StringUtils.isNotEmpty(code)) { 69
70 resources.setMemberCode(code); 70 this.memberProfileRepository.save(resources);
71 resources.setMemberId(memberDTO.getId());
72 resources.setId(null);
73 MemberProfileRepository.save(resources);
74 }
75 }
76 71
77 return resources; 72 return resources;
78 } 73 }
79 74
80 @Override 75 @Override
81 @Transactional(rollbackFor = Exception.class) 76 @Transactional(rollbackFor = Exception.class)
82 public void update(MemberProfile resources) { 77 public MemberProfile createDefault(MemberProfile resources) {
78 MemberProfile memberProfile = MemberProfileBuilder.build(resources);
79 return this.create(memberProfile);
80 }
83 81
82 @Override
83 @Transactional(rollbackFor = Exception.class)
84 public MemberProfile createDefault(Member resources) {
85 MemberProfile memberProfile = MemberProfileBuilder.build(resources);
86 return this.create(memberProfile);
87 }
88
89 @Override
90 public MemberProfile createDefaultByMemberId(Long resources) {
91 MemberProfile memberProfile = MemberProfileBuilder.build(resources);
92 return this.create(memberProfile);
93 }
94
95 private MemberDTO checkMember(MemberProfile resources){
96 Long memberId = resources.getMemberId();
84 String memberCode = resources.getMemberCode(); 97 String memberCode = resources.getMemberCode();
85 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 98
86 if (Objects.nonNull(memberDTO)) { 99 return this.memberService.checkMember(memberId,memberCode);
87 Long memberId = memberDTO.getId(); 100 }
88 101
89 MemberProfile memberProfile = MemberProfileRepository.findByMemberId(memberId); 102 @Override
90 if (Objects.nonNull(memberProfile)) { 103 @Transactional(rollbackFor = Exception.class)
91 ValidationUtil.isNull( memberProfile.getId(),"MemberProfile","id",memberProfile.getId()); 104 public MemberProfileDTO update(MemberProfile resources) {
92 resources.setId(memberProfile.getId()); 105
93 } else { 106 log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources);
94 resources.setId(null); 107 // 检查会员是否存在
95 } 108 this.checkMember(resources);
96 memberProfile.copy(resources); 109 // 真实姓名(加密)
97 MemberProfileRepository.save(memberProfile); 110 String realName = resources.getRealname();
111 if (StringUtils.isNotBlank(realName)) {
112 resources.setRealname(Base64Util.encode(realName));
98 } 113 }
114
115 MemberProfile memberProfile = new MemberProfile();
116 BeanUtils.copyProperties(resources,memberProfile);
117 MemberProfile _memberProfile = this.memberProfileRepository.save(memberProfile);
118
119 MemberProfileDTO memberProfileDTO = new MemberProfileDTO();
120 BeanUtils.copyProperties(_memberProfile,memberProfileDTO);
121 return memberProfileDTO;
122
99 } 123 }
100 124
101 @Override 125 @Override
102 @Transactional(rollbackFor = Exception.class) 126 @Transactional(rollbackFor = Exception.class)
103 public void delete(Long id) { 127 public void delete(Long id) {
104 Assert.notNull(id, "The given id must not be null!"); 128 Assert.notNull(id, "The given id must not be null!");
105 MemberProfile MemberProfile = MemberProfileRepository.findById(id).orElseThrow( 129 MemberProfile MemberProfile = this.memberProfileRepository.findById(id).orElseThrow(
106 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberProfile.class, id), 1)); 130 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberProfile.class, id), 1));
107 MemberProfileRepository.delete(MemberProfile); 131 this.memberProfileRepository.delete(MemberProfile);
108 } 132 }
109 133
134 @Override
135 @Transactional(rollbackFor = Exception.class)
136 public MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources, MemberDTO memberDTO) {
137 log.info("MemberProfileServiceImpl ==>> updateMemberProfileAndMember ==>> resources ===>> [{}]",resources);
138 MemberProfileDTO memberProfileDTO = this.update(resources);
139 // 同步会员信息
140 this.synchronizedMemberData(resources, memberDTO);
141 return memberProfileDTO;
142 }
143
144 private void synchronizedMemberData(MemberProfile resources, MemberDTO memberDTO) {
145
146 log.info("updateMemberProfileAndMember ==>> resources ==>> [{}]",resources);
147
148 memberDTO.setId(resources.getMemberId());
149 memberDTO.setCode(resources.getMemberCode());
150 memberDTO.setNickname(resources.getRealname());
151 memberDTO.setGender(resources.getGender());
152 memberDTO.setBirthday(resources.getBirthday());
153 memberDTO.setAvatarUrl(resources.getAvatarUrl());
154
155 Member member = new Member();
156 BeanUtils.copyProperties(memberDTO,member);
157
158 this.memberService.update(member);
159 }
110 160
111 } 161 }
......
...@@ -11,6 +11,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; ...@@ -11,6 +11,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
11 import javax.persistence.*; 11 import javax.persistence.*;
12 import java.io.Serializable; 12 import java.io.Serializable;
13 import java.sql.Timestamp; 13 import java.sql.Timestamp;
14 import java.time.LocalDate;
14 15
15 /** 16 /**
16 * @author XiangHan 17 * @author XiangHan
...@@ -56,6 +57,14 @@ public class MemberRelatedInfo implements Serializable { ...@@ -56,6 +57,14 @@ public class MemberRelatedInfo implements Serializable {
56 @Column(name = "sex") 57 @Column(name = "sex")
57 private Integer sex; 58 private Integer sex;
58 59
60 /** 生日 */
61 @Column(name = "birthday")
62 private LocalDate birthday;
63
64 /** 头像地址 */
65 @Column(name = "avatar_url")
66 private String avatarUrl;
67
59 // 创建时间 68 // 创建时间
60 @CreatedDate 69 @CreatedDate
61 @Column(name = "create_time") 70 @Column(name = "create_time")
......
1 package com.topdraw.business.module.member.relatedinfo.domain;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.exception.GlobeExceptionMsg;
5 import org.apache.commons.lang3.StringUtils;
6 import org.springframework.util.Assert;
7
8 import java.time.LocalDate;
9 import java.util.Objects;
10
11 /**
12 * @author :
13 * @description:
14 * @function :
15 * @date :Created in 2022/3/11 13:56
16 * @version: :
17 * @modified By:
18 * @since : modified in 2022/3/11 13:56
19 */
20 public class MemberRelatedInfoBuilder {
21
22 private static final Integer DEFAULT_VALUE_ = -1;
23 private static final Integer DEFAULT_VALUE_0 = 0;
24
25 public static MemberRelatedInfo build(MemberRelatedInfo memberRelatedInfo){
26 return build(memberRelatedInfo.getMemberId(),memberRelatedInfo.getMemberCode(),memberRelatedInfo.getId(),memberRelatedInfo.getName(),memberRelatedInfo.getSex(),
27 memberRelatedInfo.getCellphone(),memberRelatedInfo.getIdCard(),memberRelatedInfo.getBirthday(),memberRelatedInfo.getAvatarUrl(),memberRelatedInfo.getType());
28 }
29
30 public static MemberRelatedInfo build(Member member , MemberRelatedInfo memberRelatedInfo){
31 return build(member.getId(),member.getCode(),memberRelatedInfo.getId(),memberRelatedInfo.getName(),memberRelatedInfo.getSex(),
32 memberRelatedInfo.getCellphone(),memberRelatedInfo.getIdCard(),memberRelatedInfo.getBirthday(),memberRelatedInfo.getAvatarUrl(),memberRelatedInfo.getType());
33 }
34
35 public static MemberRelatedInfo build(Long memberId , String memberCode , Long id , String name , Integer sex ,
36 String cellphone , String idCard, LocalDate birthday , String avatarUrl , Integer type){
37
38 Assert.notNull(memberId, GlobeExceptionMsg.MEMBER_ID_IS_NULL);
39
40 MemberRelatedInfo memberRelatedInfo = new MemberRelatedInfo();
41 memberRelatedInfo.setMemberId(memberId);
42 memberRelatedInfo.setMemberCode(memberCode);
43
44 memberRelatedInfo.setId(id);
45 memberRelatedInfo.setName(stringIsNull(name));
46 memberRelatedInfo.setSex(Objects.isNull(sex)?DEFAULT_VALUE_:sex);
47 memberRelatedInfo.setCellphone(stringIsNull(cellphone));
48 memberRelatedInfo.setIdCard(StringUtils.isBlank(idCard)?"000000000000000000":idCard);
49
50 memberRelatedInfo.setBirthday(Objects.isNull(birthday)? LocalDate.of(1990,01,01):birthday);
51 memberRelatedInfo.setAvatarUrl(stringIsNull(avatarUrl));
52
53 memberRelatedInfo.setType(Objects.isNull(type)?DEFAULT_VALUE_0:type);
54 return memberRelatedInfo;
55 }
56
57 private static String stringIsNull(String s){
58 return StringUtils.isBlank(s)?"":s;
59 }
60
61 }
...@@ -12,5 +12,10 @@ import java.util.List; ...@@ -12,5 +12,10 @@ import java.util.List;
12 */ 12 */
13 public interface MemberRelatedInfoRepository extends JpaRepository<MemberRelatedInfo, Long>, JpaSpecificationExecutor<MemberRelatedInfo> { 13 public interface MemberRelatedInfoRepository extends JpaRepository<MemberRelatedInfo, Long>, JpaSpecificationExecutor<MemberRelatedInfo> {
14 14
15 List<MemberRelatedInfo> findByMemberIdAndIdCard(Long memberDTOId,String idCard); 15 MemberRelatedInfo findByIdCard(String idCard);
16
17 MemberRelatedInfo findByMemberIdAndIdCard(Long memberId , String idCard);
18
19 MemberRelatedInfo findByIdOrIdCard(Long id, String idCard);
20
16 } 21 }
......
1 package com.topdraw.business.module.member.relatedinfo.service; 1 package com.topdraw.business.module.member.relatedinfo.service;
2 2
3 import com.topdraw.business.module.member.domain.Member;
3 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo; 4 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
4 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO; 5 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
5 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria; 6 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
...@@ -15,31 +16,73 @@ import java.util.Map; ...@@ -15,31 +16,73 @@ import java.util.Map;
15 public interface MemberRelatedInfoService { 16 public interface MemberRelatedInfoService {
16 17
17 /** 18 /**
18 * 查询数据分页
19 * @param criteria 条件参数
20 * @param pageable 分页参数
21 * @return Map<String,Object>
22 */
23 Map<String,Object> queryAll(MemberRelatedInfoQueryCriteria criteria, Pageable pageable);
24
25 /**
26 * 查询所有数据不分页
27 * @param criteria 条件参数
28 * @return List<MemberRelatedInfoDTO>
29 */
30 List<MemberRelatedInfoDTO> queryAll(MemberRelatedInfoQueryCriteria criteria);
31
32 /**
33 * 根据ID查询 19 * 根据ID查询
34 * @param id ID 20 * @param id ID
35 * @return MemberRelatedInfoDTO 21 * @return MemberRelatedInfoDTO
36 */ 22 */
37 MemberRelatedInfoDTO findById(Long id); 23 MemberRelatedInfoDTO findById(Long id);
38 24
39 void create(MemberRelatedInfo resources); 25 /**
26 * 新增
27 * @param resources
28 */
29 MemberRelatedInfoDTO create(MemberRelatedInfo resources);
40 30
41 void update(MemberRelatedInfo resources); 31 /**
32 * 修改
33 * @param resources
34 */
35 MemberRelatedInfoDTO update(MemberRelatedInfo resources);
42 36
37 /**
38 * 删除
39 * @param id
40 */
43 void delete(Long id); 41 void delete(Long id);
44 42
43 /**
44 * 通过身份证查询
45 * @param resources
46 * @return
47 */
48 MemberRelatedInfoDTO findByIdCard(MemberRelatedInfo resources);
49
50 /**
51 * 通过身份证查询
52 * @param idCard 身份证
53 * @return
54 */
55 MemberRelatedInfoDTO findByIdCard(String idCard);
56
57 /**
58 *
59 * @param memberId
60 * @param idCard
61 * @return
62 */
63 MemberRelatedInfoDTO findByMemberIdAndIdCard(Long memberId , String idCard);
64
65 /**
66 *
67 * @param memberCode
68 * @param idCard
69 * @return
70 */
71 MemberRelatedInfoDTO findByMemberCodeAndIdCard(String memberCode , String idCard);
72
73 /**
74 *
75 * @param resources
76 * @return
77 */
78 MemberRelatedInfoDTO findByMemberIdAndIdCard(MemberRelatedInfo resources);
79
80 /**
81 *
82 * @param member
83 * @param resources
84 * @return
85 */
86 MemberRelatedInfoDTO findByMemberIdAndIdCard(Member member , MemberRelatedInfo resources);
87
45 } 88 }
......
...@@ -4,6 +4,7 @@ import lombok.Data; ...@@ -4,6 +4,7 @@ import lombok.Data;
4 4
5 import java.io.Serializable; 5 import java.io.Serializable;
6 import java.sql.Timestamp; 6 import java.sql.Timestamp;
7 import java.time.LocalDate;
7 8
8 9
9 /** 10 /**
...@@ -34,6 +35,12 @@ public class MemberRelatedInfoDTO implements Serializable { ...@@ -34,6 +35,12 @@ public class MemberRelatedInfoDTO implements Serializable {
34 // 性别 0:女;1:男;-1:未知 35 // 性别 0:女;1:男;-1:未知
35 private Integer sex; 36 private Integer sex;
36 37
38 // 生日
39 private LocalDate birthday;
40
41 // 头像地址
42 private String avatarUrl;
43
37 // 创建时间 44 // 创建时间
38 private Timestamp createTime; 45 private Timestamp createTime;
39 46
......
1 package com.topdraw.business.module.member.relatedinfo.service.impl; 1 package com.topdraw.business.module.member.relatedinfo.service.impl;
2 2
3 import com.topdraw.business.module.member.domain.Member;
3 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo; 4 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
5 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfoBuilder;
4 import com.topdraw.business.module.member.relatedinfo.repository.MemberRelatedInfoRepository; 6 import com.topdraw.business.module.member.relatedinfo.repository.MemberRelatedInfoRepository;
5 import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService; 7 import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService;
6 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO; 8 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
7 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria;
8 import com.topdraw.business.module.member.relatedinfo.service.mapper.MemberRelatedInfoMapper; 9 import com.topdraw.business.module.member.relatedinfo.service.mapper.MemberRelatedInfoMapper;
9 import com.topdraw.business.module.member.service.MemberService; 10 import com.topdraw.business.module.member.service.MemberService;
10 import com.topdraw.business.module.member.service.dto.MemberDTO; 11 import com.topdraw.business.module.member.service.dto.MemberDTO;
11 import com.topdraw.utils.PageUtil; 12 import com.topdraw.exception.BadRequestException;
12 import com.topdraw.utils.QueryHelp; 13 import com.topdraw.exception.GlobeExceptionMsg;
14 import com.topdraw.utils.RedisUtils;
13 import com.topdraw.utils.ValidationUtil; 15 import com.topdraw.utils.ValidationUtil;
16 import lombok.extern.slf4j.Slf4j;
17 import org.apache.commons.lang3.StringUtils;
18 import org.apache.logging.log4j.util.Base64Util;
14 import org.springframework.beans.factory.annotation.Autowired; 19 import org.springframework.beans.factory.annotation.Autowired;
15 import org.springframework.dao.EmptyResultDataAccessException; 20 import org.springframework.dao.EmptyResultDataAccessException;
16 import org.springframework.data.domain.Page;
17 import org.springframework.data.domain.Pageable;
18 import org.springframework.stereotype.Service; 21 import org.springframework.stereotype.Service;
19 import org.springframework.transaction.annotation.Propagation; 22 import org.springframework.transaction.annotation.Propagation;
20 import org.springframework.transaction.annotation.Transactional; 23 import org.springframework.transaction.annotation.Transactional;
21 import org.springframework.util.Assert; 24 import org.springframework.util.Assert;
22 import org.springframework.util.CollectionUtils;
23 25
24 import java.util.List;
25 import java.util.Map;
26 import java.util.Objects; 26 import java.util.Objects;
27 27
28 /** 28 /**
...@@ -31,71 +31,164 @@ import java.util.Objects; ...@@ -31,71 +31,164 @@ import java.util.Objects;
31 */ 31 */
32 @Service 32 @Service
33 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) 33 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
34 @Slf4j
34 public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService { 35 public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService {
35 36
36 @Autowired 37 @Autowired
37 private MemberRelatedInfoRepository MemberRelatedInfoRepository; 38 private MemberService memberService;
38
39 @Autowired 39 @Autowired
40 private MemberRelatedInfoMapper MemberRelatedInfoMapper; 40 private MemberRelatedInfoMapper memberRelatedInfoMapper;
41 @Autowired 41 @Autowired
42 private MemberService memberService; 42 private MemberRelatedInfoRepository memberRelatedInfoRepository;
43 43
44 @Override
45 public Map<String, Object> queryAll(MemberRelatedInfoQueryCriteria criteria, Pageable pageable) {
46 Page<MemberRelatedInfo> page = MemberRelatedInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
47 return PageUtil.toPage(page.map(MemberRelatedInfoMapper::toDto));
48 }
49 44
50 @Override 45 private static final String DEFAULT_IDCARD = "000000000000000000";
51 public List<MemberRelatedInfoDTO> queryAll(MemberRelatedInfoQueryCriteria criteria) {
52 return MemberRelatedInfoMapper.toDto(MemberRelatedInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
53 }
54 46
55 @Override 47 @Override
56 public MemberRelatedInfoDTO findById(Long id) { 48 public MemberRelatedInfoDTO findById(Long id) {
57 MemberRelatedInfo MemberRelatedInfo = MemberRelatedInfoRepository.findById(id).orElseGet(MemberRelatedInfo::new); 49 log.info("MemberRelatedInfoServiceImpl ==>> findById ==>> param ==>> [{}]",id);
58 ValidationUtil.isNull(MemberRelatedInfo.getId(),"MemberRelatedInfo","id",id); 50 MemberRelatedInfo memberRelatedInfo = this.memberRelatedInfoRepository.findById(id).orElseGet(MemberRelatedInfo::new);
59 return MemberRelatedInfoMapper.toDto(MemberRelatedInfo); 51 ValidationUtil.isNull(memberRelatedInfo.getId(),"MemberRelatedInfo","id",id);
52 return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
60 } 53 }
61 54
62 @Override 55 @Override
63 @Transactional(rollbackFor = Exception.class) 56 @Transactional(rollbackFor = Exception.class)
64 public void create(MemberRelatedInfo resources) { 57 public MemberRelatedInfoDTO create(MemberRelatedInfo resources) {
65 MemberRelatedInfoRepository.save(resources); 58 log.info("MemberRelatedInfoServiceImpl ==>> create ==>> param ==>> [{}]",resources);
59 String idCard = resources.getIdCard();
60 Long memberId = resources.getMemberId();
61 if (Objects.nonNull(memberId) && StringUtils.isNotBlank(idCard) && !idCard.equalsIgnoreCase(DEFAULT_IDCARD) ) {
62 MemberRelatedInfoDTO memberRelatedInfo = this.findByMemberIdAndIdCard(resources);
63 if (Objects.nonNull(memberRelatedInfo))
64 // 数据已存在
65 throw new BadRequestException(GlobeExceptionMsg.ENTITY_ALREADY_EXISTS);
66 }
67
68 this.checkMemberAndEncodeRealname(resources);
69
70 MemberRelatedInfo memberRelatedInfo = MemberRelatedInfoBuilder.build(resources);
71 this.memberRelatedInfoRepository.save(memberRelatedInfo);
72 log.info("MemberRelatedInfoServiceImpl ==>> create ==>> result ==>> [{}]",memberRelatedInfo);
73 return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
74 }
75
76 /**
77 * 检查会员是否存在,加密真实姓名
78 * @param resources
79 */
80 private void checkMemberAndEncodeRealname(MemberRelatedInfo resources) {
81
82 // 检查会员是否存在
83 this.checkMember(resources);
84
85 // 加密真实姓名
86 this.encodeRealname(resources);
87 }
88
89 /**
90 * 加密真实姓名
91 * @param resources
92 * @return
93 */
94 private void encodeRealname(MemberRelatedInfo resources){
95 String name = resources.getName();
96 if (StringUtils.isNotBlank(name)) {
97 String nickNameEncode = Base64Util.encode(name);
98 if (!nickNameEncode.equalsIgnoreCase(name))
99 resources.setName(nickNameEncode);
100 }
66 } 101 }
67 102
68 @Override 103 @Override
69 @Transactional(rollbackFor = Exception.class) 104 @Transactional(rollbackFor = Exception.class)
70 public void update(MemberRelatedInfo resources) { 105 public MemberRelatedInfoDTO update(MemberRelatedInfo resources) {
71 106 log.info("MemberRelatedInfoServiceImpl ==>> update ==>> param ==>> [{}]",resources);
72 String memberCode = resources.getMemberCode(); 107
73 Assert.notNull(memberCode,"memberCode can't be null!"); 108 this.checkMemberAndEncodeRealname(resources);
74 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 109
75 if (Objects.nonNull(memberDTO)) { 110 MemberRelatedInfo memberRelatedInfo = this.memberRelatedInfoRepository.findById(resources.getId()).orElseGet(MemberRelatedInfo::new);
76 Long memberDTOId = memberDTO.getId(); 111 ValidationUtil.isNull(memberRelatedInfo.getId(), "MemberRelatedInfo", "id", resources.getId());
77 String idCard = resources.getIdCard(); 112 memberRelatedInfo.copy(resources);
78 List<MemberRelatedInfo> memberRelatedInfoDTOS = MemberRelatedInfoRepository.findByMemberIdAndIdCard(memberDTOId,idCard); 113
79 if (!CollectionUtils.isEmpty(memberRelatedInfoDTOS)) { 114 this.memberRelatedInfoRepository.save(memberRelatedInfo);
80 for (MemberRelatedInfo memberRelatedInfoDTO : memberRelatedInfoDTOS) { 115
81 ValidationUtil.isNull( memberRelatedInfoDTO.getId(),"MemberRelatedInfo","id",memberRelatedInfoDTO.getId()); 116 log.info("MemberRelatedInfoServiceImpl ==>> update ==>> param ==>> [{}]", resources);
82 resources.setId(memberRelatedInfoDTO.getId()); 117 return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
83 resources.setMemberId(memberDTOId);
84 memberRelatedInfoDTO.copy(resources);
85 MemberRelatedInfoRepository.save(memberRelatedInfoDTO);
86 }
87 }
88 }
89 } 118 }
90 119
91 @Override 120 @Override
92 @Transactional(rollbackFor = Exception.class) 121 @Transactional(rollbackFor = Exception.class)
93 public void delete(Long id) { 122 public void delete(Long id) {
94 Assert.notNull(id, "The given id must not be null!"); 123 Assert.notNull(id, "The given id must not be null!");
95 MemberRelatedInfo MemberRelatedInfo = MemberRelatedInfoRepository.findById(id).orElseThrow( 124 MemberRelatedInfo MemberRelatedInfo = this.memberRelatedInfoRepository.findById(id).orElseThrow(
96 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberRelatedInfo.class, id), 1)); 125 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberRelatedInfo.class, id), 1));
97 MemberRelatedInfoRepository.delete(MemberRelatedInfo); 126 this.memberRelatedInfoRepository.delete(MemberRelatedInfo);
98 } 127 }
99 128
129 @Override
130 public MemberRelatedInfoDTO findByIdCard(MemberRelatedInfo resources){
131 log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> param ==>> [{}]",resources);
132 String idCard = resources.getIdCard();
133 Assert.notNull(idCard,"idCard can't be null");
134
135 if (!idCard.equalsIgnoreCase(DEFAULT_IDCARD)) {
136 MemberRelatedInfoDTO memberRelatedInfo = this.findByIdCard(idCard);
137 ValidationUtil.isNull(memberRelatedInfo.getId(),"MemberRelatedInfo","id",resources.getId());
138 log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> result ==>> [{}]",memberRelatedInfo);
139 return memberRelatedInfo;
140 }
141
142 return null;
143
144 }
145
146 @Override
147 public MemberRelatedInfoDTO findByIdCard(String idCard) {
148 log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> param ==>> [{}]",idCard);
149 MemberRelatedInfo memberRelatedInfo = this.memberRelatedInfoRepository.findByIdCard(idCard);
150 log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> result ==>> [{}]",memberRelatedInfo);
151 return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
152 }
153
154 @Override
155 public MemberRelatedInfoDTO findByMemberCodeAndIdCard(String memberCode, String idCard) {
156 Assert.notNull(memberCode,"memberCode can't be null");
157 Assert.notNull(idCard,"idCard can't be null");
158 MemberDTO memberDTO = this.checkMember(null, memberCode);
159 return this.findByMemberIdAndIdCard(memberDTO.getId(),idCard);
160 }
161
162 @Override
163 public MemberRelatedInfoDTO findByMemberIdAndIdCard(Long memberId, String idCard) {
164 log.info("MemberRelatedInfoServiceImpl ==>> findByMemberIdAndIdCard ==>> param ==>> [{}]",memberId+","+idCard);
165 MemberRelatedInfo memberRelatedInfo = this.memberRelatedInfoRepository.findByMemberIdAndIdCard(memberId, idCard);
166 log.info("MemberRelatedInfoServiceImpl ==>> findByMemberIdAndIdCard ==>> result ==>> [{}]",memberRelatedInfo);
167 return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
168 }
169
170 @Override
171 public MemberRelatedInfoDTO findByMemberIdAndIdCard(MemberRelatedInfo resources) {
172 Long memberId = resources.getMemberId();
173 String idCard = resources.getIdCard();
174 return this.findByMemberIdAndIdCard(memberId,idCard);
175 }
176
177 @Override
178 public MemberRelatedInfoDTO findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources) {
179 Long memberId = member.getId();
180 String idCard = resources.getIdCard();
181 return this.findByMemberIdAndIdCard(memberId,idCard);
182 }
183
184 private MemberDTO checkMember(MemberRelatedInfo resources){
185 Long memberId = resources.getMemberId();
186 String code = resources.getMemberCode();
187 return this.memberService.checkMember(memberId, code);
188 }
189
190 private MemberDTO checkMember(Long memberId , String memberCode){
191 return this.memberService.checkMember(memberId, memberCode);
192 }
100 193
101 } 194 }
......
...@@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; ...@@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
6 import org.springframework.data.jpa.repository.Modifying; 6 import org.springframework.data.jpa.repository.Modifying;
7 import org.springframework.data.jpa.repository.Query; 7 import org.springframework.data.jpa.repository.Query;
8 8
9 import java.util.List;
9 import java.util.Optional; 10 import java.util.Optional;
10 11
11 /** 12 /**
...@@ -16,8 +17,9 @@ public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecif ...@@ -16,8 +17,9 @@ public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecif
16 17
17 Optional<Member> findFirstByCode(String code); 18 Optional<Member> findFirstByCode(String code);
18 19
19 Optional<Member> findByCode(String code); 20 List<Member> findByUserIptvId(Long id);
20 21
22 Optional<Member> findByIdOrCode(Long id,String code);
21 23
22 @Modifying 24 @Modifying
23 @Query(value = "update uc_member set `points` = ?2 , `due_points` = ?3 where id = ?1 ",nativeQuery = true) 25 @Query(value = "update uc_member set `points` = ?2 , `due_points` = ?3 where id = ?1 ",nativeQuery = true)
......
...@@ -2,13 +2,8 @@ package com.topdraw.business.module.member.service; ...@@ -2,13 +2,8 @@ package com.topdraw.business.module.member.service;
2 2
3 import com.topdraw.business.module.member.domain.Member; 3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.service.dto.MemberDTO; 4 import com.topdraw.business.module.member.service.dto.MemberDTO;
5 import com.topdraw.business.module.member.service.dto.MemberQueryCriteria;
6 import com.topdraw.business.module.user.iptv.domain.UserTv;
7 import org.springframework.data.domain.Pageable;
8 import org.springframework.transaction.annotation.Transactional;
9 5
10 import java.util.List; 6 import java.util.List;
11 import java.util.Map;
12 7
13 /** 8 /**
14 * @author XiangHan 9 * @author XiangHan
...@@ -17,45 +12,63 @@ import java.util.Map; ...@@ -17,45 +12,63 @@ import java.util.Map;
17 public interface MemberService { 12 public interface MemberService {
18 13
19 /** 14 /**
20 * 查询数据分页
21 * @param criteria 条件参数
22 * @param pageable 分页参数
23 * @return Map<String,Object>
24 */
25 Map<String,Object> queryAll(MemberQueryCriteria criteria, Pageable pageable);
26
27 /**
28 * 查询所有数据不分页
29 * @param criteria 条件参数
30 * @return List<MemberDTO>
31 */
32 List<MemberDTO> queryAll(MemberQueryCriteria criteria);
33
34 /**
35 * 根据ID查询 15 * 根据ID查询
36 * @param id ID 16 * @param id ID
37 * @return MemberDTO 17 * @return MemberDTO
38 */ 18 */
39 MemberDTO findById(Long id); 19 MemberDTO findById(Long id);
40 20
41 Long create(Member resources); 21 /**
22 * 通过code查询会员
23 * @param code 会员编码
24 * @return MemberDTO
25 */
26 MemberDTO findByCode(String code);
42 27
43 void unbind(Member resources); 28 /**
29 * 保存
30 * @param resources
31 * @return Long id
32 */
33 MemberDTO create(Member resources);
44 34
45 void update(Member resources); 35 /**
36 * 创建并返回会员
37 * @param resources 会员
38 * @return Member
39 */
40 MemberDTO createAndReturnMember(Member resources);
46 41
47 void delete(Long id); 42 /**
43 * 修改会员
44 * @param resources
45 */
46 MemberDTO update(Member resources);
47
48 /**
49 * 修改会员积分
50 * @param member 会员
51 */
52 MemberDTO doUpdateMemberPoints(Member member);
48 53
49 /** 54 /**
50 * Code校验 55 * 查询绑定了大屏会员列表
51 * @param code 56 * @param id 条件参数
52 * @return MemberDTO 57 * @return Map<String,Object>
53 */ 58 */
54 MemberDTO getByCode(String code); 59 List<MemberDTO> findByUserIptvId(Long id);
55 60
56 boolean createMemberByUserTv(UserTv resources); 61 /**
62 * 检查会员信息
63 * @param id 会员id
64 * @param memberCode 会员编码
65 */
66 MemberDTO checkMember(Long id , String memberCode);
57 67
58 void doUpdateMemberPoints(Member member); 68 /**
69 * 检查会员信息
70 * @param member 会员
71 */
72 MemberDTO checkMember(Member member);
59 73
60 Member createAndReturnMember(Member resources);
61 } 74 }
......
1 package com.topdraw.business.module.member.service.dto;
2
3 import com.topdraw.annotation.Query;
4 import lombok.Data;
5
6 /**
7 * @author XiangHan
8 * @date 2021-10-22
9 */
10 @Data
11 public class MemberQueryCriteria{
12
13 @Query(type = Query.Type.LEFT_LIKE)
14 private String code;
15
16 // 类型 1:大屏;2:小屏
17 @Query(type = Query.Type.EQUAL)
18 private Integer type;
19
20 // 状态 0:不可用;1:可用
21 @Query(type = Query.Type.EQUAL)
22 private Integer status;
23
24 // 昵称 base64
25 @Query(type = Query.Type.LEFT_LIKE)
26 private String nickname;
27
28 // 性别 0:女;1:男;-1:未知
29 @Query(type = Query.Type.EQUAL)
30 private Integer gender;
31
32 // 分组信息
33 @Query(type = Query.Type.EQUAL)
34 private String groups;
35
36 // 标签
37 @Query(type = Query.Type.IN)
38 private String tags;
39
40 // 是否会员 0:非会员;1:会员
41 @Query(type = Query.Type.EQUAL)
42 private Integer vip;
43
44 // 会员等级(对应level表的level字段,非id)
45 @Query(type = Query.Type.EQUAL)
46 private Integer level;
47
48 // iptv账号id
49 @Query(type = Query.Type.EQUAL)
50 private Long userIptvId;
51
52 // 绑定IPTV平台 0:未知;1:电信;2:移动;3:联通
53 @Query(type = Query.Type.IN)
54 private Integer bindIptvPlatformType;
55
56 }
1 package com.topdraw.business.module.member.service.impl; 1 package com.topdraw.business.module.member.service.impl;
2 2
3 import com.topdraw.business.module.member.domain.Member; 3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.domain.MemberBuilder;
5 import com.topdraw.business.module.member.profile.domain.MemberProfile;
6 import com.topdraw.business.module.member.profile.domain.MemberProfileBuilder;
7 import com.topdraw.business.module.member.profile.service.MemberProfileService;
4 import com.topdraw.business.module.member.repository.MemberRepository; 8 import com.topdraw.business.module.member.repository.MemberRepository;
5 import com.topdraw.business.module.member.service.MemberService; 9 import com.topdraw.business.module.member.service.MemberService;
6 import com.topdraw.business.module.member.service.dto.MemberDTO; 10 import com.topdraw.business.module.member.service.dto.MemberDTO;
7 import com.topdraw.business.module.member.service.dto.MemberQueryCriteria;
8 import com.topdraw.business.module.member.service.mapper.MemberMapper; 11 import com.topdraw.business.module.member.service.mapper.MemberMapper;
9 import com.topdraw.business.module.user.iptv.domain.UserTv; 12 import com.topdraw.exception.BadRequestException;
10 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO; 13 import com.topdraw.exception.GlobeExceptionMsg;
11 import com.topdraw.config.LocalConstants; 14 import com.topdraw.utils.*;
12 import com.topdraw.util.IdWorker;
13 import com.topdraw.util.RedissonUtil;
14 import com.topdraw.util.TimestampUtil;
15 import com.topdraw.utils.PageUtil;
16 import com.topdraw.utils.QueryHelp;
17 import com.topdraw.utils.StringUtils;
18 import com.topdraw.utils.ValidationUtil;
19 import lombok.extern.slf4j.Slf4j; 15 import lombok.extern.slf4j.Slf4j;
20 import org.redisson.api.RLock; 16 import org.apache.commons.lang3.StringUtils;
21 import org.redisson.api.RedissonClient;
22 import org.springframework.beans.BeanUtils; 17 import org.springframework.beans.BeanUtils;
23 import org.springframework.beans.factory.annotation.Autowired; 18 import org.springframework.beans.factory.annotation.Autowired;
24 import org.springframework.context.annotation.Bean;
25 import org.springframework.dao.EmptyResultDataAccessException;
26 import org.springframework.data.domain.Page;
27 import org.springframework.data.domain.Pageable;
28 import org.springframework.stereotype.Service; 19 import org.springframework.stereotype.Service;
29 import org.springframework.transaction.annotation.Propagation; 20 import org.springframework.transaction.annotation.Propagation;
30 import org.springframework.transaction.annotation.Transactional; 21 import org.springframework.transaction.annotation.Transactional;
31 import org.springframework.util.Assert;
32 22
33 import java.time.LocalDateTime;
34 import java.util.List; 23 import java.util.List;
35 import java.util.Map;
36 import java.util.Objects; 24 import java.util.Objects;
37 25
38 /** 26 /**
39 * @author XiangHan 27 * @author XiangHan
40 * @date 2021-10-22 28 * @date 2021-10-22
41 */ 29 */
42 @Slf4j 30
43 @Service 31 @Service
44 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) 32 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
33 @Slf4j
45 public class MemberServiceImpl implements MemberService { 34 public class MemberServiceImpl implements MemberService {
46 35
47 @Autowired 36 @Autowired
48 private MemberRepository memberRepository;
49
50 @Autowired
51 private MemberMapper memberMapper; 37 private MemberMapper memberMapper;
52
53 @Autowired 38 @Autowired
54 private com.topdraw.business.module.user.iptv.service.UserTvService UserTvService; 39 private MemberRepository memberRepository;
40 @Autowired
41 private MemberProfileService memberProfileService;
55 42
56 // @Autowired
57 // private RedissonClient redissonClient;
58 43
59 @Override 44 @Override
60 public Map<String, Object> queryAll(MemberQueryCriteria criteria, Pageable pageable) { 45 public MemberDTO findById(Long id) {
61 Page<Member> page = memberRepository.findAll((root, criteriaQuery, criteriaBuilder) 46 Member member = this.memberRepository.findById(id).orElseGet(Member::new);
62 -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); 47 ValidationUtil.isNull(member.getId(),"Member","id",id);
63 return PageUtil.toPage(page.map(memberMapper::toDto)); 48
49 return this.memberMapper.toDto(member);
50
64 } 51 }
65 52
66 @Override 53 @Override
67 public List<MemberDTO> queryAll(MemberQueryCriteria criteria) { 54 public MemberDTO findByCode(String code) {
68 return memberMapper.toDto(memberRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); 55
56 Member member = this.memberRepository.findFirstByCode(code).orElseGet(Member::new);
57 ValidationUtil.isNull(member.getId(),"Member","id",code);
58
59 return this.memberMapper.toDto(member);
60
69 } 61 }
70 62
71 @Override 63 private MemberDTO findByIdOrCode(Long id,String code) {
72 public MemberDTO findById(Long id) { 64
73 Member member = memberRepository.findById(id).orElseGet(Member::new); 65 Member member = this.memberRepository.findByIdOrCode(id,code).orElseGet(Member::new);
74 ValidationUtil.isNull(member.getId(),"Member","id",id); 66 ValidationUtil.isNull(member.getId(),"Member","param",code);
75 return memberMapper.toDto(member); 67
68 return this.memberMapper.toDto(member);
69
76 } 70 }
77 71
78 @Override 72 @Override
79 @Transactional(rollbackFor = Exception.class) 73 public List<MemberDTO> findByUserIptvId(Long id) {
80 public Long create(Member resources) { 74
81 Member member = this.checkMemberData(resources); 75 List<Member> memberList = this.memberRepository.findByUserIptvId(id);
82 memberRepository.save(member); 76
83 return resources.getId(); 77 return this.memberMapper.toDto(memberList);
84 }
85 78
86 private Member checkMemberData(Member member) {
87 Long defaultValue = 0L;
88 String code = member.getCode();
89 member.setCode(StringUtils.isEmpty(code)?String.valueOf(IdWorker.generator()):code);
90 Integer gender = member.getGender();
91 member.setGender(Objects.nonNull(gender) ? gender : 0);
92 Integer type = member.getType();
93 member.setType(Objects.nonNull(type) ? type:-1);
94 Integer status = member.getStatus();
95 member.setStatus(Objects.nonNull(status) ? status:1);
96 Integer vip = member.getVip();
97 member.setVip(Objects.nonNull(vip) ? vip:0);
98 Integer level = member.getLevel();
99 member.setLevel(Objects.nonNull(level) ? level:0);
100 member.setExp(defaultValue);
101 member.setPoints(defaultValue);
102 member.setDuePoints(defaultValue);
103 member.setCouponAmount(defaultValue);
104 member.setDueCouponAmount(defaultValue);
105 member.setBlackStatus(0L);
106 return member;
107 } 79 }
108 80
109 @Override 81 @Override
110 @Transactional(rollbackFor = Exception.class) 82 public MemberDTO checkMember(Long id, String memberCode) {
111 public void unbind(Member resources) { 83
112 try { 84 if(Objects.isNull(id) && StringUtils.isBlank(memberCode))
113 String code = resources.getCode(); 85 throw new BadRequestException(GlobeExceptionMsg.MEMBER_ID_AND_CODE_ARE_NULL);
114 MemberDTO memberDTO = this.getByCode(code); 86
115 // Member member = memberRepository.findById(resources.getId()).orElseGet(Member::new); 87 return this.findByIdOrCode(id, memberCode);
116 ValidationUtil.isNull(memberDTO.getId(), "Member", "id", resources.getId());
117 Member member = new Member();
118 BeanUtils.copyProperties(memberDTO,member);
119
120 member.setUserIptvId(null);
121 member.setBindIptvTime(null);
122 member.setBindIptvPlatformType(null);
123 this.save(member);
124 } catch (Exception e) {
125 e.printStackTrace();
126 throw e;
127 }
128 } 88 }
129 89
130 @Override 90 @Override
131 @Transactional(rollbackFor = Exception.class) 91 public MemberDTO checkMember(Member member) {
132 public void update(Member resources) { 92
133 try { 93 String memberCode = member.getCode();
134 Member member = memberRepository.findByCode(resources.getCode()).orElseGet(Member::new); 94 Long memberId = member.getId();
135 ValidationUtil.isNull( member.getId(),"Member","id",member.getId()); 95
136 if (Objects.nonNull(member)) { 96 return this.checkMember(memberId,memberCode);
137 Long id = member.getId(); 97
138 resources.setId(id);
139
140 String platformAccount = resources.getPlatformAccount();
141 if (StringUtils.isNotEmpty(platformAccount)) {
142 resources.setUserIptvId(null);
143
144 UserTvDTO userTvDTO = this.UserTvService.findByPlatformAccount(platformAccount);
145 if (Objects.nonNull(userTvDTO)) {
146 Long userIptvId = userTvDTO.getId();
147 resources.setUserIptvId(userIptvId);
148 resources.setBindIptvPlatformType(1);
149 resources.setBindIptvTime(LocalDateTime.now());
150 }
151
152 } else {
153 resources.setUserIptvId(member.getUserIptvId());
154 resources.setBindIptvPlatformType(member.getBindIptvPlatformType());
155 resources.setBindIptvTime(member.getBindIptvTime());
156 }
157
158 }
159
160 member.copy(resources);
161 log.info("memberService ==>> update ==>> [{}]",member);
162 memberRepository.save(member);
163 } catch (Exception e) {
164 e.printStackTrace();
165 throw e;
166 }
167 } 98 }
168 99
169 @Override 100 @Override
170 @Transactional(rollbackFor = Exception.class) 101 @Transactional(rollbackFor = Exception.class)
171 public void delete(Long id) { 102 public MemberDTO create(Member resources) {
172 Assert.notNull(id, "The given id must not be null!"); 103
173 // RLock rLock = this.redissonClient.getLock("Member::delete::code" + id); 104 Member member = MemberBuilder.build(resources);
174 try { 105 Long memberId = this.save(member);
175 // RedissonUtil.lock(rLock); 106
176 Member member = memberRepository.findById(id).orElseThrow( 107 if (Objects.nonNull(memberId)) {
177 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", Member.class, id), 1)); 108 MemberProfile memberProfile = MemberProfileBuilder.build(member);
178 memberRepository.delete(member); 109 // 保存会员属性
179 } catch (Exception e) { 110 this.memberProfileService.create(memberProfile);
180 e.printStackTrace();
181 throw e;
182 } finally {
183 // RedissonUtil.unlock(rLock);
184 } 111 }
185 }
186 112
113 return this.memberMapper.toDto(member);
187 114
188 @Override
189 public MemberDTO getByCode(String code) {
190 return StringUtils.isNotEmpty(code) ? memberMapper.toDto(memberRepository.findFirstByCode(code).orElseGet(Member::new))
191 : new MemberDTO();
192 } 115 }
193 116
194 @Override 117 @Override
195 @Transactional(rollbackFor = Exception.class) 118 @Transactional(rollbackFor = Exception.class)
196 public boolean createMemberByUserTv(UserTv resources) { 119 public MemberDTO createAndReturnMember(Member resources) {
197 String platformAccount = resources.getPlatformAccount(); 120
198 UserTvDTO userTvDTO = this.UserTvService.findByPlatformAccount(platformAccount); 121 MemberDTO memberDTO = this.create(MemberBuilder.build(resources));
199 if (Objects.isNull(userTvDTO)) { 122
200 Member member = new Member(); 123 return memberDTO;
201 // 大屏
202 member.setType(LocalConstants.MEMBER_PLATFORM_TYPE_VIS);
203 Member member12 = this.checkMemberData(member);
204 Long memberId = this.create(member12);
205
206 if (Objects.nonNull(memberId)) {
207 UserTv userTv = new UserTv();
208 BeanUtils.copyProperties(resources,userTv);
209 userTv.setPlatformAccount(platformAccount);
210 userTv.setMemberCode(member12.getCode());
211 Long userIptvId = UserTvService.create(userTv);
212
213 if (Objects.nonNull(userIptvId)) {
214 member.setId(memberId);
215 member.setUserIptvId(userIptvId);
216 member.setBindIptvTime(LocalDateTime.now());
217 this.bindIptvId(member);
218 }
219 }
220
221 } else {
222 return false;
223 }
224 124
225 return true;
226 } 125 }
227 126
228 @Override 127 @Override
229 @Transactional(rollbackFor = Exception.class) 128 @Transactional(rollbackFor = Exception.class)
230 public void doUpdateMemberPoints(Member member) { 129 public MemberDTO update(Member resources) {
231 try { 130
232 Long id = member.getId(); 131 log.info("MemberServiceImpl ==>> update ==>> resources ==>> [{}]" , resources);
233 Long points = member.getPoints(); 132
234 Long duePoints = member.getDuePoints(); 133 MemberDTO memberDTO = this.findByCode(resources.getCode());
235 memberRepository.updateMemberPoints(id,points,duePoints); 134
236 } catch (Exception e) { 135 Member member = new Member();
237 e.printStackTrace(); 136 BeanUtils.copyProperties(memberDTO,member);
238 throw e; 137 member.copy(resources);
239 } 138
139 this.save(member);
140
141 return this.memberMapper.toDto(member);
142 }
143
144 @Transactional(propagation = Propagation.REQUIRES_NEW)
145 public Long save(Member member){
146 this.memberRepository.save(member);
147 return member.getId();
240 } 148 }
241 149
242 @Override 150 @Override
243 @Transactional(rollbackFor = Exception.class) 151 @Transactional(rollbackFor = Exception.class)
244 public Member createAndReturnMember(Member resources) { 152 public MemberDTO doUpdateMemberPoints(Member resources) {
245 Member member = this.checkMemberData(resources); 153 Member member = this.memberRepository.findById(resources.getId()).orElseGet(Member::new);
246 memberRepository.save(member); 154 ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId());
247 return resources; 155 member.copy(resources);
248 }
249 156
250 private void save(Member member){ 157 this.save(member);
251 memberRepository.save(member);
252 }
253 158
254 public void bindIptvId(Member resources) { 159 return this.memberMapper.toDto(member);
255 try {
256 Member member = memberRepository.findFirstByCode(resources.getCode()).orElseGet(Member::new);
257 if (member==null) {
258 ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId());
259 member.copy(resources);
260 }
261 this.save(member);
262 } catch (Exception e) {
263 e.printStackTrace();
264 throw e;
265 }
266 } 160 }
267 } 161 }
......
1 package com.topdraw.business.module.member.viphistory.domain;
2
3 import com.topdraw.business.module.member.domain.Member;
4
5 import java.time.LocalDateTime;
6 import java.util.Objects;
7
8 public class MemberVipHistoryBuilder {
9
10 public static MemberVipHistory build(Member member , Integer beforeVip) {
11 Long id = member.getId();
12 Integer vip = member.getVip();
13 LocalDateTime vipExpireTime = member.getVipExpireTime();
14
15 MemberVipHistory memberVipHistory = new MemberVipHistory();
16 memberVipHistory.setMemberId(Objects.isNull(id)? null:id);
17 memberVipHistory.setVip(Objects.isNull(vip)? null:vip);
18 memberVipHistory.setBeforeVip(Objects.isNull(beforeVip)? null:beforeVip);
19 memberVipHistory.setVipExpireTime(Objects.isNull(vipExpireTime)? null:vipExpireTime);
20 return build(memberVipHistory);
21 }
22
23 public static MemberVipHistory build(Long memberId, Integer vip, Integer beforeVip, LocalDateTime vipExpireTime ) {
24 MemberVipHistory memberVipHistory = new MemberVipHistory();
25 memberVipHistory.setMemberId(Objects.isNull(memberId)? null:memberId);
26 memberVipHistory.setVip(Objects.isNull(vip)? null:vip);
27 memberVipHistory.setBeforeVip(Objects.isNull(beforeVip)? null:beforeVip);
28 memberVipHistory.setVipExpireTime(Objects.isNull(vipExpireTime)? null:vipExpireTime);
29 return build(memberVipHistory);
30 }
31
32 public static MemberVipHistory build(MemberVipHistory memberVipHistory) {
33 return build(memberVipHistory.getId(),
34 memberVipHistory.getMemberId(),
35 memberVipHistory.getVip(),
36 memberVipHistory.getBeforeVip(),
37 memberVipHistory.getVipExpireTime(),
38 memberVipHistory.getStatus());
39 }
40
41 public static MemberVipHistory build(Long id, Long memberId , Integer vip , Integer beforeVip , LocalDateTime vipExpireTime, Integer status){
42 MemberVipHistory memberVipHistory = new MemberVipHistory();
43 memberVipHistory.setId(Objects.isNull(id)? null:id);
44 memberVipHistory.setMemberId(Objects.isNull(memberId)? null:memberId) ;
45 memberVipHistory.setVip(Objects.isNull(vip)? null:vip);
46 memberVipHistory.setBeforeVip(Objects.isNull(beforeVip)? null:beforeVip);
47 memberVipHistory.setVipExpireTime(Objects.isNull(vipExpireTime)? null:vipExpireTime);
48 memberVipHistory.setStatus(Objects.isNull(status)? 1:status);
49 return memberVipHistory;
50 }
51
52 }
1 package com.topdraw.business.module.member.viphistory.service; 1 package com.topdraw.business.module.member.viphistory.service;
2 2
3 import com.topdraw.business.module.member.domain.Member;
3 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory; 4 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
4 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO; 5 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO;
5 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryQueryCriteria; 6 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryQueryCriteria;
...@@ -16,32 +17,42 @@ import java.util.Map; ...@@ -16,32 +17,42 @@ import java.util.Map;
16 public interface MemberVipHistoryService { 17 public interface MemberVipHistoryService {
17 18
18 /** 19 /**
19 * 查询数据分页
20 * @param criteria 条件参数
21 * @param pageable 分页参数
22 * @return Map<String,Object>
23 */
24 Map<String,Object> queryAll(MemberVipHistoryQueryCriteria criteria, Pageable pageable);
25
26 /**
27 * 查询所有数据不分页
28 * @param criteria 条件参数
29 * @return List<MemberVipHistoryDTO>
30 */
31 List<MemberVipHistoryDTO> queryAll(MemberVipHistoryQueryCriteria criteria);
32
33 /**
34 * 根据ID查询 20 * 根据ID查询
35 * @param id ID 21 * @param id ID
36 * @return MemberVipHistoryDTO 22 * @return MemberVipHistoryDTO
37 */ 23 */
38 MemberVipHistoryDTO findById(Long id); 24 MemberVipHistoryDTO findById(Long id);
39 25
26 /**
27 *
28 * @param resources
29 */
40 void create(MemberVipHistory resources); 30 void create(MemberVipHistory resources);
41 31
32 /**
33 *
34 * @param member
35 */
36 void create(Member member, Integer beforeVip);
37
38 /**
39 *
40 * @param resources
41 */
42 void update(MemberVipHistory resources); 42 void update(MemberVipHistory resources);
43 43
44 /**
45 *
46 * @param id
47 */
44 void delete(Long id); 48 void delete(Long id);
45 49
50 /**
51 *
52 * @param id
53 * @param nowTime
54 * @return
55 */
46 MemberVipHistory findByTime(Long id, LocalDateTime nowTime); 56 MemberVipHistory findByTime(Long id, LocalDateTime nowTime);
57
47 } 58 }
......
1 package com.topdraw.business.module.member.viphistory.service.impl; 1 package com.topdraw.business.module.member.viphistory.service.impl;
2 2
3 3
4 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.service.MemberService; 5 import com.topdraw.business.module.member.service.MemberService;
5 import com.topdraw.business.module.member.service.dto.MemberDTO; 6 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory; 7 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
8 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistoryBuilder;
7 import com.topdraw.business.module.member.viphistory.repository.MemberVipHistoryRepository; 9 import com.topdraw.business.module.member.viphistory.repository.MemberVipHistoryRepository;
8 import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService; 10 import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
9 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO; 11 import com.topdraw.business.module.member.viphistory.service.dto.MemberVipHistoryDTO;
...@@ -37,61 +39,55 @@ import java.util.Objects; ...@@ -37,61 +39,55 @@ import java.util.Objects;
37 public class MemberVipHistoryServiceImpl implements MemberVipHistoryService { 39 public class MemberVipHistoryServiceImpl implements MemberVipHistoryService {
38 40
39 @Autowired 41 @Autowired
40 private MemberVipHistoryRepository memberVipHistoryRepository; 42 private MemberService memberService;
41 43
42 @Autowired 44 @Autowired
43 private MemberVipHistoryMapper memberVipHistoryMapper; 45 private MemberVipHistoryMapper memberVipHistoryMapper;
44 @Autowired 46 @Autowired
45 private MemberService memberService; 47 private MemberVipHistoryRepository memberVipHistoryRepository;
46
47 @Override
48 public Map<String, Object> queryAll(MemberVipHistoryQueryCriteria criteria, Pageable pageable) {
49 Page<MemberVipHistory> page = memberVipHistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
50 return PageUtil.toPage(page.map(memberVipHistoryMapper::toDto));
51 }
52
53 @Override
54 public List<MemberVipHistoryDTO> queryAll(MemberVipHistoryQueryCriteria criteria) {
55 return memberVipHistoryMapper.toDto(memberVipHistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
56 }
57 48
58 @Override 49 @Override
59 public MemberVipHistoryDTO findById(Long id) { 50 public MemberVipHistoryDTO findById(Long id) {
60 MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(id).orElseGet(MemberVipHistory::new); 51 log.info("MemberVipHistoryServiceImpl ==>> findById ==>> param ==>> [{}]",id);
52 MemberVipHistory memberVipHistory = this.memberVipHistoryRepository.findById(id).orElseGet(MemberVipHistory::new);
61 ValidationUtil.isNull(memberVipHistory.getId(),"MemberVipHistory","id",id); 53 ValidationUtil.isNull(memberVipHistory.getId(),"MemberVipHistory","id",id);
62 return memberVipHistoryMapper.toDto(memberVipHistory); 54 log.info("MemberVipHistoryServiceImpl ==>> findById ==>> result ==>> [{}]",memberVipHistory);
55 return this.memberVipHistoryMapper.toDto(memberVipHistory);
63 } 56 }
64 57
65 @Override 58 @Override
66 @Transactional(rollbackFor = Exception.class) 59 @Transactional(rollbackFor = Exception.class)
67 public void create(MemberVipHistory resources) { 60 public void create(MemberVipHistory resources) {
68 log.info("MemberVipHistoryServiceImpl ==>> create ==>> resources ==>> [{}]",resources); 61 log.info("MemberVipHistoryServiceImpl ==>> MemberVipHistoryServiceImpl ==>> param ==>> [{}]",resources);
69 String memberCode = resources.getMemberCode(); 62 this.checkMember(resources);
70 Assert.notNull(resources.getMemberCode(),"memberCode can't be null !!"); 63
71 MemberDTO byCode = memberService.getByCode(memberCode); 64 MemberVipHistory memberVipHistory = MemberVipHistoryBuilder.build(resources);
72 if (Objects.nonNull(byCode.getCode())) { 65 this.memberVipHistoryRepository.save(memberVipHistory);
73 Long id = byCode.getId(); 66 }
74 resources.setMemberId(id); 67
75 memberVipHistoryRepository.save(resources); 68 @Override
76 } 69 public void create(Member member, Integer beforeVip) {
70 this.checkMember(member);
71 MemberVipHistory memberVipHistory = MemberVipHistoryBuilder.build(member, beforeVip);
72 this.memberVipHistoryRepository.save(memberVipHistory);
77 } 73 }
78 74
79 @Override 75 @Override
80 @Transactional(rollbackFor = Exception.class) 76 @Transactional(rollbackFor = Exception.class)
81 public void update(MemberVipHistory resources) { 77 public void update(MemberVipHistory resources) {
82 MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(resources.getId()).orElseGet(MemberVipHistory::new); 78 MemberVipHistory memberVipHistory = this.memberVipHistoryRepository.findById(resources.getId()).orElseGet(MemberVipHistory::new);
83 ValidationUtil.isNull( memberVipHistory.getId(),"MemberVipHistory","id",resources.getId()); 79 ValidationUtil.isNull( memberVipHistory.getId(),"MemberVipHistory","id",resources.getId());
84 memberVipHistory.copy(resources); 80 memberVipHistory.copy(resources);
85 memberVipHistoryRepository.save(memberVipHistory); 81 this.memberVipHistoryRepository.save(memberVipHistory);
86 } 82 }
87 83
88 @Override 84 @Override
89 @Transactional(rollbackFor = Exception.class) 85 @Transactional(rollbackFor = Exception.class)
90 public void delete(Long id) { 86 public void delete(Long id) {
91 Assert.notNull(id, "The given id must not be null!"); 87 Assert.notNull(id, "The given id must not be null!");
92 MemberVipHistory memberVipHistory = memberVipHistoryRepository.findById(id).orElseThrow( 88 MemberVipHistory memberVipHistory = this.memberVipHistoryRepository.findById(id).orElseThrow(
93 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberVipHistory.class, id), 1)); 89 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", MemberVipHistory.class, id), 1));
94 memberVipHistoryRepository.delete(memberVipHistory); 90 this.memberVipHistoryRepository.delete(memberVipHistory);
95 } 91 }
96 92
97 @Override 93 @Override
...@@ -100,5 +96,16 @@ public class MemberVipHistoryServiceImpl implements MemberVipHistoryService { ...@@ -100,5 +96,16 @@ public class MemberVipHistoryServiceImpl implements MemberVipHistoryService {
100 return memberVipHistory; 96 return memberVipHistory;
101 } 97 }
102 98
99 private MemberDTO checkMember(MemberVipHistory resources){
100 Long memberId = resources.getMemberId();
101 String code = resources.getMemberCode();
102 return this.memberService.checkMember(memberId, code);
103 }
103 104
105 private MemberDTO checkMember(Member resources){
106 Long memberId = resources.getId();
107 String code = resources.getCode();
108 return this.memberService.checkMember(memberId, code);
109 }
110
104 } 111 }
......
1 package com.topdraw.business.module.points.available.rest;
2
3 /**
4 * @author XiangHan
5 * @date 2021-10-23
6 */
7 //@Api(tags = "PointsAvailable管理")
8 //@RestController
9 //@RequestMapping("/api/PointsAvailable")
10 public class PointsAvailableController {
11
12 /*@Autowired
13 private PointsAvailableService PointsAvailableService;
14
15 @GetMapping
16 @ApiOperation("查询PointsAvailable")
17 public ResultInfo getPointsAvailables(PointsAvailableQueryCriteria criteria, Pageable pageable) {
18 return ResultInfo.successPage(PointsAvailableService.queryAll(criteria,pageable));
19 }
20
21 @GetMapping(value = "/all")
22 @ApiOperation("查询所有PointsAvailable")
23 public ResultInfo getPointsAvailables(PointsAvailableQueryCriteria criteria) {
24 return ResultInfo.success(PointsAvailableService.queryAll(criteria));
25 }
26
27 @Log
28 @PostMapping
29 @ApiOperation("新增PointsAvailable")
30 public ResultInfo create(@Validated @RequestBody PointsAvailable resources) {
31 PointsAvailableService.create(resources);
32 return ResultInfo.success();
33 }
34
35 @Log
36 @PutMapping
37 @ApiOperation("修改PointsAvailable")
38 public ResultInfo update(@Validated @RequestBody PointsAvailable resources) {
39 PointsAvailableService.update(resources);
40 return ResultInfo.success();
41 }
42
43
44 @Log
45 @DeleteMapping(value = "/{id}")
46 @ApiOperation("删除PointsAvailable")
47 public ResultInfo delete(@PathVariable Long id) {
48 PointsAvailableService.delete(id);
49 return ResultInfo.success();
50 }
51
52 @GetMapping(value = "/getByCode/{code}")
53 @ApiOperation(value = "根据标识查询")
54 public ResultInfo getByCode(@PathVariable String code) {
55 return ResultInfo.success(PointsAvailableService.getByCode(code));
56 }*/
57 }
...@@ -75,7 +75,7 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { ...@@ -75,7 +75,7 @@ public class PointsAvailableServiceImpl implements PointsAvailableService {
75 public void create(PointsAvailable resources) { 75 public void create(PointsAvailable resources) {
76 String memberCode = resources.getMemberCode(); 76 String memberCode = resources.getMemberCode();
77 if (StringUtils.isNotEmpty(memberCode)) { 77 if (StringUtils.isNotEmpty(memberCode)) {
78 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 78 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
79 if (Objects.nonNull(memberDTO)) { 79 if (Objects.nonNull(memberDTO)) {
80 Long memberId = memberDTO.getId(); 80 Long memberId = memberDTO.getId();
81 resources.setMemberId(memberId); 81 resources.setMemberId(memberId);
...@@ -171,7 +171,7 @@ public class PointsAvailableServiceImpl implements PointsAvailableService { ...@@ -171,7 +171,7 @@ public class PointsAvailableServiceImpl implements PointsAvailableService {
171 public void create4Custom(PointsAvailable resources) { 171 public void create4Custom(PointsAvailable resources) {
172 String memberCode = resources.getMemberCode(); 172 String memberCode = resources.getMemberCode();
173 if (StringUtils.isNotEmpty(memberCode)) { 173 if (StringUtils.isNotEmpty(memberCode)) {
174 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 174 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
175 if (Objects.nonNull(memberDTO)) { 175 if (Objects.nonNull(memberDTO)) {
176 Long memberId = memberDTO.getId(); 176 Long memberId = memberDTO.getId();
177 resources.setMemberId(memberId); 177 resources.setMemberId(memberId);
......
1 package com.topdraw.business.module.points.detail.rest;
2
3 import io.swagger.annotations.Api;
4
5 /**
6 * @author XiangHan
7 * @date 2021-10-22
8 */
9 @Api(tags = "PointsDetail管理")
10 //@RestController
11 //@RequestMapping("/api/PointsDetail")
12 public class PointsDetailController {
13
14 /*@Autowired
15 private PointsDetailService PointsDetailService;
16
17 @GetMapping
18 @ApiOperation("查询PointsDetail")
19 public ResultInfo getPointsDetails(PointsDetailQueryCriteria criteria, Pageable pageable) {
20 return ResultInfo.successPage(PointsDetailService.queryAll(criteria,pageable));
21 }
22
23 @GetMapping(value = "/all")
24 @ApiOperation("查询所有PointsDetail")
25 public ResultInfo getPointsDetails(PointsDetailQueryCriteria criteria) {
26 return ResultInfo.success(PointsDetailService.queryAll(criteria));
27 }
28
29 @Log
30 @PostMapping
31 @ApiOperation("新增PointsDetail")
32 public ResultInfo create(@Validated @RequestBody PointsDetail resources) {
33 PointsDetailService.create(resources);
34 return ResultInfo.success();
35 }
36
37 @Log
38 @PutMapping
39 @ApiOperation("修改PointsDetail")
40 public ResultInfo update(@Validated @RequestBody PointsDetail resources) {
41 PointsDetailService.update(resources);
42 return ResultInfo.success();
43 }
44
45 @Log
46 @DeleteMapping(value = "/{id}")
47 @ApiOperation("删除PointsDetail")
48 public ResultInfo delete(@PathVariable Long id) {
49 PointsDetailService.delete(id);
50 return ResultInfo.success();
51 }
52
53 @GetMapping(value = "/getByCode/{code}")
54 @ApiOperation(value = "根据标识查询")
55 public ResultInfo getByCode(@PathVariable String code) {
56 return ResultInfo.success(PointsDetailService.getByCode(code));
57 }*/
58 }
...@@ -65,7 +65,7 @@ public class PointsDetailServiceImpl implements PointsDetailService { ...@@ -65,7 +65,7 @@ public class PointsDetailServiceImpl implements PointsDetailService {
65 public void create(PointsDetail resources) { 65 public void create(PointsDetail resources) {
66 String memberCode = resources.getMemberCode(); 66 String memberCode = resources.getMemberCode();
67 if (StringUtils.isNotEmpty(memberCode)) { 67 if (StringUtils.isNotEmpty(memberCode)) {
68 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 68 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
69 if (Objects.nonNull(memberDTO)) { 69 if (Objects.nonNull(memberDTO)) {
70 Long memberId = memberDTO.getId(); 70 Long memberId = memberDTO.getId();
71 resources.setMemberId(memberId); 71 resources.setMemberId(memberId);
...@@ -78,7 +78,7 @@ public class PointsDetailServiceImpl implements PointsDetailService { ...@@ -78,7 +78,7 @@ public class PointsDetailServiceImpl implements PointsDetailService {
78 public void create4Custom(PointsDetail resources) { 78 public void create4Custom(PointsDetail resources) {
79 String memberCode = resources.getMemberCode(); 79 String memberCode = resources.getMemberCode();
80 if (StringUtils.isNotEmpty(memberCode)) { 80 if (StringUtils.isNotEmpty(memberCode)) {
81 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 81 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
82 if (Objects.nonNull(memberDTO)) { 82 if (Objects.nonNull(memberDTO)) {
83 Long memberId = memberDTO.getId(); 83 Long memberId = memberDTO.getId();
84 resources.setMemberId(memberId); 84 resources.setMemberId(memberId);
......
...@@ -64,7 +64,7 @@ public class RightsHistoryServiceImpl implements RightsHistoryService { ...@@ -64,7 +64,7 @@ public class RightsHistoryServiceImpl implements RightsHistoryService {
64 public void create(RightsHistory resources) { 64 public void create(RightsHistory resources) {
65 String memberCode = resources.getMemberCode(); 65 String memberCode = resources.getMemberCode();
66 if (StringUtils.isNotBlank(memberCode)) { 66 if (StringUtils.isNotBlank(memberCode)) {
67 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 67 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
68 Long id = memberDTO.getId(); 68 Long id = memberDTO.getId();
69 resources.setMemberId(id); 69 resources.setMemberId(id);
70 } 70 }
......
...@@ -9,6 +9,7 @@ import org.springframework.data.annotation.LastModifiedDate; ...@@ -9,6 +9,7 @@ import org.springframework.data.annotation.LastModifiedDate;
9 import org.springframework.data.jpa.domain.support.AuditingEntityListener; 9 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
10 10
11 import javax.persistence.*; 11 import javax.persistence.*;
12 import javax.validation.constraints.NotNull;
12 import java.io.Serializable; 13 import java.io.Serializable;
13 import java.sql.Timestamp; 14 import java.sql.Timestamp;
14 import java.time.LocalDateTime; 15 import java.time.LocalDateTime;
...@@ -24,6 +25,9 @@ import java.time.LocalDateTime; ...@@ -24,6 +25,9 @@ import java.time.LocalDateTime;
24 @Table(name="uc_user_tv") 25 @Table(name="uc_user_tv")
25 public class UserTv implements Serializable { 26 public class UserTv implements Serializable {
26 27
28 @Column(name = "vis_user_id")
29 private Long visUserId;
30
27 /** 绑定的小屏账户会员编码 */ 31 /** 绑定的小屏账户会员编码 */
28 @Column(name = "priority_member_code") 32 @Column(name = "priority_member_code")
29 private String priorityMemberCode; 33 private String priorityMemberCode;
...@@ -77,9 +81,9 @@ public class UserTv implements Serializable { ...@@ -77,9 +81,9 @@ public class UserTv implements Serializable {
77 @Column(name = "`continue_days`") 81 @Column(name = "`continue_days`")
78 private Integer continueDays; 82 private Integer continueDays;
79 83
80 // 活跃时间 84 /** 活跃时间 */
81 @Column(name = "`active_time`") 85 @Column(name = "active_time")
82 private LocalDateTime activeTime; 86 private Timestamp activeTime;
83 87
84 // 分组 分组ID用逗号分隔 88 // 分组 分组ID用逗号分隔
85 @Column(name = "`groups`") 89 @Column(name = "`groups`")
......
1 package com.topdraw.business.module.user.iptv.domain;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.exception.GlobeExceptionMsg;
5 import com.topdraw.util.TimestampUtil;
6 import org.apache.commons.lang3.StringUtils;
7 import org.springframework.util.Assert;
8
9 import java.util.Objects;
10
11 /**
12 * @author :
13 * @description:
14 * @function :
15 * @date :Created in 2022/3/14 14:36
16 * @version: :
17 * @modified By:
18 * @since : modified in 2022/3/14 14:36
19 */
20 public class UserTvBuilder {
21
22 private static final Integer DEFAULT_VALUE = 1;
23 private static final String DEFAULT_CREATE_BY = "system";
24 private static final String DEFAULT_UPDATE_BY = "system";
25
26 public static UserTv build(UserTv userTv){
27 return build(userTv.getMemberId(),userTv.getMemberCode(),userTv.getId(),userTv.getPlatformAccount(),userTv.getNickname(),userTv.getUsername(),
28 userTv.getLoginDays(),userTv.getStatus(),userTv.getContinueDays(),userTv.getCreateBy(),userTv.getUpdateBy(), userTv.getVisUserId());
29 }
30
31 public static UserTv build(Long memberId, String memberCode , UserTv userTv){
32 return build(memberId,memberCode,userTv.getId(),userTv.getPlatformAccount(),userTv.getNickname(),userTv.getUsername(),
33 userTv.getLoginDays(),userTv.getStatus(),userTv.getContinueDays(),userTv.getCreateBy(),userTv.getUpdateBy(), userTv.getVisUserId());
34 }
35
36 public static UserTv build(String memberCode, UserTv userTv){
37 return build(null,memberCode,userTv.getId(),userTv.getPlatformAccount(),userTv.getNickname(),userTv.getUsername(),
38 userTv.getLoginDays(),userTv.getStatus(),userTv.getContinueDays(),userTv.getCreateBy(),userTv.getUpdateBy(), userTv.getVisUserId());
39 }
40
41 public static UserTv build(Member member, UserTv userTv){
42 return build(member.getId() , member.getCode(),userTv.getId(),userTv.getPlatformAccount(),userTv.getNickname(),userTv.getUsername(),
43 userTv.getLoginDays(),userTv.getStatus(),userTv.getContinueDays(),userTv.getCreateBy(),userTv.getUpdateBy(), userTv.getVisUserId());
44 }
45
46 public static UserTv build(Long memberId , String memberCode , Long id , String platformAccount , String nickname , String username,
47 Integer loginDays , Integer status , Integer continueDays , String createBy , String updateBy, Long visUserId){
48 Assert.notNull(memberId, GlobeExceptionMsg.MEMBER_ID_IS_NULL);
49 Assert.notNull(memberCode, GlobeExceptionMsg.MEMBER_CODE_IS_NULL);
50 Assert.notNull(platformAccount, GlobeExceptionMsg.IPTV_PLATFORM_ACCOUNT_IS_NULL);
51 Assert.notNull(platformAccount, GlobeExceptionMsg.VIS_USER_ID_IS_NULL);
52
53 // todo 原型模式
54 UserTv userTv = new UserTv();
55 userTv.setId(id);
56 userTv.setPlatformAccount(platformAccount);
57 userTv.setMemberCode(memberCode);
58 userTv.setMemberId(memberId);
59 userTv.setNickname(StringUtils.isBlank(nickname)?platformAccount:nickname);
60 userTv.setUsername(StringUtils.isBlank(username)?platformAccount:username);
61 userTv.setLoginDays(Objects.nonNull(loginDays)?loginDays:DEFAULT_VALUE);
62 userTv.setLoginType(DEFAULT_VALUE);
63 userTv.setStatus(Objects.nonNull(status)?status:DEFAULT_VALUE);
64 userTv.setActiveTime(TimestampUtil.now());
65 userTv.setContinueDays(Objects.nonNull(continueDays)?loginDays:DEFAULT_VALUE);
66 userTv.setCreateBy(StringUtils.isBlank(createBy)?DEFAULT_CREATE_BY:createBy);
67 userTv.setUpdateBy(StringUtils.isBlank(updateBy)?DEFAULT_UPDATE_BY:updateBy);
68 userTv.setVisUserId(visUserId);
69 return userTv;
70 }
71
72 }
...@@ -11,6 +11,9 @@ import java.util.Optional; ...@@ -11,6 +11,9 @@ import java.util.Optional;
11 * @date 2021-12-16 11 * @date 2021-12-16
12 */ 12 */
13 public interface UserTvRepository extends JpaRepository<UserTv, Long>, JpaSpecificationExecutor<UserTv> { 13 public interface UserTvRepository extends JpaRepository<UserTv, Long>, JpaSpecificationExecutor<UserTv> {
14
15 Optional<UserTv> findByPlatformAccount(String platformAccount); 14 Optional<UserTv> findByPlatformAccount(String platformAccount);
15
16 Optional<UserTv> findByPriorityMemberCode(String memberCode);
17
18 Optional<UserTv> findByMemberId(Long memberId);
16 } 19 }
......
1 package com.topdraw.business.module.user.iptv.service; 1 package com.topdraw.business.module.user.iptv.service;
2 2
3 import com.topdraw.business.module.member.service.dto.MemberDTO;
3 import com.topdraw.business.module.user.iptv.domain.UserTv; 4 import com.topdraw.business.module.user.iptv.domain.UserTv;
4 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO; 5 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
5 import com.topdraw.business.module.user.iptv.service.dto.UserTvQueryCriteria;
6 import org.springframework.data.domain.Pageable;
7 import org.springframework.transaction.annotation.Transactional;
8
9 import java.util.List;
10 import java.util.Map;
11 6
12 /** 7 /**
13 * @author XiangHan 8 * @author XiangHan
...@@ -16,35 +11,71 @@ import java.util.Map; ...@@ -16,35 +11,71 @@ import java.util.Map;
16 public interface UserTvService { 11 public interface UserTvService {
17 12
18 /** 13 /**
19 * 查询数据分页
20 * @param criteria 条件参数
21 * @param pageable 分页参数
22 * @return Map<String,Object>
23 */
24 Map<String,Object> queryAll(UserTvQueryCriteria criteria, Pageable pageable);
25
26 /**
27 * 查询所有数据不分页
28 * @param criteria 条件参数
29 * @return List<UserTvDTO>
30 */
31 List<UserTvDTO> queryAll(UserTvQueryCriteria criteria);
32
33 /**
34 * 根据ID查询 14 * 根据ID查询
35 * @param id ID 15 * @param id ID
36 * @return UserTvDTO 16 * @return UserTvDTO
37 */ 17 */
38 UserTvDTO findById(Long id); 18 UserTvDTO findById(Long id);
39 19
40 Long create(UserTv resources); 20 /**
21 *
22 * @param resources
23 * @return
24 */
25 UserTv create(UserTv resources);
41 26
27 /**
28 *
29 * @param resources
30 */
42 void update(UserTv resources); 31 void update(UserTv resources);
43 32
44 @Transactional(rollbackFor = Exception.class) 33 /**
34 *
35 * @param resources
36 */
45 void unbindPriorityMemberCode(UserTv resources); 37 void unbindPriorityMemberCode(UserTv resources);
46 38
39 /**
40 *
41 * @param id
42 */
47 void delete(Long id); 43 void delete(Long id);
48 44
45 /**
46 *
47 * @param platformAccount
48 * @return
49 */
49 UserTvDTO findByPlatformAccount(String platformAccount); 50 UserTvDTO findByPlatformAccount(String platformAccount);
51
52 /**
53 *
54 * @param memberCode
55 * @return
56 */
57 UserTvDTO findByPriorityMemberCode(String memberCode);
58
59 /**
60 * 通过会员
61 * @param memberId
62 * @return
63 */
64 UserTvDTO findByMemberId(Long memberId);
65
66 /**
67 * 检查会员是否是主账号
68 * @param memberId
69 * @param memberCode
70 * @return
71 */
72 boolean checkPriorityMemberByMemberIdOrMemberCode(Long memberId,String memberCode);
73
74 /**
75 *
76 * @param platformAccount
77 * @return
78 */
79 MemberDTO findMemberByPlatformAccount(String platformAccount);
80
50 } 81 }
......
...@@ -14,6 +14,13 @@ import java.time.LocalDateTime; ...@@ -14,6 +14,13 @@ import java.time.LocalDateTime;
14 @Data 14 @Data
15 public class UserTvDTO implements Serializable { 15 public class UserTvDTO implements Serializable {
16 16
17 private Long visUserId;
18
19 private String memberCode;
20
21 /** 绑定的小屏账户会员编码 */
22 private String priorityMemberCode;
23
17 // ID 24 // ID
18 private Long id; 25 private Long id;
19 26
...@@ -48,7 +55,7 @@ public class UserTvDTO implements Serializable { ...@@ -48,7 +55,7 @@ public class UserTvDTO implements Serializable {
48 private Integer continueDays; 55 private Integer continueDays;
49 56
50 // 活跃时间 57 // 活跃时间
51 private LocalDateTime activeTime; 58 private Timestamp activeTime;
52 59
53 // 分组 分组ID用逗号分隔 60 // 分组 分组ID用逗号分隔
54 private String groups; 61 private String groups;
......
1 package com.topdraw.business.module.user.iptv.service.dto;
2
3 import lombok.Data;
4
5 /**
6 * @author XiangHan
7 * @date 2021-12-16
8 */
9 @Data
10 public class UserTvQueryCriteria{
11 }
...@@ -6,24 +6,18 @@ import com.topdraw.business.module.user.iptv.domain.UserTv; ...@@ -6,24 +6,18 @@ import com.topdraw.business.module.user.iptv.domain.UserTv;
6 import com.topdraw.business.module.user.iptv.repository.UserTvRepository; 6 import com.topdraw.business.module.user.iptv.repository.UserTvRepository;
7 import com.topdraw.business.module.user.iptv.service.UserTvService; 7 import com.topdraw.business.module.user.iptv.service.UserTvService;
8 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO; 8 import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
9 import com.topdraw.business.module.user.iptv.service.dto.UserTvQueryCriteria;
10 import com.topdraw.business.module.user.iptv.service.mapper.UserTvMapper; 9 import com.topdraw.business.module.user.iptv.service.mapper.UserTvMapper;
11 import com.topdraw.utils.PageUtil; 10 import com.topdraw.exception.EntityNotFoundException;
12 import com.topdraw.utils.QueryHelp; 11 import com.topdraw.exception.GlobeExceptionMsg;
13 import com.topdraw.utils.ValidationUtil; 12 import com.topdraw.utils.ValidationUtil;
14 import org.springframework.beans.BeanUtils; 13 import org.apache.commons.lang3.StringUtils;
15 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
16 import org.springframework.dao.EmptyResultDataAccessException; 15 import org.springframework.dao.EmptyResultDataAccessException;
17 import org.springframework.data.domain.Page;
18 import org.springframework.data.domain.Pageable;
19 import org.springframework.stereotype.Service; 16 import org.springframework.stereotype.Service;
20 import org.springframework.transaction.annotation.Propagation; 17 import org.springframework.transaction.annotation.Propagation;
21 import org.springframework.transaction.annotation.Transactional; 18 import org.springframework.transaction.annotation.Transactional;
22 import org.springframework.util.Assert; 19 import org.springframework.util.Assert;
23 20
24 import java.time.LocalDateTime;
25 import java.util.List;
26 import java.util.Map;
27 import java.util.Objects; 21 import java.util.Objects;
28 import java.util.Optional; 22 import java.util.Optional;
29 23
...@@ -36,40 +30,63 @@ import java.util.Optional; ...@@ -36,40 +30,63 @@ import java.util.Optional;
36 public class UserTvServiceImpl implements UserTvService { 30 public class UserTvServiceImpl implements UserTvService {
37 31
38 @Autowired 32 @Autowired
39 private UserTvRepository UserTvRepository; 33 private UserTvMapper userTvMapper;
40
41 @Autowired
42 private UserTvMapper UserTvMapper;
43 @Autowired 34 @Autowired
44 private MemberService memberService; 35 private MemberService memberService;
45 36 @Autowired
37 private UserTvRepository userTvRepository;
38
39 /**
40 * 获取大屏账户对应的会员
41 * <Waring>
42 * 如果绑定了小屏,则获取对应主账号对应的会员信息,如果没有绑定小屏会员则默认获取大屏自己的会员(x_member)
43 * </Waring>
44 * @param platformAccount
45 * @return
46 */
46 @Override 47 @Override
47 public Map<String, Object> queryAll(UserTvQueryCriteria criteria, Pageable pageable) { 48 public MemberDTO findMemberByPlatformAccount(String platformAccount){
48 Page<UserTv> page = UserTvRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); 49 // 大屏账户
49 return PageUtil.toPage(page.map(UserTvMapper::toDto)); 50 UserTvDTO userTvDTO = this.findByPlatformAccount(platformAccount);
51
52 if (Objects.nonNull(userTvDTO)) {
53
54 // 主账号会员code
55 String priorityMemberCode = userTvDTO.getPriorityMemberCode();
56 if (StringUtils.isNotBlank(platformAccount))
57 return this.findMemberByMemberCode(priorityMemberCode);
58 else
59 return this.findMemberByMemberId(userTvDTO.getMemberId());
60
61 }
62
63 throw new EntityNotFoundException(UserTvDTO.class,"platformAccount", GlobeExceptionMsg.IPTV_IS_NULL);
50 } 64 }
51 65
52 @Override 66 private MemberDTO findMemberByMemberCode(String memberCode) {
53 public List<UserTvDTO> queryAll(UserTvQueryCriteria criteria) { 67 return this.memberService.findByCode(memberCode);
54 return UserTvMapper.toDto(UserTvRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); 68 }
69
70 private MemberDTO findMemberByMemberId(Long memberId) {
71 return this.memberService.findById(memberId);
55 } 72 }
56 73
57 @Override 74 @Override
58 public UserTvDTO findById(Long id) { 75 public UserTvDTO findById(Long id) {
59 UserTv UserTv = UserTvRepository.findById(id).orElseGet(UserTv::new); 76 UserTv UserTv = this.userTvRepository.findById(id).orElseGet(UserTv::new);
60 ValidationUtil.isNull(UserTv.getId(),"UserTv","id",id); 77 ValidationUtil.isNull(UserTv.getId(),"UserTv","id",id);
61 return UserTvMapper.toDto(UserTv); 78 return this.userTvMapper.toDto(UserTv);
62 } 79 }
63 80
64 @Override 81 @Override
65 @Transactional(rollbackFor = Exception.class) 82 @Transactional(rollbackFor = Exception.class)
66 public Long create(UserTv resources) { 83 public UserTv create(UserTv resources) {
67 MemberDTO memberDTO = memberService.getByCode(resources.getMemberCode()); 84 MemberDTO memberDTO = memberService.findByCode(resources.getMemberCode());
68 if (Objects.nonNull(memberDTO)) { 85 if (Objects.nonNull(memberDTO)) {
69 Long id = memberDTO.getId(); 86 Long id = memberDTO.getId();
70 resources.setMemberId(id); 87 resources.setMemberId(id);
71 UserTvRepository.save(resources); 88 this.userTvRepository.save(resources);
72 return resources.getId(); 89 return resources;
73 } 90 }
74 return null; 91 return null;
75 } 92 }
...@@ -77,53 +94,74 @@ public class UserTvServiceImpl implements UserTvService { ...@@ -77,53 +94,74 @@ public class UserTvServiceImpl implements UserTvService {
77 @Override 94 @Override
78 @Transactional(rollbackFor = Exception.class) 95 @Transactional(rollbackFor = Exception.class)
79 public void update(UserTv resources) { 96 public void update(UserTv resources) {
80 97 UserTv UserTv = this.userTvRepository.findById(resources.getId()).orElseGet(UserTv::new);
81 String platformAccount = resources.getPlatformAccount(); 98 ValidationUtil.isNull( UserTv.getId(),"UserTv","id",resources.getId());
82 UserTvDTO userTvDTO = this.findByPlatformAccount(platformAccount); 99 UserTv.copy(resources);
83 ValidationUtil.isNull(userTvDTO.getId(),"UserTv","id",resources.getId()); 100 this.userTvRepository.save(UserTv);
84
85 UserTv userTv = new UserTv();
86 BeanUtils.copyProperties(resources,userTv);
87
88 userTv.setId(userTvDTO.getId());
89 userTv.setMemberId(userTvDTO.getMemberId());
90 userTv.setUpdateTime(LocalDateTime.now());
91 UserTvRepository.save(userTv);
92 } 101 }
93 102
94
95 @Override 103 @Override
96 @Transactional(rollbackFor = Exception.class) 104 @Transactional(rollbackFor = Exception.class)
97 public void unbindPriorityMemberCode(UserTv resources) { 105 public void unbindPriorityMemberCode(UserTv resources) {
98 String platformAccount = resources.getPlatformAccount(); 106 UserTv UserTv = this.userTvRepository.findById(resources.getId()).orElseGet(UserTv::new);
99 UserTvDTO userTvDTO = this.findByPlatformAccount(platformAccount); 107 ValidationUtil.isNull( UserTv.getId(),"UserTv","id",resources.getId());
100 // UserTv UserTv = UserTvRepository.findById(resources.getId()).orElseGet(UserTv::new); 108 UserTv.copy(resources);
101 ValidationUtil.isNull( userTvDTO.getId(),"UserTv","id",resources.getId()); 109 this.userTvRepository.save(UserTv);
102 //UserTv.copy(resources);
103 UserTv userTv = new UserTv();
104 BeanUtils.copyProperties(userTvDTO,userTv);
105 userTv.setPriorityMemberCode(null);
106 UserTvRepository.save(userTv);
107 } 110 }
108 111
109 @Override 112 @Override
110 @Transactional(rollbackFor = Exception.class) 113 @Transactional(rollbackFor = Exception.class)
111 public void delete(Long id) { 114 public void delete(Long id) {
112 Assert.notNull(id, "The given id must not be null!"); 115 Assert.notNull(id, "The given id must not be null!");
113 UserTv UserTv = UserTvRepository.findById(id).orElseThrow( 116 UserTv UserTv = this.userTvRepository.findById(id).orElseThrow(
114 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", UserTv.class, id), 1)); 117 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", UserTv.class, id), 1));
115 UserTvRepository.delete(UserTv); 118 this.userTvRepository.delete(UserTv);
116 } 119 }
117 120
118 @Override 121 @Override
119 public UserTvDTO findByPlatformAccount(String platformAccount) { 122 public UserTvDTO findByPlatformAccount(String platformAccount) {
120 Optional<UserTv> userTv = UserTvRepository.findByPlatformAccount(platformAccount); 123 Optional<UserTv> userTv = this.userTvRepository.findByPlatformAccount(platformAccount);
121 if (userTv.isPresent()) { 124 if (userTv.isPresent()) {
122 ValidationUtil.isNull( userTv.get().getId(),"UserTv","id",userTv.get().getId()); 125 ValidationUtil.isNull( userTv.get().getId(),"UserTv","id",userTv.get().getId());
123 return UserTvMapper.toDto(userTv.get()); 126 return this.userTvMapper.toDto(userTv.get());
124 } 127 }
125 return null; 128 return null;
126 } 129 }
127 130
131 @Override
132 public UserTvDTO findByPriorityMemberCode(String memberCode) {
133 Optional<UserTv> userTv = this.userTvRepository.findByPriorityMemberCode(memberCode);
134 if (userTv.isPresent()) {
135 ValidationUtil.isNull( userTv.get().getId(),"UserTv","id",userTv.get().getId());
136 return this.userTvMapper.toDto(userTv.get());
137 }
138 return null;
139 }
140
141 @Override
142 public UserTvDTO findByMemberId(Long memberId) {
143 Optional<UserTv> userTv = this.userTvRepository.findByMemberId(memberId);
144 if (userTv.isPresent()) {
145 ValidationUtil.isNull( userTv.get().getId(),"UserTv","id",userTv.get().getId());
146 return this.userTvMapper.toDto(userTv.get());
147 }
148 return null;
149 }
150
151 @Override
152 public boolean checkPriorityMemberByMemberIdOrMemberCode(Long memberId, String memberCode) {
153 // 检查会员是否存在
154 this.checkMember(memberId, memberCode);
155
156 UserTvDTO userTvDTO = this.findByPriorityMemberCode(memberCode);
157 if (Objects.nonNull(userTvDTO)) {
158 return true;
159 }
160 return false;
161 }
162
163 private void checkMember(Long memberId, String memberCode){
164 this.memberService.checkMember(memberId, memberCode);
165 }
128 166
129 } 167 }
......
...@@ -81,7 +81,7 @@ public class UserWeixin extends DefaultAsyncMqModule implements Serializable { ...@@ -81,7 +81,7 @@ public class UserWeixin extends DefaultAsyncMqModule implements Serializable {
81 81
82 // 超时时间 82 // 超时时间
83 @Column(name = "expires_time") 83 @Column(name = "expires_time")
84 private LocalDateTime expiresTime; 84 private Timestamp expiresTime;
85 85
86 // 描述 86 // 描述
87 @Column(name = "description") 87 @Column(name = "description")
...@@ -131,7 +131,7 @@ public class UserWeixin extends DefaultAsyncMqModule implements Serializable { ...@@ -131,7 +131,7 @@ public class UserWeixin extends DefaultAsyncMqModule implements Serializable {
131 131
132 // 授权时间 132 // 授权时间
133 @Column(name = "auth_time") 133 @Column(name = "auth_time")
134 private LocalDateTime authTime; 134 private Timestamp authTime;
135 135
136 @Column(name = "sex") 136 @Column(name = "sex")
137 private Integer sex; 137 private Integer sex;
......
1 package com.topdraw.business.module.user.weixin.domain;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.exception.BadRequestException;
5 import com.topdraw.exception.GlobeExceptionMsg;
6 import com.topdraw.util.TimestampUtil;
7 import org.apache.commons.lang3.StringUtils;
8
9 import java.sql.Timestamp;
10 import java.util.Objects;
11
12 /**
13 * @author :
14 * @description:
15 * @function :
16 * @date :Created in 2022/3/14 17:02
17 * @version: :
18 * @modified By:
19 * @since : modified in 2022/3/14 17:02
20 */
21 public class UserWeixinBuilder {
22
23 public static UserWeixin build(Long memberId, String appId, String openId, String unionId, String nickname, String headimgurl){
24 UserWeixin userWeixin = new UserWeixin();
25 userWeixin.setAppid(appId);
26 userWeixin.setOpenid(openId);
27 userWeixin.setUnionid(unionId);
28 userWeixin.setNickname(nickname);
29 userWeixin.setHeadimgurl(headimgurl);
30 return build(memberId,userWeixin);
31 }
32
33 public static UserWeixin build(Long memberId, String appId, String openId, String unionId){
34 UserWeixin userWeixin = new UserWeixin();
35 userWeixin.setAppid(appId);
36 userWeixin.setOpenid(openId);
37 userWeixin.setUnionid(unionId);
38 return build(memberId,userWeixin);
39 }
40
41 public static UserWeixin build(UserWeixin userWeixin){
42 return build(userWeixin.getId(),
43 userWeixin.getMemberId(),
44 userWeixin.getMemberCode(),
45 userWeixin.getUnionid(),userWeixin.getAppid(),userWeixin.getOpenid(),
46 userWeixin.getStatus(),userWeixin.getSyncStatus(),
47 userWeixin.getNickname(),userWeixin.getHeadimgurl(),
48 userWeixin.getPrivilege(), userWeixin.getRefreshToken(),userWeixin.getAccessToken(),
49 userWeixin.getExpiresIn(),userWeixin.getExpiresTime(),userWeixin.getDescription(),
50 userWeixin.getCreateBy(),userWeixin.getUpdateBy(),userWeixin.getSourceType(),userWeixin.getSourceId(),
51 userWeixin.getSourceDesc(),userWeixin.getSourceUser(),userWeixin.getSourceEntity(),userWeixin.getCountry(),userWeixin.getProvince(),
52 userWeixin.getCity(),userWeixin.getSex());
53 }
54
55 public static UserWeixin build(Long memberId , String memberCode, UserWeixin userWeixin){
56 return build(userWeixin.getId(),
57 memberId,
58 memberCode,
59 userWeixin.getUnionid(),userWeixin.getAppid(),userWeixin.getOpenid(),
60 userWeixin.getStatus(),userWeixin.getSyncStatus(),
61 userWeixin.getNickname(),userWeixin.getHeadimgurl(),
62 userWeixin.getPrivilege(), userWeixin.getRefreshToken(),userWeixin.getAccessToken(),
63 userWeixin.getExpiresIn(),userWeixin.getExpiresTime(),userWeixin.getDescription(),
64 userWeixin.getCreateBy(),userWeixin.getUpdateBy(),userWeixin.getSourceType(),userWeixin.getSourceId(),
65 userWeixin.getSourceDesc(),userWeixin.getSourceUser(),userWeixin.getSourceEntity(),userWeixin.getCountry(),userWeixin.getProvince(),
66 userWeixin.getCity(),userWeixin.getSex());
67 }
68
69 public static UserWeixin build(Long memberId , UserWeixin userWeixin){
70 return build(userWeixin.getId(),
71 memberId,
72 userWeixin.getMemberCode(),
73 userWeixin.getUnionid(),userWeixin.getAppid(),userWeixin.getOpenid(),
74 userWeixin.getStatus(),userWeixin.getSyncStatus(),
75 userWeixin.getNickname(),userWeixin.getHeadimgurl(),
76 userWeixin.getPrivilege(), userWeixin.getRefreshToken(),userWeixin.getAccessToken(),
77 userWeixin.getExpiresIn(),userWeixin.getExpiresTime(),userWeixin.getDescription(),
78 userWeixin.getCreateBy(),userWeixin.getUpdateBy(),userWeixin.getSourceType(),userWeixin.getSourceId(),
79 userWeixin.getSourceDesc(),userWeixin.getSourceUser(),userWeixin.getSourceEntity(),userWeixin.getCountry(),userWeixin.getProvince(),
80 userWeixin.getCity(),userWeixin.getSex());
81 }
82
83 public static UserWeixin build(Member member , UserWeixin userWeixin) {
84 return build(userWeixin.getId(),
85 member.getId(),
86 member.getCode(),
87 userWeixin.getUnionid(),userWeixin.getAppid(),userWeixin.getOpenid(),
88 userWeixin.getStatus(),userWeixin.getSyncStatus(),
89 userWeixin.getNickname(),userWeixin.getHeadimgurl(),
90 userWeixin.getPrivilege(), userWeixin.getRefreshToken(),userWeixin.getAccessToken(),
91 userWeixin.getExpiresIn(),userWeixin.getExpiresTime(),userWeixin.getDescription(),
92 userWeixin.getCreateBy(),userWeixin.getUpdateBy(),userWeixin.getSourceType(),userWeixin.getSourceId(),
93 userWeixin.getSourceDesc(),userWeixin.getSourceUser(),userWeixin.getSourceEntity(),userWeixin.getCountry(),userWeixin.getProvince(),
94 userWeixin.getCity(),userWeixin.getSex());
95 }
96
97
98 public static UserWeixin build(Long id ,
99 Long memberId,
100 String memberCode,
101 String unionId, String appId, String openId,
102 Integer status, Integer syncStatus,
103 String nickname, String headimgurl,
104 String privilege, String refreshToken,
105 String accessToken, Integer expiresIn, Timestamp expiresTime, String description,
106 String createBy, String updateBy,
107 String sourceType, String sourceId,
108 String sourceDesc,
109 Long sourceUser, String sourceEntity,
110 String country, String province, String city,
111 Integer sex){
112
113 if (Objects.isNull(memberId)) {
114 throw new BadRequestException(GlobeExceptionMsg.MEMBER_ID_IS_NULL);
115 }
116
117 UserWeixin userWeixin = new UserWeixin();
118 userWeixin.setId(Objects.nonNull(id)?id:null);
119 userWeixin.setMemberId(memberId);
120 userWeixin.setMemberCode(memberCode);
121 userWeixin.setUnionid(StringUtils.isNotBlank(unionId)?unionId:"");
122 userWeixin.setAppid(StringUtils.isNotBlank(appId)?appId:"");
123 userWeixin.setOpenid(StringUtils.isNotBlank(openId)?openId:"");
124 userWeixin.setStatus(Objects.nonNull(status)?status:0);
125 userWeixin.setSyncStatus(Objects.nonNull(syncStatus)?syncStatus:0);
126 userWeixin.setNickname(StringUtils.isNotBlank(nickname)?nickname:"");
127 userWeixin.setHeadimgurl(StringUtils.isNotBlank(headimgurl)?headimgurl:"");
128 userWeixin.setPrivilege(StringUtils.isNotBlank(privilege)?privilege:"");
129 userWeixin.setRefreshToken(StringUtils.isNotBlank(refreshToken)?refreshToken:"");
130 userWeixin.setAccessToken(StringUtils.isNotBlank(accessToken)?accessToken:"");
131 userWeixin.setExpiresIn(expiresIn);
132 userWeixin.setExpiresTime(expiresTime);
133 userWeixin.setDescription(StringUtils.isNotBlank(description)?description:"");
134 userWeixin.setCreateBy(StringUtils.isNotBlank(createBy)?createBy:"system");
135 userWeixin.setUpdateBy(StringUtils.isNotBlank(updateBy)?updateBy:"system");
136 userWeixin.setSourceType(StringUtils.isNotBlank(sourceType)?sourceType:"");
137 userWeixin.setSourceId(StringUtils.isNotBlank(sourceId)?sourceId:"");
138 userWeixin.setSourceDesc(StringUtils.isNotBlank(sourceDesc)?sourceId:"");
139 userWeixin.setSourceUser(Objects.nonNull(sourceUser)?sourceUser:0L);
140 userWeixin.setSourceEntity(StringUtils.isNotBlank(sourceEntity)?sourceEntity:"");
141 userWeixin.setAuthTime(TimestampUtil.now());
142 userWeixin.setCountry(StringUtils.isNotBlank(country)?country:"");
143 userWeixin.setProvince(StringUtils.isNotBlank(province)?province:"");
144 userWeixin.setCity(StringUtils.isNotBlank(city)?city:"");
145 userWeixin.setSex(Objects.nonNull(sex)?sex:-1);
146 return userWeixin;
147 }
148
149 }
...@@ -16,10 +16,19 @@ import java.util.Optional; ...@@ -16,10 +16,19 @@ import java.util.Optional;
16 */ 16 */
17 public interface UserWeixinRepository extends JpaRepository<UserWeixin, Long>, JpaSpecificationExecutor<UserWeixin> { 17 public interface UserWeixinRepository extends JpaRepository<UserWeixin, Long>, JpaSpecificationExecutor<UserWeixin> {
18 18
19 Optional<UserWeixin> findFirstByMemberIdAndAppid(Long memberId, String appid);
20
21 Optional<UserWeixin> findFirstByUnionidAndAppidAndOpenid(String unionId, String appId, String openId);
22
19 Optional<UserWeixin> findFirstByAppidAndOpenid(String appId, String openId); 23 Optional<UserWeixin> findFirstByAppidAndOpenid(String appId, String openId);
20 24
25 Optional<UserWeixin> findFirstByUnionid(String unionid);
26
27 Optional<UserWeixin> findFirstByUnionidAndAppid(String unionid, String appId);
28
21 @Modifying 29 @Modifying
22 @Transactional 30 @Transactional
23 @Query(value = "update uc_user_weixin set update_time = :#{#resources.updateTime} where appid = :#{#resources.appid} and openid = :#{#resources.openid}" , nativeQuery = true) 31 @Query(value = "update `uc_user_weixin` set update_time = :#{#resources.updateTime} where appid = :#{#resources.appid} and openid = :#{#resources.openid}" , nativeQuery = true)
24 void updateTime(@Param("resources") UserWeixin resources); 32 void updateTime(@Param("resources") UserWeixin resources);
33
25 } 34 }
......
...@@ -15,35 +15,76 @@ import java.util.Map; ...@@ -15,35 +15,76 @@ import java.util.Map;
15 public interface UserWeixinService { 15 public interface UserWeixinService {
16 16
17 /** 17 /**
18 * 查询数据分页
19 * @param criteria 条件参数
20 * @param pageable 分页参数
21 * @return Map<String,Object>
22 */
23 Map<String,Object> queryAll(UserWeixinQueryCriteria criteria, Pageable pageable);
24
25 /**
26 * 查询所有数据不分页
27 * @param criteria 条件参数
28 * @return List<UserWeixinDTO>
29 */
30 List<UserWeixinDTO> queryAll(UserWeixinQueryCriteria criteria);
31
32 /**
33 * 根据ID查询 18 * 根据ID查询
34 * @param id ID 19 * @param id ID
35 * @return UserWeixinDTO 20 * @return UserWeixinDTO
36 */ 21 */
37 UserWeixinDTO findById(Long id); 22 UserWeixinDTO findById(Long id);
38 23
39 void updateTime(UserWeixin resources); 24 /**
40 25 *
41 void create(UserWeixin resources); 26 * @param resources
27 * @return
28 */
29 UserWeixin create(UserWeixin resources);
42 30
31 /**
32 *
33 * @param resources
34 */
43 void update(UserWeixin resources); 35 void update(UserWeixin resources);
44 36
37 /**
38 *
39 * @param resources
40 */
41 void updateTime(UserWeixin resources);
42
43 /**
44 *
45 * @param id
46 */
45 void delete(Long id); 47 void delete(Long id);
46 48
49 /**
50 *
51 * @param memberId
52 * @param appid
53 * @return
54 */
55 UserWeixinDTO findFirstByMemberIdAndAppid(Long memberId, String appid);
56
57 /**
58 *
59 * @param unionId
60 * @param appId
61 * @param openId
62 * @return
63 */
64 UserWeixinDTO findFirstByUnionIdAndAppIdAndOpenId(String unionId, String appId, String openId);
65
66 /**
67 *
68 * @param appId
69 * @param openId
70 * @return
71 */
47 UserWeixinDTO findFirstByAppIdAndOpenId(String appId, String openId); 72 UserWeixinDTO findFirstByAppIdAndOpenId(String appId, String openId);
48 73
74 /**
75 *
76 * @param unionid
77 * @return
78 */
79 UserWeixinDTO findFirstByUnionId(String unionid);
80
81 /**
82 *
83 * @param unionid
84 * @param appId
85 * @return
86 */
87 UserWeixinDTO findFirstByUnionidAndAppid(String unionid, String appId);
88
89
49 } 90 }
......
...@@ -54,7 +54,7 @@ public class UserWeixinDTO implements Serializable { ...@@ -54,7 +54,7 @@ public class UserWeixinDTO implements Serializable {
54 private Integer expiresIn; 54 private Integer expiresIn;
55 55
56 // 超时时间 56 // 超时时间
57 private LocalDateTime expiresTime; 57 private Timestamp expiresTime;
58 58
59 // 描述 59 // 描述
60 private String description; 60 private String description;
...@@ -90,7 +90,7 @@ public class UserWeixinDTO implements Serializable { ...@@ -90,7 +90,7 @@ public class UserWeixinDTO implements Serializable {
90 private String sourceEntity; 90 private String sourceEntity;
91 91
92 // 授权时间 92 // 授权时间
93 private LocalDateTime authTime; 93 private Timestamp authTime;
94 94
95 private Integer sex; 95 private Integer sex;
96 96
......
1 package com.topdraw.business.module.user.weixin.service.impl; 1 package com.topdraw.business.module.user.weixin.service.impl;
2 2
3 import com.topdraw.business.module.member.service.MemberService;
4 import com.topdraw.business.module.member.service.dto.MemberDTO;
5 import com.topdraw.business.module.user.weixin.domain.UserWeixin; 3 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
4 import com.topdraw.business.module.user.weixin.domain.UserWeixinBuilder;
6 import com.topdraw.business.module.user.weixin.repository.UserWeixinRepository; 5 import com.topdraw.business.module.user.weixin.repository.UserWeixinRepository;
7 import com.topdraw.business.module.user.weixin.service.UserWeixinService; 6 import com.topdraw.business.module.user.weixin.service.UserWeixinService;
8 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO; 7 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
9 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinQueryCriteria;
10 import com.topdraw.business.module.user.weixin.service.mapper.UserWeixinMapper; 8 import com.topdraw.business.module.user.weixin.service.mapper.UserWeixinMapper;
11 import com.topdraw.utils.PageUtil;
12 import com.topdraw.utils.QueryHelp;
13 import com.topdraw.utils.ValidationUtil; 9 import com.topdraw.utils.ValidationUtil;
14 import lombok.extern.slf4j.Slf4j; 10 import lombok.extern.slf4j.Slf4j;
15 import org.springframework.beans.BeanUtils;
16 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.dao.EmptyResultDataAccessException; 12 import org.springframework.dao.EmptyResultDataAccessException;
18 import org.springframework.data.domain.Page;
19 import org.springframework.data.domain.Pageable;
20 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
21 import org.springframework.transaction.annotation.Propagation; 14 import org.springframework.transaction.annotation.Propagation;
22 import org.springframework.transaction.annotation.Transactional; 15 import org.springframework.transaction.annotation.Transactional;
23 import org.springframework.util.Assert; 16 import org.springframework.util.Assert;
24 17
25 import java.sql.Time;
26 import java.sql.Timestamp;
27 import java.time.LocalDateTime;
28 import java.util.List;
29 import java.util.Map;
30
31 /** 18 /**
32 * @author XiangHan 19 * @author XiangHan
33 * @date 2021-12-16 20 * @date 2021-12-16
...@@ -38,83 +25,78 @@ import java.util.Map; ...@@ -38,83 +25,78 @@ import java.util.Map;
38 public class UserWeixinServiceImpl implements UserWeixinService { 25 public class UserWeixinServiceImpl implements UserWeixinService {
39 26
40 @Autowired 27 @Autowired
41 private UserWeixinRepository UserWeixinRepository; 28 private UserWeixinRepository userWeixinRepository;
42 29
43 @Autowired 30 @Autowired
44 private UserWeixinMapper UserWeixinMapper; 31 private UserWeixinMapper userWeixinMapper;
45 @Autowired
46 private MemberService memberService;
47
48 @Override
49 public Map<String, Object> queryAll(UserWeixinQueryCriteria criteria, Pageable pageable) {
50 Page<UserWeixin> page = UserWeixinRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
51 return PageUtil.toPage(page.map(UserWeixinMapper::toDto));
52 }
53
54 @Override
55 public List<UserWeixinDTO> queryAll(UserWeixinQueryCriteria criteria) {
56 return UserWeixinMapper.toDto(UserWeixinRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
57 }
58 32
59 @Override 33 @Override
60 public UserWeixinDTO findById(Long id) { 34 public UserWeixinDTO findById(Long id) {
61 UserWeixin UserWeixin = UserWeixinRepository.findById(id).orElseGet(UserWeixin::new); 35 UserWeixin UserWeixin = this.userWeixinRepository.findById(id).orElseGet(UserWeixin::new);
62 ValidationUtil.isNull(UserWeixin.getId(),"UserWeixin","id",id); 36 ValidationUtil.isNull(UserWeixin.getId(),"UserWeixin","id",id);
63 return UserWeixinMapper.toDto(UserWeixin); 37 return this.userWeixinMapper.toDto(UserWeixin);
64 } 38 }
65 39
66 @Override 40 @Override
67 @Transactional(rollbackFor = Exception.class) 41 @Transactional(rollbackFor = Exception.class)
68 public void updateTime(UserWeixin resources) { 42 public UserWeixin create(UserWeixin resources) {
69 log.info("updateTime ==>> resources ==>> [{}]",resources); 43 UserWeixin build = UserWeixinBuilder.build(resources);
70 String appid = resources.getAppid(); 44 this.userWeixinRepository.save(build);
71 String openid = resources.getOpenid(); 45 return resources;
72 UserWeixin userWeixin = UserWeixinRepository.findFirstByAppidAndOpenid(appid,openid).orElseGet(UserWeixin::new);
73 ValidationUtil.isNull( userWeixin.getId(),"UserWeixin","id",resources.getId());
74 userWeixin.setUpdateTime(LocalDateTime.now());
75 log.info("userWeixin ==>> userWeixin ==>> [{}]",userWeixin);
76 UserWeixinRepository.updateTime(userWeixin);
77 } 46 }
78 47
79 @Override 48 @Override
80 @Transactional(rollbackFor = Exception.class) 49 @Transactional(rollbackFor = Exception.class)
81 public void create(UserWeixin resources) { 50 public void update(UserWeixin resources) {
82 resources.setMemberId(null); 51 UserWeixin UserWeixin = this.userWeixinRepository.findById(resources.getId()).orElseGet(UserWeixin::new);
83 String memberCode = resources.getMemberCode(); 52 ValidationUtil.isNull( UserWeixin.getId(),"UserWeixin","id",resources.getId());
84 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 53 UserWeixin.copy(resources);
85 resources.setMemberId(memberDTO.getId()); 54 this.userWeixinRepository.save(UserWeixin);
86 UserWeixinRepository.save(resources);
87 } 55 }
88 56
89 @Override 57 @Override
90 @Transactional(rollbackFor = Exception.class) 58 public void updateTime(UserWeixin resources) {
91 public void update(UserWeixin resources) { 59 this.userWeixinRepository.updateTime(resources);
92 log.info("update ==>> resources ==>> [{}]",resources);
93 String appid = resources.getAppid();
94 String openid = resources.getOpenid();
95 UserWeixin userWeixin = UserWeixinRepository.findFirstByAppidAndOpenid(appid,openid).orElseGet(UserWeixin::new);
96 ValidationUtil.isNull( userWeixin.getId(),"UserWeixin","id",resources.getId());
97 resources.setId(userWeixin.getId());
98 resources.setMemberId(userWeixin.getMemberId());
99 BeanUtils.copyProperties(resources,userWeixin);
100 log.info("update ==>>userWeixin ==>> resources ==>> [{}]",resources);
101 UserWeixinRepository.save(resources);
102 } 60 }
103 61
104 @Override 62 @Override
105 @Transactional(rollbackFor = Exception.class) 63 @Transactional(rollbackFor = Exception.class)
106 public void delete(Long id) { 64 public void delete(Long id) {
107 Assert.notNull(id, "The given id must not be null!"); 65 Assert.notNull(id, "The given id must not be null!");
108 UserWeixin UserWeixin = UserWeixinRepository.findById(id).orElseThrow( 66 UserWeixin UserWeixin = this.userWeixinRepository.findById(id).orElseThrow(
109 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", UserWeixin.class, id), 1)); 67 () -> new EmptyResultDataAccessException(String.format("No %s entity " + "with id %s " + "exists!", UserWeixin.class, id), 1));
110 UserWeixinRepository.delete(UserWeixin); 68 this.userWeixinRepository.delete(UserWeixin);
69 }
70
71 @Override
72 public UserWeixinDTO findFirstByMemberIdAndAppid(Long memberId, String appid) {
73 UserWeixin userWeixin = this.userWeixinRepository.findFirstByMemberIdAndAppid(memberId, appid).orElseGet(UserWeixin::new);
74 ValidationUtil.isNull(userWeixin.getId(),"UserWeixin","id",memberId);
75 return this.userWeixinMapper.toDto(userWeixin);
76 }
77
78 @Override
79 public UserWeixinDTO findFirstByUnionIdAndAppIdAndOpenId(String unionId, String appId, String openId) {
80 UserWeixin userWeixin = this.userWeixinRepository.findFirstByUnionidAndAppidAndOpenid(unionId, appId,openId).orElseGet(UserWeixin::new);
81 return this.userWeixinMapper.toDto(userWeixin);
111 } 82 }
112 83
113 @Override 84 @Override
114 public UserWeixinDTO findFirstByAppIdAndOpenId(String appId, String openId) { 85 public UserWeixinDTO findFirstByAppIdAndOpenId(String appId, String openId) {
115 UserWeixin userWeixin = this.UserWeixinRepository.findFirstByAppidAndOpenid(appId,openId).orElseGet(UserWeixin::new); 86 UserWeixin userWeixin = this.userWeixinRepository.findFirstByAppidAndOpenid(appId,openId).orElseGet(UserWeixin::new);
116 return UserWeixinMapper.toDto(userWeixin); 87 return this.userWeixinMapper.toDto(userWeixin);
88 }
89
90 @Override
91 public UserWeixinDTO findFirstByUnionId(String unionid) {
92 UserWeixin userWeixin = this.userWeixinRepository.findFirstByUnionid(unionid).orElseGet(UserWeixin::new);
93 return this.userWeixinMapper.toDto(userWeixin);
117 } 94 }
118 95
96 @Override
97 public UserWeixinDTO findFirstByUnionidAndAppid(String unionid, String appId) {
98 UserWeixin userWeixin = this.userWeixinRepository.findFirstByUnionidAndAppid(unionid,appId).orElseGet(UserWeixin::new);
99 return this.userWeixinMapper.toDto(userWeixin);
100 }
119 101
120 } 102 }
......
1 package com.topdraw.business.process.service;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.service.dto.MemberDTO;
5
6 public interface MemberOperationService {
7
8 void doUpdateMemberInfo(Member member);
9
10 void doInsertMember(Member member);
11
12 MemberDTO findById(Long memberId);
13
14 void doUpdateMemberExp(Member member);
15
16 void doUpdateMemberPoints(Member member);
17
18 void doUpdateMemberCoupon(Member member);
19 }
...@@ -8,11 +8,8 @@ import com.topdraw.business.module.member.service.MemberService; ...@@ -8,11 +8,8 @@ import com.topdraw.business.module.member.service.MemberService;
8 import com.topdraw.business.module.member.service.dto.MemberDTO; 8 import com.topdraw.business.module.member.service.dto.MemberDTO;
9 import com.topdraw.business.process.domian.TempCoupon; 9 import com.topdraw.business.process.domian.TempCoupon;
10 import com.topdraw.business.process.service.CouponOperationService; 10 import com.topdraw.business.process.service.CouponOperationService;
11 import com.topdraw.business.process.service.MemberOperationService;
12 import com.topdraw.business.process.service.RightsOperationService; 11 import com.topdraw.business.process.service.RightsOperationService;
13 import com.topdraw.util.RedissonUtil; 12 import com.topdraw.business.process.service.member.MemberOperationService;
14 import org.redisson.api.RLock;
15 import org.redisson.api.RedissonClient;
16 import org.slf4j.Logger; 13 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory; 14 import org.slf4j.LoggerFactory;
18 import org.springframework.beans.BeanUtils; 15 import org.springframework.beans.BeanUtils;
...@@ -127,7 +124,7 @@ public class CouponOperationServiceImpl implements CouponOperationService { ...@@ -127,7 +124,7 @@ public class CouponOperationServiceImpl implements CouponOperationService {
127 member.setCouponAmount(currentCoupon); 124 member.setCouponAmount(currentCoupon);
128 member.setDueCouponAmount(expireSoonCouponCount); 125 member.setDueCouponAmount(expireSoonCouponCount);
129 member.setUpdateTime(LocalDateTime.now()); 126 member.setUpdateTime(LocalDateTime.now());
130 this.memberOperationService.doUpdateMemberInfo(member); 127 this.memberOperationService.doUpdateMember(member);
131 } 128 }
132 129
133 private MemberDTO findMemberByMemberId(Long memberId) { 130 private MemberDTO findMemberByMemberId(Long memberId) {
......
...@@ -9,12 +9,9 @@ import com.topdraw.business.module.member.service.MemberService; ...@@ -9,12 +9,9 @@ import com.topdraw.business.module.member.service.MemberService;
9 import com.topdraw.business.module.member.service.dto.MemberDTO; 9 import com.topdraw.business.module.member.service.dto.MemberDTO;
10 import com.topdraw.business.process.domian.TempExp; 10 import com.topdraw.business.process.domian.TempExp;
11 import com.topdraw.business.process.service.ExpOperationService; 11 import com.topdraw.business.process.service.ExpOperationService;
12 import com.topdraw.business.process.service.MemberOperationService; 12 import com.topdraw.business.process.service.member.MemberOperationService;
13 import com.topdraw.util.IdWorker; 13 import com.topdraw.util.IdWorker;
14 import com.topdraw.util.RedissonUtil;
15 import com.topdraw.utils.StringUtils; 14 import com.topdraw.utils.StringUtils;
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;
...@@ -76,7 +73,7 @@ public class ExpOperationServiceImpl implements ExpOperationService { ...@@ -76,7 +73,7 @@ public class ExpOperationServiceImpl implements ExpOperationService {
76 */ 73 */
77 private void refresh(TempExp tempExp) { 74 private void refresh(TempExp tempExp) {
78 String memberCode = tempExp.getMemberCode(); 75 String memberCode = tempExp.getMemberCode();
79 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 76 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
80 Long id = memberDTO.getId(); 77 Long id = memberDTO.getId();
81 tempExp.setId(id); 78 tempExp.setId(id);
82 try { 79 try {
...@@ -146,7 +143,7 @@ public class ExpOperationServiceImpl implements ExpOperationService { ...@@ -146,7 +143,7 @@ public class ExpOperationServiceImpl implements ExpOperationService {
146 member.setExp(totalExp); 143 member.setExp(totalExp);
147 member.setLevel(level); 144 member.setLevel(level);
148 member.setUpdateTime(LocalDateTime.now()); 145 member.setUpdateTime(LocalDateTime.now());
149 this.memberOperationService.doUpdateMemberInfo(member); 146 this.memberOperationService.doUpdateMember(member);
150 } 147 }
151 148
152 private MemberDTO findMemberByMemberId(Long memberId) { 149 private MemberDTO findMemberByMemberId(Long memberId) {
......
1 package com.topdraw.business.process.service.impl;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.service.MemberService;
5 import com.topdraw.business.module.member.service.dto.MemberDTO;
6 import com.topdraw.business.process.service.MemberOperationService;
7 import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.stereotype.Service;
9 import org.springframework.util.Assert;
10
11 import java.util.Objects;
12
13 @Service
14 public class MemberOperationServiceImpl implements MemberOperationService {
15
16 @Autowired
17 MemberService memberService;
18
19 @Override
20 public void doUpdateMemberInfo(Member member) {
21 Long id = member.getId();
22 Assert.notNull(id,"ERROR MSG: MemberOperationServiceImpl -> doUpdateMemberInfo -> id not be null!!");
23 this.memberService.update(member);
24 }
25
26 @Override
27 public void doInsertMember(Member member) {
28 this.memberService.create(member);
29 }
30
31 @Override
32 public MemberDTO findById(Long memberId) {
33 return Objects.nonNull(memberId) ? this.memberService.findById(memberId) : null;
34 }
35
36 @Override
37 public void doUpdateMemberExp(Member member) {
38 this.doUpdateMemberInfo(member);
39 }
40
41 @Override
42 public void doUpdateMemberPoints(Member member) {
43 this.memberService.doUpdateMemberPoints(member);
44 }
45
46 @Override
47 public void doUpdateMemberCoupon(Member member) {
48 this.doUpdateMemberInfo(member);
49 }
50 }
...@@ -12,17 +12,12 @@ import com.topdraw.business.module.points.detail.domain.PointsDetail; ...@@ -12,17 +12,12 @@ import com.topdraw.business.module.points.detail.domain.PointsDetail;
12 import com.topdraw.business.module.points.detail.service.PointsDetailService; 12 import com.topdraw.business.module.points.detail.service.PointsDetailService;
13 import com.topdraw.business.module.points.service.PointsService; 13 import com.topdraw.business.module.points.service.PointsService;
14 import com.topdraw.business.process.domian.TempPoints; 14 import com.topdraw.business.process.domian.TempPoints;
15 import com.topdraw.business.process.service.MemberOperationService;
16 import com.topdraw.business.process.service.PointsOperationService; 15 import com.topdraw.business.process.service.PointsOperationService;
16 import com.topdraw.business.process.service.member.MemberOperationService;
17 import com.topdraw.util.IdWorker; 17 import com.topdraw.util.IdWorker;
18 import com.topdraw.util.RedissonUtil;
19 import com.topdraw.util.TimestampUtil; 18 import com.topdraw.util.TimestampUtil;
20 import com.topdraw.utils.StringUtils; 19 import com.topdraw.utils.StringUtils;
21 import lombok.extern.slf4j.Slf4j; 20 import lombok.extern.slf4j.Slf4j;
22 import org.redisson.api.RLock;
23 import org.redisson.api.RedissonClient;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26 import org.springframework.beans.BeanUtils; 21 import org.springframework.beans.BeanUtils;
27 import org.springframework.beans.factory.annotation.Autowired; 22 import org.springframework.beans.factory.annotation.Autowired;
28 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; 23 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
...@@ -31,7 +26,6 @@ import org.springframework.transaction.annotation.Propagation; ...@@ -31,7 +26,6 @@ import org.springframework.transaction.annotation.Propagation;
31 import org.springframework.transaction.annotation.Transactional; 26 import org.springframework.transaction.annotation.Transactional;
32 import org.springframework.util.CollectionUtils; 27 import org.springframework.util.CollectionUtils;
33 28
34 import java.sql.Timestamp;
35 import java.time.LocalDateTime; 29 import java.time.LocalDateTime;
36 import java.util.*; 30 import java.util.*;
37 import java.util.stream.Collectors; 31 import java.util.stream.Collectors;
...@@ -44,8 +38,6 @@ import java.util.stream.Collectors; ...@@ -44,8 +38,6 @@ import java.util.stream.Collectors;
44 @Slf4j 38 @Slf4j
45 public class PointsOperationServiceImpl implements PointsOperationService { 39 public class PointsOperationServiceImpl implements PointsOperationService {
46 40
47 private static final Logger LOG = LoggerFactory.getLogger(PointsOperationServiceImpl.class);
48
49 @Autowired 41 @Autowired
50 PointsService pointsService; 42 PointsService pointsService;
51 @Autowired 43 @Autowired
...@@ -80,7 +72,7 @@ public class PointsOperationServiceImpl implements PointsOperationService { ...@@ -80,7 +72,7 @@ public class PointsOperationServiceImpl implements PointsOperationService {
80 public void grantPointsByManualByTempPoints(TempPoints tempPoints) { 72 public void grantPointsByManualByTempPoints(TempPoints tempPoints) {
81 if (Objects.nonNull(tempPoints) && Objects.nonNull(tempPoints.getPoints())) { 73 if (Objects.nonNull(tempPoints) && Objects.nonNull(tempPoints.getPoints())) {
82 String memberCode = tempPoints.getMemberCode(); 74 String memberCode = tempPoints.getMemberCode();
83 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 75 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
84 if (Objects.nonNull(memberDTO)) { 76 if (Objects.nonNull(memberDTO)) {
85 Long memberId = memberDTO.getId(); 77 Long memberId = memberDTO.getId();
86 tempPoints.setMemberId(memberId); 78 tempPoints.setMemberId(memberId);
...@@ -101,7 +93,7 @@ public class PointsOperationServiceImpl implements PointsOperationService { ...@@ -101,7 +93,7 @@ public class PointsOperationServiceImpl implements PointsOperationService {
101 93
102 String memberCode = tempPoints.getMemberCode(); 94 String memberCode = tempPoints.getMemberCode();
103 95
104 MemberDTO memberDTO = this.memberService.getByCode(memberCode); 96 MemberDTO memberDTO = this.memberService.findByCode(memberCode);
105 97
106 if (Objects.nonNull(memberDTO)) { 98 if (Objects.nonNull(memberDTO)) {
107 99
......
1 package com.topdraw.business.process.service.impl.member;
2
3 import com.topdraw.business.module.member.address.domain.MemberAddress;
4 import com.topdraw.business.module.member.address.service.MemberAddressService;
5 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
6 import com.topdraw.business.process.service.member.MemberAddressOperationService;
7 import lombok.extern.slf4j.Slf4j;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.stereotype.Service;
10 import org.springframework.transaction.annotation.Propagation;
11 import org.springframework.transaction.annotation.Transactional;
12
13 /**
14 * @author XiangHan
15 * @date 2021-10-22
16 */
17 @Service
18 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
19 @Slf4j
20 public class MemberAddressOperationServiceImpl implements MemberAddressOperationService {
21
22 @Autowired
23 private MemberAddressService memberAddressService;
24
25 @Override
26 public MemberAddressDTO findById(Long id) {
27 return this.memberAddressService.findById(id);
28 }
29
30 @Override
31 @Transactional(rollbackFor = Exception.class)
32 public MemberAddressDTO create(MemberAddress resources) {
33 log.info("MemberAddressOperationServiceImpl ==>> create ==>> param ==>> [{}]",resources);
34 return this.memberAddressService.create(resources);
35 }
36
37 @Override
38 @Transactional(rollbackFor = Exception.class)
39 public MemberAddressDTO update(MemberAddress resources) {
40 log.info("MemberAddressOperationServiceImpl ==>> update ==>> param ==>> [{}]",resources);
41
42 return this.memberAddressService.update(resources);
43 }
44
45 @Override
46 @Transactional(rollbackFor = Exception.class)
47 public void delete(Long id) {
48 this.memberAddressService.delete(id);
49 }
50
51 }
1 package com.topdraw.business.process.service.impl.member;
2
3 import cn.hutool.core.util.ObjectUtil;
4 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.MemberService;
7 import com.topdraw.business.module.member.service.dto.MemberDTO;
8 import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
9 import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
10 import com.topdraw.business.module.user.weixin.domain.UserWeixin;
11 import com.topdraw.business.module.user.weixin.service.UserWeixinService;
12 import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
13 import com.topdraw.business.process.domian.weixin.BuyVipBean;
14 import com.topdraw.business.process.service.member.MemberOperationService;
15 import com.topdraw.business.process.service.member.MemberProfileOperationService;
16 import com.topdraw.exception.EntityNotFoundException;
17 import org.springframework.beans.BeanUtils;
18 import org.springframework.beans.factory.annotation.Autowired;
19 import org.springframework.cache.annotation.CacheConfig;
20 import org.springframework.cache.annotation.CachePut;
21 import org.springframework.cache.annotation.Cacheable;
22 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
23 import org.springframework.stereotype.Service;
24 import org.springframework.util.Assert;
25
26 import java.time.LocalDateTime;
27 import java.time.ZoneOffset;
28 import java.util.Objects;
29
30 @Service
31 @CacheConfig(cacheNames = "member")
32 public class MemberOperationServiceImpl implements MemberOperationService {
33
34 @Autowired
35 private MemberService memberService;
36 @Autowired
37 private MemberProfileOperationService memberProfileOperationService;
38 @Autowired
39 private MemberVipHistoryService memberVipHistoryService;
40 @Autowired
41 private UserWeixinService userWeixinService;
42 @Autowired
43 private ThreadPoolTaskExecutor threadPoolTaskExecutor;
44
45 // @Cacheable(key = "#memberId")
46 @Override
47 public MemberDTO findById(Long memberId) {
48 MemberDTO memberDTO = this.memberService.findById(memberId);
49 return Objects.nonNull(memberId) ? memberDTO : null;
50 }
51
52 @Override
53 public MemberDTO findByCode(String code) {
54 return this.memberService.findByCode(code);
55 }
56
57 public void createVipHistory(MemberVipHistory memberVipHistory){
58 this.memberVipHistoryService.create(memberVipHistory);
59 }
60
61 @CachePut(key = "#resources.id")
62 @Override
63 public MemberDTO update(Member resources) {
64 MemberDTO memberDTO = this.memberService.update(resources);
65 return memberDTO;
66 }
67
68 @Override
69 public MemberDTO doUpdateMember(Member resources) {
70 Long id = resources.getId();
71 Assert.notNull(id,"ERROR MSG: MemberOperationServiceImpl -> doUpdateMemberInfo -> id not be null!!");
72 return this.update(resources);
73 }
74
75 // @CachePut(key = "#resources.id")
76 @Override
77 public MemberDTO doInsertMember(Member resources) {
78 return this.memberService.create(resources);
79 }
80
81
82
83 @Override
84 public MemberDTO doUpdateMemberExp(Member member) {
85 return this.update(member);
86 }
87
88
89 // @CachePut(key = "#resources.id")
90 @Override
91 public MemberDTO doUpdateMemberPoints(Member resources) {
92 return this.memberService.doUpdateMemberPoints(resources);
93 }
94
95 @Override
96 public MemberDTO doUpdateMemberCoupon(Member member) {
97 return this.update(member);
98 }
99
100 @Override
101 public MemberProfileDTO getMemberProfileAndCheckVip(Long memberId, String appid) {
102
103 // 会员加密信息
104 MemberProfileDTO memberProfileDTO_0 = this.findMemberProfileByMemberId(memberId);
105
106 // 会员信息
107 MemberDTO memberDTO = this.findById(memberId);
108
109 // 初始化会员加密信息
110 MemberProfileDTO memberProfileDTO_1 = this.configMemberProfile(memberProfileDTO_0,memberDTO,appid);
111
112 return memberProfileDTO_1;
113 }
114
115 /**
116 * 配置会员信息
117 * @param memberProfileDTO_0
118 * @param memberDTO
119 * @return
120 */
121 private MemberProfileDTO configMemberProfile(MemberProfileDTO memberProfileDTO_0, MemberDTO memberDTO, String appid) {
122
123 if (Objects.isNull(memberProfileDTO_0)) return memberProfileDTO_0;
124
125 MemberProfileDTO memberProfileDTO = new MemberProfileDTO();
126 BeanUtils.copyProperties(memberProfileDTO_0,memberProfileDTO);
127
128 // vip
129 Integer vip = memberDTO.getVip();
130 // 过期时间
131 LocalDateTime vipExpireTime = memberDTO.getVipExpireTime();
132
133 Long timeLong = 0L;
134 if (ObjectUtil.isNotNull(vipExpireTime)) {
135
136 // 检查vip
137 MemberDTO memberDTO1 = this.checkVipStatus(memberDTO,vipExpireTime,appid);
138
139 // 更新会员信息
140 this.threadPoolTaskExecutor.execute(()->{
141 Member member = new Member();
142 BeanUtils.copyProperties(memberDTO1,member);
143 this.memberService.update(member);
144 });
145
146 vip = memberDTO1.getVip();
147 LocalDateTime vipExpireTime1 = memberDTO1.getVipExpireTime();
148 if (Objects.nonNull(vipExpireTime1)) {
149 timeLong = vipExpireTime1.toInstant(ZoneOffset.of("+8")).toEpochMilli();
150 }
151 }
152
153 // 过期时间
154 memberProfileDTO.setVipExpireTime(timeLong);
155 // 头像
156 memberProfileDTO.setAvatarUrl(memberDTO.getAvatarUrl());
157 // 生日
158 memberProfileDTO.setBirthday(memberDTO.getBirthday());
159 // 性别
160 memberProfileDTO.setGender(memberDTO.getGender());
161 // 会员id
162 memberProfileDTO.setMemberId(memberDTO.getId());
163 // vip
164 memberProfileDTO.setVip(vip);
165
166 return memberProfileDTO;
167 }
168
169 /**
170 * 检查vip是否过期
171 * 1.当前vip如果过期则查看是否有vip历史变动
172 * 2.如果vip变动历史有记录则获取vip变动记录
173 * 3.如果vip没有记录则查看是否关注了公众号
174 * @param vipExpireTime
175 * @return
176 */
177 private MemberDTO checkVipStatus(MemberDTO memberDTO, LocalDateTime vipExpireTime, String appid) {
178
179 Long memberId = memberDTO.getId();
180 LocalDateTime nowTime = LocalDateTime.now();
181
182 //vip过期,回退上个vip状态 同时修改member表vip
183 if (nowTime.compareTo(vipExpireTime) >= 0 ) {
184
185 Integer vip = 0;
186 LocalDateTime vipExpireTime1 = memberDTO.getVipExpireTime();
187
188 //查询小于失效时间的那条记录 查不到 取微信表里 关注状态
189 MemberVipHistory memberVipHistory = this.memberVipHistoryService.findByTime(memberId, nowTime);
190
191 if (ObjectUtil.isNull(memberVipHistory.getId())) {
192
193 UserWeixinDTO userWeixin = this.userWeixinService.findFirstByMemberIdAndAppid(memberId, appid);
194 // 微信公众号关注的状态 0:未关注 1:关注
195 Integer status = userWeixin.getStatus();
196
197 if (status != 1) vip = 0; else vip = 1;
198 vipExpireTime1 = null;
199
200 } else {
201
202 vip = memberVipHistory.getVip();
203 vipExpireTime1 = memberVipHistory.getVipExpireTime();
204 }
205
206 memberDTO.setVipExpireTime(vipExpireTime1);
207 memberDTO.setVip(vip);
208 }
209
210 return memberDTO;
211 }
212
213 /**
214 * 查询会员加密信息
215 * @param memberId
216 * @return
217 */
218 private MemberProfileDTO findMemberProfileByMemberId(Long memberId) {
219 return this.memberProfileOperationService.findByMemberId(memberId);
220 }
221 }
1 package com.topdraw.business.process.service.impl.member;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.profile.domain.MemberProfile;
5 import com.topdraw.business.module.member.profile.service.MemberProfileService;
6 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
7 import com.topdraw.business.module.member.service.dto.MemberDTO;
8 import com.topdraw.business.process.service.member.MemberOperationService;
9 import com.topdraw.business.process.service.member.MemberProfileOperationService;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.stereotype.Service;
12 import org.springframework.util.StringUtils;
13
14 /**
15 * @author :
16 * @description:
17 * @function :
18 * @date :Created in 2022/3/20 17:34
19 * @version: :
20 * @modified By:
21 * @since : modified in 2022/3/20 17:34
22 */
23 @Service
24 public class MemberProfileOperationServiceImpl implements MemberProfileOperationService {
25
26 @Autowired
27 private MemberProfileService memberProfileService;
28 @Autowired
29 private MemberOperationService memberOperationService;
30
31 @Override
32 public MemberProfileDTO findById(Long id) {
33 return this.memberProfileService.findById(id);
34 }
35
36 @Override
37 public MemberProfile create(MemberProfile resources) {
38 return this.memberProfileService.create(resources);
39 }
40
41 @Override
42 public MemberProfile createDefault(MemberProfile resources) {
43 return this.memberProfileService.createDefault(resources);
44 }
45
46 @Override
47 public MemberProfile createDefault(Member resources) {
48 return this.memberProfileService.createDefault(resources);
49 }
50
51 @Override
52 public MemberProfile createDefaultByMemberId(Long resources) {
53 return this.memberProfileService.createDefaultByMemberId(resources);
54 }
55
56 @Override
57 public MemberProfileDTO update(MemberProfile resources) {
58 return this.memberProfileService.update(resources);
59 }
60
61 @Override
62 public void delete(Long id) {
63 this.memberProfileService.delete(id);
64 }
65
66 @Override
67 public MemberProfileDTO findByMemberId(Long memberId) {
68 return this.memberProfileService.findByMemberId(memberId);
69 }
70
71 @Override
72 public MemberProfileDTO findByMemberCode(String memberCode) {
73 return this.memberProfileService.findByMemberCode(memberCode);
74 }
75
76 @Override
77 public MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources) {
78 String memberCode = resources.getMemberCode();
79 MemberDTO memberDTO = null;
80 if (StringUtils.isEmpty(memberCode)) {
81 Long memberId = resources.getMemberId();
82 memberDTO = this.memberOperationService.findById(memberId);
83 resources.setMemberCode(memberDTO.getCode());
84 }
85
86 return this.memberProfileService.updateMemberProfileAndMember(resources, memberDTO);
87 }
88 }
1 package com.topdraw.business.process.service.impl.member;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
5 import com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService;
6 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
7 import com.topdraw.business.process.service.member.MemberRelatedInfoOperationService;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.stereotype.Service;
10
11 /**
12 * @author :
13 * @description:
14 * @function :
15 * @date :Created in 2022/3/20 18:41
16 * @version: :
17 * @modified By:
18 * @since : modified in 2022/3/20 18:41
19 */
20 @Service
21 public class MemberRelatedInfoOperationServiceImpl implements MemberRelatedInfoOperationService {
22
23 @Autowired
24 private MemberRelatedInfoService memberRelatedInfoService;
25
26 @Override
27 public MemberRelatedInfoDTO findById(Long id) {
28 return this.memberRelatedInfoService.findById(id);
29 }
30
31 @Override
32 public void create(MemberRelatedInfo resources) {
33 this.memberRelatedInfoService.create(resources);
34 }
35
36 @Override
37 public void update(MemberRelatedInfo resources) {
38 this.memberRelatedInfoService.update(resources);
39 }
40
41 @Override
42 public void delete(Long id) {
43 this.memberRelatedInfoService.delete(id);
44 }
45
46 @Override
47 public MemberRelatedInfoDTO findByIdCard(MemberRelatedInfo resources) {
48 return this.memberRelatedInfoService.findByIdCard(resources);
49 }
50
51 @Override
52 public MemberRelatedInfoDTO findByIdCard(String idCard) {
53 return this.memberRelatedInfoService.findByIdCard(idCard);
54 }
55
56 @Override
57 public MemberRelatedInfoDTO findByMemberIdAndIdCard(Long memberId, String idCard) {
58 return this.memberRelatedInfoService.findByMemberIdAndIdCard(memberId, idCard);
59 }
60
61 @Override
62 public MemberRelatedInfoDTO findByMemberCodeAndIdCard(String memberCode, String idCard) {
63 return this.memberRelatedInfoService.findByMemberCodeAndIdCard(memberCode, idCard);
64 }
65
66 @Override
67 public MemberRelatedInfoDTO findByMemberIdAndIdCard(MemberRelatedInfo resources) {
68 return this.memberRelatedInfoService.findByMemberIdAndIdCard(resources);
69 }
70
71 @Override
72 public MemberRelatedInfoDTO findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources) {
73 return this.memberRelatedInfoService.findByMemberIdAndIdCard(member, resources);
74 }
75 }
1 package com.topdraw.business.process.service.member;
2
3 import com.topdraw.business.module.member.address.domain.MemberAddress;
4 import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
5
6 public interface MemberAddressOperationService {
7
8 /**
9 * 根据ID查询
10 * @param resources ID
11 * @return MemberAddressDTO
12 */
13 MemberAddressDTO findById(Long resources);
14
15 /**
16 * 保存会员地址
17 * @param resources
18 */
19 MemberAddressDTO create(MemberAddress resources);
20
21 /**
22 * 修改会员地址
23 * @param resources
24 */
25 MemberAddressDTO update(MemberAddress resources);
26
27 /**
28 * 通过id删除
29 * @param resources
30 */
31 void delete(Long resources);
32
33 }
1 package com.topdraw.business.process.service.member;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
5 import com.topdraw.business.module.member.service.dto.MemberDTO;
6
7 public interface MemberOperationService {
8
9 /**
10 *
11 * @param memberId
12 * @return
13 */
14 MemberDTO findById(Long memberId);
15
16 /**
17 *
18 * @param code
19 * @return
20 */
21 MemberDTO findByCode(String code);
22
23 /**
24 * 修改会员
25 * @param resources
26 */
27 MemberDTO update(Member resources);
28
29 /**
30 *
31 * @param member
32 */
33 MemberDTO doUpdateMember(Member member);
34
35 /**
36 *
37 * @param member
38 */
39 MemberDTO doInsertMember(Member member);
40
41 /**
42 *
43 * @param member
44 */
45 MemberDTO doUpdateMemberExp(Member member);
46
47 /**
48 *
49 * @param member
50 */
51 MemberDTO doUpdateMemberPoints(Member member);
52
53 /**
54 *
55 * @param member
56 */
57 MemberDTO doUpdateMemberCoupon(Member member);
58
59 /**
60 *
61 * @param memberId
62 * @param appid
63 * @return
64 */
65 MemberProfileDTO getMemberProfileAndCheckVip(Long memberId, String appid);
66
67 }
1 package com.topdraw.business.process.service.member;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.profile.domain.MemberProfile;
5 import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
6
7 public interface MemberProfileOperationService {
8
9 /**
10 * 根据ID查询
11 * @param id ID
12 * @return MemberProfileDTO
13 */
14 MemberProfileDTO findById(Long id);
15
16 /**
17 * 保存
18 * @param resources 会员基本信息
19 * @return
20 */
21 MemberProfile create(MemberProfile resources);
22
23 /**
24 * 默认属性
25 * @param resources
26 * @return
27 */
28 MemberProfile createDefault(MemberProfile resources);
29
30 /**
31 * 通过会员创建默认属性
32 * @param resources
33 * @return
34 */
35 MemberProfile createDefault(Member resources);
36
37 /**
38 * 通过会员id创建默认属性
39 * @param resources
40 * @return
41 */
42 MemberProfile createDefaultByMemberId(Long resources);
43
44 /**
45 * 修改
46 * @param resources
47 */
48 MemberProfileDTO update(MemberProfile resources);
49
50 /**
51 * 删除
52 * @param id
53 */
54 void delete(Long id);
55
56 /**
57 * 通过会员id查询
58 * @param memberId
59 * @return
60 */
61 MemberProfileDTO findByMemberId(Long memberId);
62
63 /**
64 * 通过会员code查询
65 * @param memberCode
66 * @return
67 */
68 MemberProfileDTO findByMemberCode(String memberCode);
69
70 /**
71 * 修改会员属性并同步会员信息
72 * @param resources
73 */
74 MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources);
75
76 }
1 package com.topdraw.business.process.service.member;
2
3 import com.topdraw.business.module.member.domain.Member;
4 import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
5 import com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoDTO;
6
7 /**
8 * @author XiangHan
9 * @date 2021-10-22
10 */
11 public interface MemberRelatedInfoOperationService {
12
13 /**
14 * 根据ID查询
15 * @param id ID
16 * @return MemberRelatedInfoDTO
17 */
18 MemberRelatedInfoDTO findById(Long id);
19
20 /**
21 * 新增
22 * @param resources
23 */
24 void create(MemberRelatedInfo resources);
25
26 /**
27 * 修改
28 * @param resources
29 */
30 void update(MemberRelatedInfo resources);
31
32 /**
33 * 删除
34 * @param id
35 */
36 void delete(Long id);
37
38 /**
39 * 通过身份证查询
40 * @param resources
41 * @return
42 */
43 MemberRelatedInfoDTO findByIdCard(MemberRelatedInfo resources);
44
45 /**
46 * 通过身份证查询
47 * @param idCard 身份证
48 * @return
49 */
50 MemberRelatedInfoDTO findByIdCard(String idCard);
51
52 /**
53 *
54 * @param memberId
55 * @param idCard
56 * @return
57 */
58 MemberRelatedInfoDTO findByMemberIdAndIdCard(Long memberId, String idCard);
59
60 /**
61 *
62 * @param memberCode
63 * @param idCard
64 * @return
65 */
66 MemberRelatedInfoDTO findByMemberCodeAndIdCard(String memberCode, String idCard);
67
68 /**
69 *
70 * @param resources
71 * @return
72 */
73 MemberRelatedInfoDTO findByMemberIdAndIdCard(MemberRelatedInfo resources);
74
75 /**
76 *
77 * @param member
78 * @param resources
79 * @return
80 */
81 MemberRelatedInfoDTO findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources);
82 }
...@@ -34,15 +34,6 @@ public class RabbitMqConfig { ...@@ -34,15 +34,6 @@ public class RabbitMqConfig {
34 /** 微信侧 公众号关注与取消关注 */ 34 /** 微信侧 公众号关注与取消关注 */
35 public static final String WEIXIN_SUBORUNSUB_QUEUE = "weixin.subOrUnSub.queue"; 35 public static final String WEIXIN_SUBORUNSUB_QUEUE = "weixin.subOrUnSub.queue";
36 36
37
38
39
40
41
42
43
44
45
46 //////////////////////////////////////////////////////// 重数 /////////////////////////////////////////////////////////////// 37 //////////////////////////////////////////////////////// 重数 ///////////////////////////////////////////////////////////////
47 38
48 /** 路由(事件)--direct route.key*/ 39 /** 路由(事件)--direct route.key*/
...@@ -53,6 +44,8 @@ public class RabbitMqConfig { ...@@ -53,6 +44,8 @@ public class RabbitMqConfig {
53 // uc-service 管理侧 44 // uc-service 管理侧
54 public static final String UC_ROUTE_KEY_DIRECT_EVENT_CCC = "uc.route.key.direct.event.ccc"; 45 public static final String UC_ROUTE_KEY_DIRECT_EVENT_CCC = "uc.route.key.direct.event.ccc";
55 46
47 public static final String ENGINE_TO_IPTV_CONSUMER_MEMBER_DIRECT = "engine.iptv.consumer.member.direct";
48
56 @Value("${mutil-mq.service.host}") 49 @Value("${mutil-mq.service.host}")
57 private String serviceHost; 50 private String serviceHost;
58 @Value("${mutil-mq.service.port}") 51 @Value("${mutil-mq.service.port}")
...@@ -68,12 +61,6 @@ public class RabbitMqConfig { ...@@ -68,12 +61,6 @@ public class RabbitMqConfig {
68 @Primary 61 @Primary
69 public ConnectionFactory serviceConnectionFactory(){ 62 public ConnectionFactory serviceConnectionFactory(){
70 CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); 63 CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
71 /*connectionFactory.setHost("139.196.145.150");
72 connectionFactory.setPort(5672);
73 connectionFactory.setUsername("admin");
74 connectionFactory.setPassword("Topdraw1qaz");
75 connectionFactory.setVirtualHost("member_center");*/
76
77 connectionFactory.setHost(serviceHost); 64 connectionFactory.setHost(serviceHost);
78 connectionFactory.setPort(servicePort); 65 connectionFactory.setPort(servicePort);
79 connectionFactory.setUsername(serviceUserName); 66 connectionFactory.setUsername(serviceUserName);
...@@ -114,11 +101,6 @@ public class RabbitMqConfig { ...@@ -114,11 +101,6 @@ public class RabbitMqConfig {
114 @Bean(name = "managementConnectionFactory") 101 @Bean(name = "managementConnectionFactory")
115 public ConnectionFactory managementConnectionFactory(){ 102 public ConnectionFactory managementConnectionFactory(){
116 CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); 103 CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
117 /*connectionFactory.setHost("139.196.192.242");
118 connectionFactory.setPort(5672);
119 connectionFactory.setUsername("member_center");
120 connectionFactory.setPassword("Tjlh@2021");
121 connectionFactory.setVirtualHost("member_center");*/
122 connectionFactory.setHost(managementHost); 104 connectionFactory.setHost(managementHost);
123 connectionFactory.setPort(managementPort); 105 connectionFactory.setPort(managementPort);
124 connectionFactory.setUsername(managementUserName); 106 connectionFactory.setUsername(managementUserName);
......
1 package com.topdraw.exception;
2
3 /**
4 * @author :
5 * @description:
6 * @function :
7 * @date :Created in 2022/3/10 17:16
8 * @version: :
9 * @modified By:
10 * @since : modified in 2022/3/10 17:16
11 */
12 public interface GlobeExceptionCode {
13
14 // 会员信息
15 Integer MEMBER_CODE_IS_NULL = 000100001;
16
17 }
1 package com.topdraw.exception;
2
3 /**
4 * @author :
5 * @description:
6 * @function :
7 * @date :Created in 2022/3/10 17:16
8 * @version: :
9 * @modified By:
10 * @since : modified in 2022/3/10 17:16
11 */
12 public interface GlobeExceptionMsg {
13
14 /**************************************************************/
15 /** 系统 */
16 String OPERATION_FORBID = "operation forbid";
17 String ENTITY_ALREADY_EXISTS = "entity already exists";
18
19
20 /**************************************************************/
21 /** 优惠券 */
22 String COUPON_ID_IS_NULL = "coupon id is null";
23 String COUPON_CODE_IS_NULL = "coupon code is null";
24
25
26 /**************************************************************/
27
28 /** 会员管理 */
29 String MEMBER_CODE_IS_NULL = "memberCode is null";
30 String MEMBER_ID_IS_NULL = "memberId is null";
31 String MEMBER_ID_AND_CODE_ARE_NULL = "memberId and memberCode both null";
32 String MEMBER_INFO_ERROR = "member info is error";
33 String MEMBER_BLOCK_STATUS = "member status is block";
34
35 /**************************************************************/
36
37 /** 账户管理 **/
38
39 /** iptv */
40 String IPTV_ID_IS_NULL = "iptvId is null";
41 String IPTV_PLATFORM_ACCOUNT_IS_NULL = "platformAccount is null";
42 String IPTV_IS_NULL = "iptv is null";
43 String VIS_USER_ID_IS_NULL = "visUserId is null";
44
45 /** 微信 */
46 String APP_ID_IS_NULL = "appId is null";
47 String OPEN_ID_IS_NULL = "openId is null";
48 String UNION_ID_IS_NULL = "unionId is null";
49 String ALREADY_BIND = "already bind";
50 }
...@@ -18,8 +18,6 @@ import org.springframework.util.Assert; ...@@ -18,8 +18,6 @@ import org.springframework.util.Assert;
18 @Slf4j 18 @Slf4j
19 public class UcEngineEventConsumer { 19 public class UcEngineEventConsumer {
20 20
21 private static final Logger LOG = LoggerFactory.getLogger(UcEngineEventConsumer.class);
22
23 @Autowired 21 @Autowired
24 AutoRoute autoUser; 22 AutoRoute autoUser;
25 23
...@@ -35,7 +33,7 @@ public class UcEngineEventConsumer { ...@@ -35,7 +33,7 @@ public class UcEngineEventConsumer {
35 */ 33 */
36 @RabbitHandler 34 @RabbitHandler
37 @RabbitListener(bindings = { 35 @RabbitListener(bindings = {
38 @QueueBinding(value = @Queue(value = RabbitMqConfig.UC_ROUTE_KEY_DIRECT_EVENT_BBB), 36 @QueueBinding(value = @Queue(value = RabbitMqConfig.ENGINE_TO_IPTV_CONSUMER_MEMBER_DIRECT),
39 exchange = @Exchange(value = ExchangeTypes.DIRECT)) 37 exchange = @Exchange(value = ExchangeTypes.DIRECT))
40 }, containerFactory = "serviceRabbitListenerContainerFactory") 38 }, containerFactory = "serviceRabbitListenerContainerFactory")
41 public void ucEventConsumer(String content) { 39 public void ucEventConsumer(String content) {
......