Commit 053fb7e1 053fb7e1176ee6297f0c88c4dc44815e1935e4e4 by xianghan

1.优化

1 parent 4df7bb5d
Showing 16 changed files with 138 additions and 147 deletions
......@@ -55,8 +55,8 @@ public class MemberAddressBuilder {
String district = memberAddress.getDistrict();
String address = memberAddress.getAddress();
String zipCode = memberAddress.getZipCode();
return build(id,memberId,memberCode,type,isDefault,sequence,status,
contactor,cellphone,country,province,city,district,address,zipCode);
return build(id, memberId, memberCode, type, isDefault, sequence, status,
contactor, cellphone, country, province, city, district, address, zipCode);
}
public static MemberAddress build(MemberAddress memberAddress){
......@@ -75,27 +75,27 @@ public class MemberAddressBuilder {
String district = memberAddress.getDistrict();
String address = memberAddress.getAddress();
String zipCode = memberAddress.getZipCode();
return build(id,memberId,memberCode,type,isDefault,sequence,status,
contactor,cellphone,country,province,city,district,address,zipCode);
return build(id, memberId, memberCode, type, isDefault, sequence, status,
contactor, cellphone, country, province, city, district, address, zipCode);
}
public static MemberAddress build(Long id , Long memberId,String memberCode,
Integer sequence,Integer type ,Integer isDefault , Integer status,
String contactor,String cellphone,
String country,String province,String city,
String district,String address,String zipCode){
Integer type ,Integer isDefault, Integer sequence, Integer status,
String contactor, String cellphone,
String country, String province, String city,
String district, String address, String zipCode){
Assert.notNull(memberId, GlobeExceptionMsg.MEMBER_ID_IS_NULL);
MemberAddress memberAddress = new MemberAddress();
memberAddress.setId(Objects.nonNull(id)?null:id);
memberAddress.setId(Objects.isNull(id)?null:id);
memberAddress.setMemberId(Objects.isNull(memberId)?null:memberId);
memberAddress.setMemberCode(stringIsNull(memberCode));
memberAddress.setSequence(Objects.nonNull(sequence)?null:DEFAULT_VALUE_1);
memberAddress.setType(Objects.isNull(type)?null:DEFAULT_VALUE_0);
memberAddress.setIsDefault(Objects.nonNull(isDefault)?null:DEFAULT_VALUE_0);
memberAddress.setStatus(Objects.isNull(status)?null:DEFAULT_VALUE_1);
memberAddress.setSequence(Objects.isNull(sequence)?DEFAULT_VALUE_1:sequence);
memberAddress.setType(Objects.isNull(type)?DEFAULT_VALUE_0:type);
memberAddress.setIsDefault(Objects.isNull(isDefault)?DEFAULT_VALUE_0:isDefault);
memberAddress.setStatus(Objects.isNull(status)?DEFAULT_VALUE_1:status);
memberAddress.setContactor(stringIsNull(contactor));
memberAddress.setCellphone(stringIsNull(cellphone));
......
......@@ -3,6 +3,7 @@ package com.topdraw.business.module.member.address.repository;
import com.topdraw.business.module.member.address.domain.MemberAddress;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
/**
* @author XiangHan
......@@ -10,4 +11,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
*/
public interface MemberAddressRepository extends JpaRepository<MemberAddress, Long>, JpaSpecificationExecutor<MemberAddress> {
@Query(value = "select IFNULL(max(sequence),0) from uc_member_address where member_id = ?1" , nativeQuery = true)
int findMaxSequenceByMemberId(Long memberId);
}
......
......@@ -54,7 +54,7 @@ public class MemberAddressController {
@RequestMapping(value = "/delete/{id}")
@ApiOperation("删除会员地址")
@AnonymousAccess
public ResultInfo delete(@PathVariable Long resources) {
public ResultInfo delete(@PathVariable(value = "id") Long resources) {
log.info("memberAddress ==>> delete ==> param ==>> [{}]",resources);
this.memberAddressOperationService.delete(resources);
return ResultInfo.success();
......
......@@ -33,4 +33,11 @@ public interface MemberAddressService {
* @param resources
*/
void delete(Long resources);
/**
* 地址最大序列号
* @param memberId
* @return
*/
int findMaxSequenceByMemberId(Long memberId);
}
......
......@@ -12,6 +12,9 @@ import java.time.LocalDateTime;
@Data
public class MemberAddressDTO implements Serializable {
/** 会员code */
private String memberCode;
/** 主键 */
private Long id;
......
......@@ -51,6 +51,7 @@ public class MemberAddressServiceImpl implements MemberAddressService {
public MemberAddressDTO create(MemberAddress resources) {
log.info("MemberAddressServiceImpl ==>> create ==>> param ==>> [{}]",resources);
MemberDTO memberDTO = this.checkMember(resources);
MemberAddress _memberAddress = MemberAddressBuilder.build(resources, memberDTO.getId(), memberDTO.getCode());
MemberAddress memberAddress = this.memberAddressRepository.save(_memberAddress);
......@@ -96,6 +97,11 @@ public class MemberAddressServiceImpl implements MemberAddressService {
this.memberAddressRepository.delete(MemberAddress);
}
@Override
public int findMaxSequenceByMemberId(Long memberId) {
return this.memberAddressRepository.findMaxSequenceByMemberId(memberId);
}
/**
* 检查会员
* @param memberAddress
......
......@@ -42,8 +42,9 @@ public class MemberProfileController {
return ResultInfo.success(memberProfileDTO);
}
@PutMapping
@ApiOperation("修改MemberProfile")
@Log("修改会员属性并同步会员信息")
@PutMapping(value = "/updateMemberProfileAndMember")
@ApiOperation("修改会员属性并同步会员信息")
@AnonymousAccess
public ResultInfo updateMemberProfileAndMember(@Validated @RequestBody MemberProfile resources) {
log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources);
......
......@@ -12,6 +12,9 @@ import java.io.Serializable;
@Data
public class MemberProfileDTO implements Serializable {
/** 会员code */
private String memberCode;
/** 主键 */
private Long id;
......
......@@ -107,10 +107,10 @@ public class MemberServiceImpl implements MemberService {
public MemberDTO create(Member resources) {
Member member = MemberBuilder.build(resources);
Long memberId = this.save(member);
Member _member = this.save(member);
if (Objects.nonNull(memberId)) {
MemberProfile memberProfile = MemberProfileBuilder.build(member);
if (Objects.nonNull(_member.getId())) {
MemberProfile memberProfile = MemberProfileBuilder.build(_member);
// 保存会员属性
this.memberProfileService.create(memberProfile);
}
......@@ -142,9 +142,9 @@ public class MemberServiceImpl implements MemberService {
BeanUtils.copyProperties(memberDTO,member);
member.copy(resources);
this.save(member);
Member _member = this.save(member);
return this.memberMapper.toDto(member);
return this.memberMapper.toDto(_member);
} catch (Exception e) {
e.printStackTrace();
......@@ -156,9 +156,8 @@ public class MemberServiceImpl implements MemberService {
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public Long save(Member member){
this.memberRepository.save(member);
return member.getId();
public Member save(Member member){
return this.memberRepository.save(member);
}
@Override
......@@ -171,9 +170,9 @@ public class MemberServiceImpl implements MemberService {
ValidationUtil.isNull(member.getId(), "Member", "id", resources.getId());
member.copy(resources);
this.save(member);
Member _member = this.save(member);
return this.memberMapper.toDto(member);
return this.memberMapper.toDto(_member);
} catch (Exception e) {
e.printStackTrace();
......
package com.topdraw.business.process.service.dto;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.user.iptv.service.dto.UserTvDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/3/23 9:48
* @version: :
* @modified By:
* @since : modified in 2022/3/23 9:48
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MemberProfileAndMemberDTO implements Serializable {
private MemberProfileDTO memberProfileDTO;
private MemberDTO memberDTO;
}
......@@ -102,13 +102,9 @@ public class UserOperationServiceImpl implements UserOperationService {
@AsyncMqSend
public void asyncMemberAndUserWeixin4Iptv(MemberAndWeixinUserDTO memberAndWeixinUserDTO) {
messageProducer.sendMessage(JSON.toJSONString(memberAndWeixinUserDTO));
}
public void asyncMemberAndUserWeixin4Iptv(MemberAndWeixinUserDTO memberAndWeixinUserDTO) {}
@AsyncMqSend
public void asyncMemberAndUserTv4Iptv(MemberAndUserTvDTO memberAndUserTv) {
//messageProducer.sendMessage(JSON.toJSONString(memberAndUserTv));
}
public void asyncMemberAndUserTv4Iptv(MemberAndUserTvDTO memberAndUserTv) {}
@AsyncMqSend
public void asyncWeixin(UserWeixinDTO weixinDTO) {
messageProducer.sendMessage(JSON.toJSONString(weixinDTO));
......@@ -203,7 +199,7 @@ public class UserOperationServiceImpl implements UserOperationService {
UserWeixinDTO weixinDTO = this.createWeixinUser(userWeixin, memberDTO.getId(), memberDTO.getCode());
// 同步至iptv
this.asyncWeixin(weixinDTO);
((UserOperationServiceImpl)AopContext.currentProxy()).asyncWeixin(weixinDTO);
return weixinDTO;
}
......@@ -223,7 +219,7 @@ public class UserOperationServiceImpl implements UserOperationService {
UserWeixinDTO _userWeixinDTO1 = this.createWeixinUser(userWeixin, memberDTO.getId(), memberDTO.getCode());
// 同步至iptv
this.asyncMemberAndUserWeixin4Iptv(new MemberAndWeixinUserDTO(memberDTO, _userWeixinDTO1));
((UserOperationServiceImpl)AopContext.currentProxy()).asyncMemberAndUserWeixin4Iptv(new MemberAndWeixinUserDTO(memberDTO, _userWeixinDTO1));
return _userWeixinDTO1;
}
......
......@@ -4,8 +4,13 @@ import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.module.member.address.domain.MemberAddress;
import com.topdraw.business.module.member.address.service.MemberAddressService;
import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.process.service.member.MemberAddressOperationService;
import com.topdraw.exception.BadRequestException;
import com.topdraw.exception.GlobeExceptionMsg;
import lombok.extern.slf4j.Slf4j;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......@@ -22,6 +27,13 @@ public class MemberAddressOperationServiceImpl implements MemberAddressOperation
@Autowired
private MemberAddressService memberAddressService;
@Autowired
private MemberService memberService;
@AsyncMqSend
public void asyncMemberAddress(MemberAddressDTO memberAddressDTO){}
@AsyncMqSend
public void asyncDeleteMemberAddress(MemberAddressDTO memberAddressDTO){}
@Override
public MemberAddressDTO findById(Long id) {
......@@ -30,25 +42,39 @@ public class MemberAddressOperationServiceImpl implements MemberAddressOperation
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend
public MemberAddressDTO create(MemberAddress resources) {
log.info("MemberAddressOperationServiceImpl ==>> create ==>> param ==>> [{}]",resources);
return this.memberAddressService.create(resources);
int maxSequence = this.memberAddressService.findMaxSequenceByMemberId(resources.getMemberId());
if (maxSequence < 6) {
resources.setSequence(maxSequence+1);
MemberAddressDTO memberAddressDTO = this.memberAddressService.create(resources);
memberAddressDTO.setMemberCode(resources.getMemberCode());
((MemberAddressOperationServiceImpl) AopContext.currentProxy()).asyncMemberAddress(memberAddressDTO);
return memberAddressDTO;
}
throw new BadRequestException(GlobeExceptionMsg.SEQUENCE_MAX);
}
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend
public MemberAddressDTO update(MemberAddress resources) {
log.info("MemberAddressOperationServiceImpl ==>> update ==>> param ==>> [{}]",resources);
return this.memberAddressService.update(resources);
MemberAddressDTO memberAddressDTO = this.memberAddressService.update(resources);
memberAddressDTO.setMemberCode(resources.getMemberCode());
((MemberAddressOperationServiceImpl) AopContext.currentProxy()).asyncMemberAddress(memberAddressDTO);
return memberAddressDTO;
}
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend
public void delete(Long id) {
MemberAddressDTO memberAddressDTO = this.memberAddressService.findById(id);
MemberDTO memberDTO = this.memberService.findById(memberAddressDTO.getMemberId());
memberAddressDTO.setMemberCode(memberDTO.getCode());
this.memberAddressService.delete(id);
((MemberAddressOperationServiceImpl) AopContext.currentProxy()).asyncDeleteMemberAddress(memberAddressDTO);
}
}
......
......@@ -37,7 +37,7 @@ public class MemberOperationServiceImpl implements MemberOperationService {
@Autowired
private MemberService memberService;
@Autowired
private MemberProfileOperationService memberProfileOperationService;
private MemberProfileService memberProfileService;
@Autowired
private MemberVipHistoryService memberVipHistoryService;
@Autowired
......@@ -278,6 +278,6 @@ public class MemberOperationServiceImpl implements MemberOperationService {
* @return
*/
private MemberProfileDTO findMemberProfileByMemberId(Long memberId) {
return this.memberProfileOperationService.findByMemberId(memberId);
return this.memberProfileService.findByMemberId(memberId);
}
}
......
package com.topdraw.business.process.service.impl.member;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.profile.domain.MemberProfile;
import com.topdraw.business.module.member.profile.service.MemberProfileService;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.process.service.member.MemberOperationService;
import com.topdraw.business.process.service.dto.MemberProfileAndMemberDTO;
import com.topdraw.business.process.service.member.MemberProfileOperationService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.validation.constraints.NotNull;
/**
* @author :
......@@ -29,65 +29,36 @@ public class MemberProfileOperationServiceImpl implements MemberProfileOperation
@Autowired
private MemberProfileService memberProfileService;
@Autowired
private MemberOperationService memberOperationService;
private MemberService memberService;
@Override
public MemberProfileDTO findById(Long id) {
return this.memberProfileService.findById(id);
}
@Override
@AsyncMqSend
public MemberProfile create(MemberProfile resources) {
return this.memberProfileService.create(resources);
}
@Override
public MemberProfile createDefault(MemberProfile resources) {
return this.memberProfileService.createDefault(resources);
}
@Override
public MemberProfile createDefault(Member resources) {
return this.memberProfileService.createDefault(resources);
}
@Override
public MemberProfile createDefaultByMemberId(Long resources) {
return this.memberProfileService.createDefaultByMemberId(resources);
}
@Override
public void asyncMemberProfile(MemberProfileDTO memberProfileDTO){}
@AsyncMqSend
public MemberProfileDTO update(MemberProfile resources) {
return this.memberProfileService.update(resources);
}
@Override
public void delete(Long id) {
this.memberProfileService.delete(id);
}
public void asyncMemberProfileAndMember(MemberProfileAndMemberDTO memberProfileAndMemberDTO){}
@Override
public MemberProfileDTO findByMemberId(Long memberId) {
return this.memberProfileService.findByMemberId(memberId);
}
@Override
public MemberProfileDTO findByMemberCode(String memberCode) {
return this.memberProfileService.findByMemberCode(memberCode);
public MemberProfileDTO update(MemberProfile resources) {
MemberProfileDTO memberProfileDTO = this.memberProfileService.update(resources);
memberProfileDTO.setMemberCode(resources.getMemberCode());
((MemberProfileOperationServiceImpl) AopContext.currentProxy()).asyncMemberProfile(memberProfileDTO);
return memberProfileDTO;
}
@Override
@AsyncMqSend
public MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources) {
String memberCode = resources.getMemberCode();
MemberDTO memberDTO = null;
if (StringUtils.isEmpty(memberCode)) {
memberDTO = this.memberOperationService.findByCode(memberCode);
if (StringUtils.isNotBlank(memberCode)) {
memberDTO = this.memberService.findByCode(memberCode);
resources.setMemberCode(memberDTO.getCode());
}
return this.memberProfileService.updateMemberProfileAndMember(resources, memberDTO);
MemberProfileDTO memberProfileDTO =
this.memberProfileService.updateMemberProfileAndMember(resources, memberDTO);
memberProfileDTO.setMemberCode(memberCode);
((MemberProfileOperationServiceImpl)AopContext.currentProxy())
.asyncMemberProfileAndMember(new MemberProfileAndMemberDTO(memberProfileDTO, memberDTO));
return memberProfileDTO;
}
}
......
......@@ -7,67 +7,12 @@ import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
public interface MemberProfileOperationService {
/**
* 根据ID查询
* @param id ID
* @return MemberProfileDTO
*/
MemberProfileDTO findById(Long id);
/**
* 保存
* @param resources 会员基本信息
* @return
*/
MemberProfile create(MemberProfile resources);
/**
* 默认属性
* @param resources
* @return
*/
MemberProfile createDefault(MemberProfile resources);
/**
* 通过会员创建默认属性
* @param resources
* @return
*/
MemberProfile createDefault(Member resources);
/**
* 通过会员id创建默认属性
* @param resources
* @return
*/
MemberProfile createDefaultByMemberId(Long resources);
/**
* 修改
* @param resources
*/
MemberProfileDTO update(MemberProfile resources);
/**
* 删除
* @param id
*/
void delete(Long id);
/**
* 通过会员id查询
* @param memberId
* @return
*/
MemberProfileDTO findByMemberId(Long memberId);
/**
* 通过会员code查询
* @param memberCode
* @return
*/
MemberProfileDTO findByMemberCode(String memberCode);
/**
* 修改会员属性并同步会员信息
* @param resources
*/
......
......@@ -31,7 +31,7 @@ public interface GlobeExceptionMsg {
String MEMBER_ID_AND_CODE_ARE_NULL = "memberId and memberCode both null";
String MEMBER_INFO_ERROR = "member info is error";
String MEMBER_BLOCK_STATUS = "member status is block";
String SEQUENCE_MAX = "member address more then 5";
/**************************************************************/
/** 账户管理 **/
......@@ -47,4 +47,5 @@ public interface GlobeExceptionMsg {
String OPEN_ID_IS_NULL = "openId is null";
String UNION_ID_IS_NULL = "unionId is null";
String ALREADY_BIND = "already bind";
}
......