Commit 09032684 09032684170fa0041339dfbbcec9851275560c02 by xianghan

1.添加修改会员vip接口

1 parent ac976b80
......@@ -4,6 +4,7 @@ import com.topdraw.annotation.AnonymousAccess;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
import com.topdraw.business.module.user.iptv.domain.UserTv;
import com.topdraw.business.process.service.UserOperationService;
import com.topdraw.common.ResultInfo;
......@@ -31,7 +32,6 @@ public class MemberController {
@Autowired
private MemberService memberService;
@Autowired
private UserOperationService userTvOperationService;
......@@ -59,13 +59,31 @@ public class MemberController {
return ResultInfo.success(id);
}
@PostMapping(value = "/doUpdateVip")
@PostMapping(value = "/doUpdateVipAndSaveHistory")
@ApiOperation("修改Member等级")
public ResultInfo doUpdateVipAndSaveVipHistory(@RequestBody Member member) {
memberService.doUpdateVipAndSaveVipHistory(member);
return ResultInfo.success();
}
@RequestMapping(value = "/doUpdateVip")
@ApiOperation("修改Member等级")
@AnonymousAccess
public ResultInfo doUpdateVip(@RequestBody Member member) {
memberService.update(member);
return ResultInfo.success();
}
@RequestMapping(value = "/doUpdateVipByCode")
@ApiOperation("修改Member等级")
@AnonymousAccess
public ResultInfo doUpdateVipByCode(@RequestBody Member member) {
String code = member.getCode();
Assert.notNull(code,"code can't be null !");
memberService.doUpdateVipByCode(member);
return ResultInfo.success();
}
@PutMapping(value = "/update")
@ApiOperation("修改Member")
@AnonymousAccess
......
......@@ -77,4 +77,8 @@ public interface MemberService {
void doUpdateMemberPoints(Member member);
List<MemberDTO> findByUserIptvId(Long id);
void doUpdateVipByCode(Member member);
void doUpdateVipAndSaveVipHistory(Member member);
}
......
......@@ -7,6 +7,9 @@ import com.topdraw.business.module.member.service.MemberService;
import com.topdraw.business.module.member.service.dto.MemberDTO;
import com.topdraw.business.module.member.service.dto.MemberQueryCriteria;
import com.topdraw.business.module.member.service.mapper.MemberMapper;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
import com.topdraw.business.module.member.viphistory.service.impl.MemberVipHistoryBuilder;
import com.topdraw.util.IdWorker;
import com.topdraw.util.RedissonUtil;
import com.topdraw.utils.PageUtil;
......@@ -16,6 +19,7 @@ import com.topdraw.utils.ValidationUtil;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.dao.EmptyResultDataAccessException;
......@@ -41,19 +45,15 @@ public class MemberServiceImpl implements MemberService {
@Autowired
private MemberRepository memberRepository;
@Autowired
private MemberVipHistoryService memberVipHistoryService;
@Autowired
private MemberMapper memberMapper;
@Autowired
private RedissonClient redissonClient;
@Autowired
PlatformTransactionManager platformTransactionManager;
@Autowired
private com.topdraw.business.module.user.iptv.service.UserTvService UserTvService;
@Override
public Map<String, Object> queryAll(MemberQueryCriteria criteria, Pageable pageable) {
Page<Member> page = memberRepository.findAll((root, criteriaQuery, criteriaBuilder)
......@@ -212,5 +212,30 @@ public class MemberServiceImpl implements MemberService {
return memberMapper.toDto(memberList);
}
@Override
public void doUpdateVipByCode(Member member) {
MemberDTO memberDTO = this.getByCode(member.getCode());
ValidationUtil.isNull(member.getId(), "Member", "id", memberDTO.getId());
Member member1 = new Member();
BeanUtils.copyProperties(memberDTO,member1);
member1.setVip(member.getVip());
this.update(member1);
}
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend
public void doUpdateVipAndSaveVipHistory(Member member) {
MemberDTO memberDTO = this.getByCode(member.getCode());
MemberVipHistory memberVipHistory = MemberVipHistoryBuilder.build(memberDTO.getId(),
memberDTO.getVip(),memberDTO.getStatus(),memberDTO.getVipExpireTime(),member.getVip());
this.memberVipHistoryService.create(memberVipHistory);
Member member1 = new Member();
BeanUtils.copyProperties(memberDTO,member1);
member1.setVip(member.getVip());
this.update(member);
}
}
......
......@@ -34,6 +34,9 @@ public class MemberVipHistory implements Serializable {
@Column(name = "member_id")
private Long memberId;
@Transient
private String memberCode;
// 会员vip等级
@Column(name = "vip")
private Integer vip;
......
package com.topdraw.business.module.member.viphistory.service.impl;
import com.topdraw.business.module.member.domain.Member;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import java.time.LocalDateTime;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/3/8 13:25
* @version: :
* @modified By:
* @since : modified in 2022/3/8 13:25
*/
public class MemberVipHistoryBuilder {
public static MemberVipHistory build(Long memberId , int oldVip , int status , LocalDateTime vipExpireTime, int vip){
MemberVipHistory memberVipHistory = new MemberVipHistory();
memberVipHistory.setBeforeVip(oldVip);
memberVipHistory.setVipExpireTime(vipExpireTime);
memberVipHistory.setMemberId(memberId);
memberVipHistory.setStatus(status);
memberVipHistory.setVip(vip);
return memberVipHistory;
}
}
package com.topdraw.business.module.member.viphistory.service.impl;
import com.topdraw.aspect.AsyncMqSend;
import com.topdraw.business.module.member.viphistory.domain.MemberVipHistory;
import com.topdraw.business.module.member.viphistory.repository.MemberVipHistoryRepository;
import com.topdraw.business.module.member.viphistory.service.MemberVipHistoryService;
......@@ -58,6 +59,7 @@ public class MemberVipHistoryServiceImpl implements MemberVipHistoryService {
@Override
@Transactional(rollbackFor = Exception.class)
@AsyncMqSend
public void create(MemberVipHistory resources) {
memberVipHistoryRepository.save(resources);
}
......
......@@ -65,7 +65,7 @@ public class MemberOperationController {
MemberDTO memberDTO = memberOperationService.buyVip(buyVipBean);
LocalDateTime vipExpireTime = buyVipBean.getVipExpireTime();
this.doInsertVipHistory(id,vip,vipExpireTime);
// this.doInsertVipHistory(id,vip,vipExpireTime);
return ResultInfo.success(memberDTO);
}
......
......@@ -87,23 +87,6 @@ public class MemberOperationServiceImpl implements MemberOperationService {
memberDTO.setVip(vip1);
memberDTO.setVipExpireTime(vipExpireTime);
/*if (){
//购买过 判断当前时间有没有过vip过期时间,没有过,失效时间加一年; 过了,当前时间加一年
//区分是当前vip续费 还是买新的vip
if (ObjectUtil.equal(vip1, memberDTO.getVip())) {
if (now.isBefore(vipExpireTime)) {
LocalDateTime localDateTime = vipExpireTime.plusYears(1L);
memberDTO.setVipExpireTime(localDateTime);
} else {
LocalDateTime localDateTime = now.plusYears(1L);
memberDTO.setVipExpireTime(localDateTime);
}
} else {
LocalDateTime localDateTime = now.plusYears(1L);
memberDTO.setVipExpireTime(localDateTime);
}
}*/
Member member = new Member();
BeanUtils.copyProperties(memberDTO,member);
this.memberService.create(member);
......@@ -113,6 +96,7 @@ public class MemberOperationServiceImpl implements MemberOperationService {
if (ObjectUtil.equal(vip1,vip)) {
memberVipHistory.setStatus(1);
}
memberVipHistory.setMemberCode(member.getCode());
memberVipHistory.setVipExpireTime(member.getVipExpireTime());
memberVipHistoryService.create(memberVipHistory);
......
......@@ -99,3 +99,7 @@ generator:
swagger:
enabled: true
uc:
service:
platform: service
......
......@@ -24,7 +24,7 @@ public class MemberControllerTest extends BaseTest {
member.setId(5L);
member.setVip(4);
String s = JSON.toJSONString(member);
ResultInfo byId = this.memberController.doUpdateVip(member);
ResultInfo byId = this.memberController.doUpdateVipAndSaveVipHistory(member);
LOG.info("===>>>"+byId);
}
......