Commit 3fa952f0 3fa952f099f4f80653934623838f5b74790aaf15 by xianghan

1.优化

1 parent 8bae4a12
Showing 27 changed files with 197 additions and 239 deletions
package com.topdraw.business.module.common.domain;
import com.topdraw.business.module.common.validated.CreateGroup;
import com.topdraw.business.module.common.validated.UpdateGroup;
import lombok.Data;
import lombok.experimental.Accessors;
......
......@@ -4,10 +4,10 @@ import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.CreateGroup;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.address.service.dto.MemberAddressDTO;
import com.topdraw.business.process.service.member.MemberAddressOperationService;
import com.topdraw.common.ResultInfo;
import com.topdraw.business.module.member.address.domain.MemberAddress;
import com.topdraw.business.module.member.address.service.MemberAddressService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
......@@ -20,7 +20,7 @@ import io.swagger.annotations.*;
*/
@Api(tags = "会员地址管理")
@RestController
@RequestMapping("/ucEngine/api/memberAddress")
@RequestMapping("/ucEngine/memberAddress")
@CrossOrigin
@Slf4j
public class MemberAddressController {
......@@ -34,9 +34,9 @@ public class MemberAddressController {
@AnonymousAccess
public ResultInfo create(@Validated(value = {CreateGroup.class}) @RequestBody MemberAddress resources) {
log.info("memberAddress ==>> create ==> param ==>> [{}]",resources);
this.memberAddressOperationService.create(resources);
MemberAddressDTO memberAddressDTO = this.memberAddressOperationService.create(resources);
log.info("memberAddress ==>> create ==> result ==>> [{}]",resources);
return ResultInfo.success();
return ResultInfo.success(memberAddressDTO);
}
@Log("修改会员地址")
......@@ -45,9 +45,9 @@ public class MemberAddressController {
@AnonymousAccess
public ResultInfo update(@Validated(value = {UpdateGroup.class}) @RequestBody MemberAddress resources) {
log.info("memberAddress ==>> update ==> param ==>> [{}]",resources);
this.memberAddressOperationService.update(resources);
MemberAddressDTO memberAddressDTO = this.memberAddressOperationService.update(resources);
log.info("memberAddress ==>> update ==> result ==>> [{}]",resources);
return ResultInfo.success();
return ResultInfo.success(memberAddressDTO);
}
@Log("删除会员地址")
......
......@@ -27,79 +27,80 @@ import java.io.Serializable;
@Table(name="uc_member_profile")
public class MemberProfile implements Serializable {
/** 会员code */
@Transient
@NotNull(message = "memberCode not be null!!" , groups = {CreateGroup.class,UpdateGroup.class})
private String memberCode;
// 主键
/** 头像 */
@Transient
private String avatarUrl;
/** 主键 */
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
@NotNull(message = "id not be null!!" , groups = UpdateGroup.class)
private Long id;
// 会员id
/** 会员id */
@Column(name = "member_id", nullable = false)
private Long memberId;
// 姓名
/** 姓名 */
@Column(name = "realname")
private String realname;
// 性别 0:女; 1:男 -1:未知
/** 性别 0:女; 1:男 -1:未知 */
@Column(name = "gender", nullable = false)
private Integer gender;
// 生日
/** 生日 */
@Column(name = "birthday", nullable = false)
private String birthday;
// 手机号
/** 手机号 */
@Column(name = "phone")
private String phone;
// 星座
/** 星座 */
@Column(name = "constellation")
private String constellation;
// 身份证
/** 身份证 */
@Column(name = "id_card", nullable = false)
private String idCard;
// 电子邮件
/** 电子邮件 */
@Column(name = "email")
private String email;
// 国家
/** 国家 */
@Column(name = "country")
private String country;
// 省份
/** 省份 */
@Column(name = "province")
private String province;
// 城市
/** 城市 */
@Column(name = "city")
private String city;
// 区县
/** 区县 */
@Column(name = "district")
private String district;
//头像
@Transient
private String avatarUrl;
// 描述
/** 描述 */
@Column(name = "description")
private String description;
// 创建时间
/** 创建时间 */
@CreatedDate
@Column(name = "create_time")
private Timestamp createTime;
// 更新时间
/** 更新时间 */
@LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
......
......@@ -3,6 +3,7 @@ package com.topdraw.business.module.member.profile.rest;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.process.service.member.MemberProfileOperationService;
import com.topdraw.common.ResultInfo;
import com.topdraw.business.module.member.profile.domain.MemberProfile;
......@@ -19,7 +20,8 @@ import io.swagger.annotations.*;
*/
@Api(tags = "会员属性管理")
@RestController
@RequestMapping("/ucEngine/api/memberProfile")
//@RequestMapping("/ucEngine/api/memberProfile")
@RequestMapping("/ucEngine/memberProfile")
@CrossOrigin
@Slf4j
public class MemberProfileController {
......@@ -35,10 +37,10 @@ public class MemberProfileController {
public ResultInfo update(@Validated(value = {UpdateGroup.class}) @RequestBody MemberProfile resources) {
log.info("memberProfile ==>> update ==>> resources ===>> [{}]",resources);
this.memberProfileOperationService.update(resources);
log.info("memberProfile ==>> update ==>> result ===>> [{}]",resources);
MemberProfileDTO memberProfileDTO = this.memberProfileOperationService.update(resources);
log.info("memberProfile ==>> update ==>> result ===>> [{}]",memberProfileDTO);
return ResultInfo.success();
return ResultInfo.success(memberProfileDTO);
}
@PutMapping
......@@ -46,7 +48,7 @@ public class MemberProfileController {
@AnonymousAccess
public ResultInfo updateMemberProfileAndMember(@Validated @RequestBody MemberProfile resources) {
log.info("MemberProfileServiceImpl ==>> update ==>> resources ===>> [{}]",resources);
this.memberProfileOperationService.updateMemberProfileAndMember(resources);
return ResultInfo.success();
MemberProfileDTO memberProfileDTO = this.memberProfileOperationService.updateMemberProfileAndMember(resources);
return ResultInfo.success(memberProfileDTO);
}
}
......
......@@ -3,11 +3,7 @@ package com.topdraw.business.module.member.profile.service;
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.dto.MemberProfileDTO;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileQueryCriteria;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
/**
* @author XiangHan
......@@ -80,5 +76,5 @@ public interface MemberProfileService {
* 修改会员属性并同步会员信息
* @param resources
*/
void updateMemberProfileAndMember(MemberProfile resources, MemberDTO memberDTO);
MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources, MemberDTO memberDTO);
}
......
......@@ -12,60 +12,61 @@ import java.io.Serializable;
@Data
public class MemberProfileDTO implements Serializable {
// 主键
/** 主键 */
private Long id;
// 会员id
/** 会员id */
private Long memberId;
// 姓名
/** 姓名 */
private String realname;
private String nickname;
// 性别 0:女; 1:男 -1:未知
/** 性别 0:女; 1:男 -1:未知 */
private Integer gender;
// 生日
/** 生日 */
private String birthday;
// vip
private Integer vip;
/** 电话 */
private String phone;
// 星座
/** 星座 */
private String constellation;
private Long vipExpireTime;
private String phone;
// 身份证
/** 身份证 */
private String idCard;
// 电子邮件
/** 电子邮件 */
private String email;
// 国家
/** 国家 */
private String country;
// 省份
/** 省份 */
private String province;
// 城市
/** 城市 */
private String city;
// 头像
private String avatarUrl;
// 区县
/** 区县 */
private String district;
// 描述
/** 描述 */
private String description;
// 创建时间
/** 创建时间 */
private Timestamp createTime;
// 更新时间
/** 更新时间 */
private Timestamp updateTime;
/** vip */
private Integer vip;
/** vip过期时间 */
private Long vipExpireTime;
/** 头像 */
private String avatarUrl;
}
......
package com.topdraw.business.module.member.profile.service.dto;
import lombok.Data;
/**
* @author XiangHan
* @date 2021-10-22
*/
@Data
public class MemberProfileQueryCriteria{
}
package com.topdraw.business.module.member.profile.service.impl;
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.domain.MemberProfileBuilder;
......@@ -149,11 +150,12 @@ public class MemberProfileServiceImpl implements MemberProfileService {
@Override
@Transactional(rollbackFor = Exception.class)
public void updateMemberProfileAndMember(MemberProfile resources, MemberDTO memberDTO) {
public MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources, MemberDTO memberDTO) {
log.info("MemberProfileServiceImpl ==>> updateMemberProfileAndMember ==>> resources ===>> [{}]",resources);
this.update(resources);
MemberProfileDTO memberProfileDTO = this.update(resources);
// 同步会员信息
this.synchronizedMemberData(resources, memberDTO);
return memberProfileDTO;
}
private void synchronizedMemberData(MemberProfile resources, MemberDTO memberDTO) {
......
......@@ -11,10 +11,10 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
*/
public interface MemberRelatedInfoRepository extends JpaRepository<MemberRelatedInfo, Long>, JpaSpecificationExecutor<MemberRelatedInfo> {
MemberRelatedInfo findByIdCard(String idCard);
MemberRelatedInfo findByMemberIdAndIdCard(Long memberId , String idCard);
MemberRelatedInfo findByIdOrIdCard(Long id, String idCard);
}
......
......@@ -55,20 +55,7 @@ public class MemberRelatedInfoController {
log.info("memberRelatedInfo ==>> update ==>> resources ===>> [{}]",resources);
Long id = resources.getId();
MemberRelatedInfoDTO memberRelatedInfoDTO = this.memberRelatedInfoOperationService.findById(id);
if (memberRelatedInfoDTO.getId() != null) {
Long memberId = memberRelatedInfoDTO.getMemberId();
MemberDTO memberDTO = this.memberService.findById(memberId);
if (Objects.nonNull(memberDTO)) {
String code = memberDTO.getCode();
Assert.notNull(code,"code can't be null");
resources.setMemberCode(code);
this.memberRelatedInfoOperationService.update(resources);
}
}
return ResultInfo.success();
}
......
......@@ -21,13 +21,13 @@ public interface MemberRelatedInfoService {
* 新增
* @param resources
*/
void create(MemberRelatedInfo resources);
MemberRelatedInfoDTO create(MemberRelatedInfo resources);
/**
* 修改
* @param resources
*/
void update(MemberRelatedInfo resources);
MemberRelatedInfoDTO update(MemberRelatedInfo resources);
/**
* 删除
......@@ -40,14 +40,14 @@ public interface MemberRelatedInfoService {
* @param resources
* @return
*/
MemberRelatedInfo findByIdCard(MemberRelatedInfo resources);
MemberRelatedInfoDTO findByIdCard(MemberRelatedInfo resources);
/**
* 通过身份证查询
* @param idCard 身份证
* @return
*/
MemberRelatedInfo findByIdCard(String idCard);
MemberRelatedInfoDTO findByIdCard(String idCard);
/**
*
......@@ -55,7 +55,7 @@ public interface MemberRelatedInfoService {
* @param idCard
* @return
*/
MemberRelatedInfo findByMemberIdAndIdCard(Long memberId , String idCard);
MemberRelatedInfoDTO findByMemberIdAndIdCard(Long memberId , String idCard);
/**
*
......@@ -63,14 +63,14 @@ public interface MemberRelatedInfoService {
* @param idCard
* @return
*/
MemberRelatedInfo findByMemberCodeAndIdCard(String memberCode , String idCard);
MemberRelatedInfoDTO findByMemberCodeAndIdCard(String memberCode , String idCard);
/**
*
* @param resources
* @return
*/
MemberRelatedInfo findByMemberIdAndIdCard(MemberRelatedInfo resources);
MemberRelatedInfoDTO findByMemberIdAndIdCard(MemberRelatedInfo resources);
/**
*
......@@ -78,5 +78,5 @@ public interface MemberRelatedInfoService {
* @param resources
* @return
*/
MemberRelatedInfo findByMemberIdAndIdCard(Member member , MemberRelatedInfo resources);
MemberRelatedInfoDTO findByMemberIdAndIdCard(Member member , MemberRelatedInfo resources);
}
......
......@@ -57,12 +57,12 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService {
@Override
@Transactional(rollbackFor = Exception.class)
public void create(MemberRelatedInfo resources) {
public MemberRelatedInfoDTO create(MemberRelatedInfo resources) {
log.info("MemberRelatedInfoServiceImpl ==>> create ==>> param ==>> [{}]",resources);
String idCard = resources.getIdCard();
Long memberId = resources.getMemberId();
if (Objects.nonNull(memberId) && StringUtils.isNotBlank(idCard) && !idCard.equalsIgnoreCase(DEFAULT_IDCARD) ) {
MemberRelatedInfo memberRelatedInfo = this.findByMemberIdAndIdCard(resources);
MemberRelatedInfoDTO memberRelatedInfo = this.findByMemberIdAndIdCard(resources);
if (Objects.nonNull(memberRelatedInfo))
// 数据已存在
throw new BadRequestException(GlobeExceptionMsg.ENTITY_ALREADY_EXISTS);
......@@ -73,6 +73,7 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService {
MemberRelatedInfo memberRelatedInfo = MemberRelatedInfoBuilder.build(resources);
this.memberRelatedInfoRepository.save(memberRelatedInfo);
log.info("MemberRelatedInfoServiceImpl ==>> create ==>> result ==>> [{}]",memberRelatedInfo);
return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
}
/**
......@@ -104,7 +105,7 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService {
@Override
@Transactional(rollbackFor = Exception.class)
public void update(MemberRelatedInfo resources) {
public MemberRelatedInfoDTO update(MemberRelatedInfo resources) {
log.info("MemberRelatedInfoServiceImpl ==>> update ==>> param ==>> [{}]",resources);
this.redisUtils.doLock("memberRelatedInfo::update::id" + resources.getId());
try {
......@@ -118,7 +119,7 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService {
this.memberRelatedInfoRepository.save(memberRelatedInfo);
log.info("MemberRelatedInfoServiceImpl ==>> update ==>> param ==>> [{}]", resources);
return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
} catch (Exception e) {
e.printStackTrace();
throw e;
......@@ -137,16 +138,16 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService {
}
@Override
public MemberRelatedInfo findByIdCard(MemberRelatedInfo resources){
public MemberRelatedInfoDTO findByIdCard(MemberRelatedInfo resources){
log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> param ==>> [{}]",resources);
String idCard = resources.getIdCard();
Assert.notNull(idCard,"idCard can't be null");
if (!idCard.equalsIgnoreCase(DEFAULT_IDCARD)) {
MemberRelatedInfo memberRelatedInfo = this.findByIdCard(idCard);
ValidationUtil.isNull(memberRelatedInfo.getId(),"MemberRelatedInfo","id",resources.getId());
log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> result ==>> [{}]",memberRelatedInfo);
return memberRelatedInfo;
MemberRelatedInfoDTO memberRelatedInfoDTO = this.findByIdCard(idCard);
ValidationUtil.isNull(memberRelatedInfoDTO.getId(),"MemberRelatedInfo","id",resources.getId());
log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> result ==>> [{}]",memberRelatedInfoDTO);
return memberRelatedInfoDTO;
}
return null;
......@@ -154,15 +155,15 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService {
}
@Override
public MemberRelatedInfo findByIdCard(String idCard) {
public MemberRelatedInfoDTO findByIdCard(String idCard) {
log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> param ==>> [{}]",idCard);
MemberRelatedInfo memberRelatedInfo = this.memberRelatedInfoRepository.findByIdCard(idCard);
log.info("MemberRelatedInfoServiceImpl ==>> findByIdCard ==>> result ==>> [{}]",memberRelatedInfo);
return memberRelatedInfo;
return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
}
@Override
public MemberRelatedInfo findByMemberCodeAndIdCard(String memberCode, String idCard) {
public MemberRelatedInfoDTO findByMemberCodeAndIdCard(String memberCode, String idCard) {
Assert.notNull(memberCode,"memberCode can't be null");
Assert.notNull(idCard,"idCard can't be null");
MemberDTO memberDTO = this.checkMember(null, memberCode);
......@@ -170,22 +171,22 @@ public class MemberRelatedInfoServiceImpl implements MemberRelatedInfoService {
}
@Override
public MemberRelatedInfo findByMemberIdAndIdCard(Long memberId, String idCard) {
public MemberRelatedInfoDTO findByMemberIdAndIdCard(Long memberId, String idCard) {
log.info("MemberRelatedInfoServiceImpl ==>> findByMemberIdAndIdCard ==>> param ==>> [{}]",memberId+","+idCard);
MemberRelatedInfo memberRelatedInfo = this.memberRelatedInfoRepository.findByMemberIdAndIdCard(memberId, idCard);
log.info("MemberRelatedInfoServiceImpl ==>> findByMemberIdAndIdCard ==>> result ==>> [{}]",memberRelatedInfo);
return memberRelatedInfo;
return this.memberRelatedInfoMapper.toDto(memberRelatedInfo);
}
@Override
public MemberRelatedInfo findByMemberIdAndIdCard(MemberRelatedInfo resources) {
public MemberRelatedInfoDTO findByMemberIdAndIdCard(MemberRelatedInfo resources) {
Long memberId = resources.getMemberId();
String idCard = resources.getIdCard();
return this.findByMemberIdAndIdCard(memberId,idCard);
}
@Override
public MemberRelatedInfo findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources) {
public MemberRelatedInfoDTO findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources) {
Long memberId = member.getId();
String idCard = resources.getIdCard();
return this.findByMemberIdAndIdCard(memberId,idCard);
......
......@@ -26,7 +26,8 @@ import java.util.Objects;
*/
@Api(tags = "会员管理")
@RestController
@RequestMapping("/ucEngine/api/member")
//@RequestMapping("/ucEngine/api/member")
@RequestMapping("/ucEngine/member")
@CrossOrigin
@Slf4j
public class MemberController {
......@@ -38,9 +39,9 @@ public class MemberController {
@Log("为大屏账户创建会员")
@RequestMapping(value = "/createMemberByUs" +
"@AnonymousAccesserTv")
@RequestMapping(value = "/createMemberByUserTv")
@ApiOperation("为大屏账户创建会员")
@AnonymousAccess
@Deprecated
public ResultInfo createMemberByUserTv(@Validated(value = {CreateGroup.class}) @RequestBody UserTv resources) {
// todo 此接口废弃,将移动至UserTvController中,AppEngine也要同步修改
......
......@@ -50,4 +50,5 @@ public interface MemberVipHistoryService {
* @return
*/
MemberVipHistory findByTime(Long id, LocalDateTime nowTime);
}
......
package com.topdraw.business.process.rest;
import cn.hutool.core.util.ObjectUtil;
import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.aop.log.Log;
import com.topdraw.business.module.common.validated.UpdateGroup;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.profile.service.dto.MemberProfileDTO;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
import com.topdraw.business.module.user.weixin.service.UserWeixinService;
import com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO;
import com.topdraw.business.process.domian.weixin.BuyVipBean;
import com.topdraw.business.process.service.member.MemberOperationService;
import com.topdraw.common.IResultInfo;
......@@ -23,7 +18,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.Objects;
@Api("会员处理")
......@@ -35,10 +29,6 @@ public class MemberOperationController {
@Autowired
private MemberOperationService memberOperationService;
@Autowired
private MemberVipHistoryService memberVipHistoryService;
@Autowired
private UserWeixinService userWeixinService;
@Log("手动修改vip")
@RequestMapping(value = "/doUpdateVipByCode")
......@@ -77,46 +67,9 @@ public class MemberOperationController {
if (Objects.isNull(vip) || vip <= 0)
throw new BadRequestException("vip 等级有误");
MemberDTO memberDTO = memberOperationService.buyVip(buyVipBean);
LocalDateTime vipExpireTime = buyVipBean.getVipExpireTime();
this.doInsertVipHistory(id,vip,vipExpireTime);
MemberDTO memberDTO = this.memberOperationService.buyVip(buyVipBean);
return ResultInfo.success(memberDTO);
}
private void doInsertVipHistory(Long id,Integer vip,LocalDateTime vipExpireTime) {
UserWeixinDTO userWeixinDTO = this.userWeixinService.findById(id);
Long memberId = userWeixinDTO.getMemberId();
MemberDTO member = this.memberOperationService.findById(memberId);
LocalDateTime now = LocalDateTime.now();
MemberVipHistory memberVipHistory = new MemberVipHistory();
if (ObjectUtil.isNull(vipExpireTime)) {
LocalDateTime localDateTime = now.plusYears(1L);
member.setVipExpireTime(localDateTime);
} else {
//购买过 判断当前时间有没有过vip过期时间,没有过,失效时间加一年; 过了,当前时间加一年
//区分是当前vip续费 还是买新的vip
if (ObjectUtil.equal(vip, member.getVip())) {
if (now.isBefore(vipExpireTime)) {
LocalDateTime localDateTime = vipExpireTime.plusYears(1L);
member.setVipExpireTime(localDateTime);
} else {
LocalDateTime localDateTime = now.plusYears(1L);
member.setVipExpireTime(localDateTime);
}
} else {
LocalDateTime localDateTime = now.plusYears(1L);
member.setVipExpireTime(localDateTime);
}
}
memberVipHistory.setVipExpireTime(member.getVipExpireTime());
memberVipHistoryService.create(memberVipHistory);
}
}
......
......@@ -12,8 +12,6 @@ import com.topdraw.business.process.service.member.MemberOperationService;
import com.topdraw.business.process.domian.TempCoupon;
import com.topdraw.business.process.service.RightsOperationService;
import com.topdraw.utils.RedisUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
......@@ -27,8 +25,6 @@ import java.util.Objects;
@Service
public class CouponOperationServiceImpl implements CouponOperationService {
private static final Logger LOG = LoggerFactory.getLogger(CouponOperationServiceImpl.class);
@Autowired
CouponService couponService;
@Autowired
......@@ -134,7 +130,7 @@ public class CouponOperationServiceImpl implements CouponOperationService {
member.setCouponAmount(currentCoupon);
member.setDueCouponAmount(expireSoonCouponCount);
member.setUpdateTime(LocalDateTime.now());
this.memberOperationService.doUpdateMemberInfo(member);
this.memberOperationService.doUpdateMember(member);
}
private MemberDTO findMemberByMemberId(Long memberId) {
......
......@@ -149,7 +149,7 @@ public class ExpOperationServiceImpl implements ExpOperationService {
member.setExp(totalExp);
member.setLevel(level);
member.setUpdateTime(LocalDateTime.now());
this.memberOperationService.doUpdateMemberInfo(member);
this.memberOperationService.doUpdateMember(member);
}
private MemberDTO findMemberByMemberId(Long memberId) {
......
......@@ -41,7 +41,6 @@ public class MemberAddressOperationServiceImpl implements MemberAddressOperation
@AsyncMqSend
public MemberAddressDTO update(MemberAddress resources) {
log.info("MemberAddressOperationServiceImpl ==>> update ==>> param ==>> [{}]",resources);
return this.memberAddressService.update(resources);
}
......
package com.topdraw.business.process.service.impl.member;
import cn.hutool.core.util.ObjectUtil;
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;
......@@ -44,6 +45,7 @@ public class MemberOperationServiceImpl implements MemberOperationService {
@Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@AsyncMqSend
@CachePut(key = "#resources.memberId")
@Override
public MemberDTO buyVip(BuyVipBean resources) {
......@@ -60,6 +62,7 @@ public class MemberOperationServiceImpl implements MemberOperationService {
//
MemberDTO memberDTO = this.findById(memberId);
String memberCode = memberDTO.getCode();
Integer vip = memberDTO.getVip();
//
......@@ -84,19 +87,27 @@ public class MemberOperationServiceImpl implements MemberOperationService {
Member member = new Member();
BeanUtils.copyProperties(memberDTO,member);
this.memberService.create(member);
this.update(member);
MemberVipHistory memberVipHistory = new MemberVipHistory();
memberVipHistory.setMemberId(memberId).setVip(vip1).setBeforeVip(vip);
if (ObjectUtil.equal(vip1,vip)) {
memberVipHistory.setStatus(1);
}
memberVipHistory.setMemberCode(memberCode);
memberVipHistory.setVipExpireTime(member.getVipExpireTime());
memberVipHistoryService.create(memberVipHistory);
this.createVipHistory(memberVipHistory);
return memberDTO;
}
@AsyncMqSend
@Override
public void createVipHistory(MemberVipHistory memberVipHistory){
this.memberVipHistoryService.create(memberVipHistory);
}
@AsyncMqSend
@CachePut(key = "#resources.id")
@Override
public MemberDTO update(Member resources) {
......@@ -109,7 +120,6 @@ public class MemberOperationServiceImpl implements MemberOperationService {
return this.memberService.findByCode(code);
}
private UserWeixinDTO findWeiXinById(Long id) {
UserWeixinDTO userWeixinDTO = this.userWeixinService.findById(id);
if (Objects.isNull(userWeixinDTO)) {
......@@ -120,7 +130,7 @@ public class MemberOperationServiceImpl implements MemberOperationService {
}
@Override
public MemberDTO doUpdateMemberInfo(Member resources) {
public MemberDTO doUpdateMember(Member resources) {
Long id = resources.getId();
Assert.notNull(id,"ERROR MSG: MemberOperationServiceImpl -> doUpdateMemberInfo -> id not be null!!");
return this.update(resources);
......@@ -132,30 +142,31 @@ public class MemberOperationServiceImpl implements MemberOperationService {
return this.memberService.create(resources);
}
@Cacheable(key = "#memberId")
@Override
public MemberDTO findById(Long memberId) {
MemberDTO memberDTO = this.memberService.findById(memberId);
return Objects.nonNull(memberId) ? memberDTO : null;
}
@CachePut(key = "#resources.id")
@Override
public MemberDTO doUpdateMemberExp(Member member) {
return this.update(member);
public MemberDTO doUpdateMemberExp(Member resources) {
return this.update(resources);
}
@CachePut(key = "#resources.id")
@Override
public MemberDTO doUpdateMemberPoints(Member resources) {
return this.memberService.doUpdateMemberPoints(resources);
}
@CachePut(key = "#resources.id")
@Override
public MemberDTO doUpdateMemberCoupon(Member member) {
return this.update(member);
}
@AsyncMqSend
@Override
public MemberProfileDTO getMemberProfileAndCheckVip(Long memberId, String appid) {
......@@ -171,12 +182,7 @@ public class MemberOperationServiceImpl implements MemberOperationService {
return memberProfileDTO_1;
}
/**
* 配置会员信息
* @param memberProfileDTO_0
* @param memberDTO
* @return
*/
private MemberProfileDTO configMemberProfile(MemberProfileDTO memberProfileDTO_0, MemberDTO memberDTO, String appid) {
if (Objects.isNull(memberProfileDTO_0)) return memberProfileDTO_0;
......
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;
......@@ -56,6 +57,7 @@ public class MemberProfileOperationServiceImpl implements MemberProfileOperation
}
@Override
@AsyncMqSend
public MemberProfileDTO update(MemberProfile resources) {
return this.memberProfileService.update(resources);
}
......@@ -76,7 +78,8 @@ public class MemberProfileOperationServiceImpl implements MemberProfileOperation
}
@Override
public void updateMemberProfileAndMember(MemberProfile resources) {
@AsyncMqSend
public MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources) {
String memberCode = resources.getMemberCode();
MemberDTO memberDTO = null;
if (StringUtils.isEmpty(memberCode)) {
......@@ -85,6 +88,6 @@ public class MemberProfileOperationServiceImpl implements MemberProfileOperation
resources.setMemberCode(memberDTO.getCode());
}
this.memberProfileService.updateMemberProfileAndMember(resources, memberDTO);
return this.memberProfileService.updateMemberProfileAndMember(resources, memberDTO);
}
}
......
......@@ -29,13 +29,13 @@ public class MemberRelatedInfoOperationServiceImpl implements MemberRelatedInfoO
}
@Override
public void create(MemberRelatedInfo resources) {
this.memberRelatedInfoService.create(resources);
public MemberRelatedInfoDTO create(MemberRelatedInfo resources) {
return this.memberRelatedInfoService.create(resources);
}
@Override
public void update(MemberRelatedInfo resources) {
this.memberRelatedInfoService.update(resources);
public MemberRelatedInfoDTO update(MemberRelatedInfo resources) {
return this.memberRelatedInfoService.update(resources);
}
@Override
......@@ -44,32 +44,32 @@ public class MemberRelatedInfoOperationServiceImpl implements MemberRelatedInfoO
}
@Override
public MemberRelatedInfo findByIdCard(MemberRelatedInfo resources) {
public MemberRelatedInfoDTO findByIdCard(MemberRelatedInfo resources) {
return this.memberRelatedInfoService.findByIdCard(resources);
}
@Override
public MemberRelatedInfo findByIdCard(String idCard) {
public MemberRelatedInfoDTO findByIdCard(String idCard) {
return this.memberRelatedInfoService.findByIdCard(idCard);
}
@Override
public MemberRelatedInfo findByMemberIdAndIdCard(Long memberId, String idCard) {
public MemberRelatedInfoDTO findByMemberIdAndIdCard(Long memberId, String idCard) {
return this.memberRelatedInfoService.findByMemberIdAndIdCard(memberId, idCard);
}
@Override
public MemberRelatedInfo findByMemberCodeAndIdCard(String memberCode, String idCard) {
public MemberRelatedInfoDTO findByMemberCodeAndIdCard(String memberCode, String idCard) {
return this.memberRelatedInfoService.findByMemberCodeAndIdCard(memberCode, idCard);
}
@Override
public MemberRelatedInfo findByMemberIdAndIdCard(MemberRelatedInfo resources) {
public MemberRelatedInfoDTO findByMemberIdAndIdCard(MemberRelatedInfo resources) {
return this.memberRelatedInfoService.findByMemberIdAndIdCard(resources);
}
@Override
public MemberRelatedInfo findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources) {
public MemberRelatedInfoDTO findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources) {
return this.memberRelatedInfoService.findByMemberIdAndIdCard(member, resources);
}
}
......
package com.topdraw.business.process.service.member;
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.dto.MemberProfileDTO;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import com.topdraw.business.process.domian.weixin.BuyVipBean;
public interface MemberOperationService {
/**
*
* @param member
* @param memberId
* @return
*/
MemberDTO doUpdateMemberInfo(Member member);
MemberDTO findById(Long memberId);
/**
*
* @param member
* @param code
* @return
*/
MemberDTO doInsertMember(Member member);
MemberDTO findByCode(String code);
/**
*
* @param memberId
* @param appid
* @return
*/
MemberDTO findById(Long memberId);
MemberProfileDTO getMemberProfileAndCheckVip(Long memberId, String appid);
/**
*
* @param member
* @param resources
* @return
*/
MemberDTO doUpdateMemberExp(Member member);
MemberDTO buyVip(BuyVipBean resources);
/**
*
* @param member
* @param memberVipHistory
*/
void createVipHistory(MemberVipHistory memberVipHistory);
/**
* 修改会员
* @param resources
*/
MemberDTO doUpdateMemberPoints(Member member);
MemberDTO update(Member resources);
/**
*
* @param member
* @param resources
*/
MemberDTO doUpdateMemberCoupon(Member member);
MemberDTO doUpdateMember(Member resources);
/**
*
* @param memberId
* @param appid
* @return
* @param resources
*/
MemberProfileDTO getMemberProfileAndCheckVip(Long memberId, String appid);
MemberDTO doInsertMember(Member resources);
/**
*
* @param buyVipBean
* @return
* @param resources
*/
MemberDTO buyVip(BuyVipBean buyVipBean);
MemberDTO doUpdateMemberExp(Member resources);
/**
* 修改会员
*
* @param resources
*/
MemberDTO update(Member resources);
MemberDTO doUpdateMemberPoints(Member resources);
/**
*
* @param code
* @return
* @param resources
*/
MemberDTO findByCode(String code);
MemberDTO doUpdateMemberCoupon(Member resources);
}
......
......@@ -71,6 +71,6 @@ public interface MemberProfileOperationService {
* 修改会员属性并同步会员信息
* @param resources
*/
void updateMemberProfileAndMember(MemberProfile resources);
MemberProfileDTO updateMemberProfileAndMember(MemberProfile resources);
}
......
......@@ -21,13 +21,13 @@ public interface MemberRelatedInfoOperationService {
* 新增
* @param resources
*/
void create(MemberRelatedInfo resources);
MemberRelatedInfoDTO create(MemberRelatedInfo resources);
/**
* 修改
* @param resources
*/
void update(MemberRelatedInfo resources);
MemberRelatedInfoDTO update(MemberRelatedInfo resources);
/**
* 删除
......@@ -40,14 +40,14 @@ public interface MemberRelatedInfoOperationService {
* @param resources
* @return
*/
MemberRelatedInfo findByIdCard(MemberRelatedInfo resources);
MemberRelatedInfoDTO findByIdCard(MemberRelatedInfo resources);
/**
* 通过身份证查询
* @param idCard 身份证
* @return
*/
MemberRelatedInfo findByIdCard(String idCard);
MemberRelatedInfoDTO findByIdCard(String idCard);
/**
*
......@@ -55,7 +55,7 @@ public interface MemberRelatedInfoOperationService {
* @param idCard
* @return
*/
MemberRelatedInfo findByMemberIdAndIdCard(Long memberId, String idCard);
MemberRelatedInfoDTO findByMemberIdAndIdCard(Long memberId, String idCard);
/**
*
......@@ -63,14 +63,14 @@ public interface MemberRelatedInfoOperationService {
* @param idCard
* @return
*/
MemberRelatedInfo findByMemberCodeAndIdCard(String memberCode, String idCard);
MemberRelatedInfoDTO findByMemberCodeAndIdCard(String memberCode, String idCard);
/**
*
* @param resources
* @return
*/
MemberRelatedInfo findByMemberIdAndIdCard(MemberRelatedInfo resources);
MemberRelatedInfoDTO findByMemberIdAndIdCard(MemberRelatedInfo resources);
/**
*
......@@ -78,5 +78,5 @@ public interface MemberRelatedInfoOperationService {
* @param resources
* @return
*/
MemberRelatedInfo findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources);
MemberRelatedInfoDTO findByMemberIdAndIdCard(Member member, MemberRelatedInfo resources);
}
......
......@@ -2,6 +2,7 @@ package com.topdraw.mq.config;
import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -16,6 +17,8 @@ public class RabbitMqConfig {
public static final String UC_QUEUE_DIRECT_BBB = "uc.route.key.direct.event.bbb";
public static final String UC_QUEUE_DIRECT_CCC = "uc.route.key.direct.event.ccc";
public static final String ENGINE_TO_IPTV_CONSUMER_MEMBER_DIRECT = "engine.iptv.consumer.member.direct";
/** 队列-- */
public static final String UC_QUEUE_FANOUT_IPTV = "uc.fanout.iptv";
public static final String UC_QUEUE_FANOUT_WEIXIN = "uc.fanout.weixin";
......@@ -32,6 +35,9 @@ public class RabbitMqConfig {
}
@Bean
Queue engine2IptvConsumerMember(){ return new Queue(ENGINE_TO_IPTV_CONSUMER_MEMBER_DIRECT); }
@Bean
Queue ucDirectQueueCCC(){
return new Queue(UC_QUEUE_DIRECT_CCC);
}
......@@ -42,6 +48,13 @@ public class RabbitMqConfig {
}
@Bean
Binding directExchangeBindingEngine2IptvConsumerMember(DirectExchange directExchange , Queue ucDirectQueueBBB) {
BindingBuilder.DirectExchangeRoutingKeyConfigurer directExchangeRoutingKeyConfigurer =
BindingBuilder.bind(ucDirectQueueBBB).to(directExchange);
return directExchangeRoutingKeyConfigurer.with(ENGINE_TO_IPTV_CONSUMER_MEMBER_DIRECT);
}
@Bean
Binding directExchangeBindingBBB(DirectExchange directExchange , Queue ucDirectQueueBBB) {
BindingBuilder.DirectExchangeRoutingKeyConfigurer directExchangeRoutingKeyConfigurer =
BindingBuilder.bind(ucDirectQueueBBB).to(directExchange);
......
......@@ -19,23 +19,24 @@ public class MessageProducer {
private AmqpTemplate amqpTemplate;
@Value("${uc.service.platform}")
private String platformType;
@Value("${engine.platform}")
private String platform;
public void sendMessage(String msg,String exchangeName){
// 管理侧
if (platformType.equalsIgnoreCase(LocalConstants.PLATFORM_TYPE_MANAGEMENT)) {
if (platform.equalsIgnoreCase(LocalConstants.PLATFORM_TYPE_MANAGEMENT)) {
if (StringUtils.isEmpty(exchangeName)) {
exchangeName = RabbitMqConfig.UC_QUEUE_DIRECT_CCC;
}
this.sendDirectMessage(msg,exchangeName);
}
// 服务
if (platformType.equalsIgnoreCase(LocalConstants.PLATFORM_TYPE_SERVICE)) {
// 产品
if (platform.equalsIgnoreCase(LocalConstants.PLATFORM_TYPE_SERVICE)) {
if (StringUtils.isEmpty(exchangeName)) {
exchangeName = RabbitMqConfig.UC_QUEUE_DIRECT_BBB;
// exchangeName = RabbitMqConfig.UC_QUEUE_DIRECT_BBB;
exchangeName = RabbitMqConfig.ENGINE_TO_IPTV_CONSUMER_MEMBER_DIRECT;
}
this.sendDirectMessage(msg,exchangeName);
}
......
......@@ -47,7 +47,7 @@ public class MemberOperationServiceTest extends BaseTest {
member.setUpdateTime(LocalDateTime.now());
String s = JSONObject.toJSONString(member);
this.memberOperationService.doUpdateMemberInfo(member);
this.memberOperationService.doUpdateMember(member);
}
@Test
......