feat(memberCenter): 添加获取用户有效会员信息
parent
aebc53b950
commit
f8004e0fb2
|
@ -9,6 +9,7 @@ import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.common.utils.SecurityUtils;
|
import com.mcwl.common.utils.SecurityUtils;
|
||||||
import com.mcwl.memberCenter.domain.*;
|
import com.mcwl.memberCenter.domain.*;
|
||||||
import com.mcwl.memberCenter.domain.vo.MemberConsumeVO;
|
import com.mcwl.memberCenter.domain.vo.MemberConsumeVO;
|
||||||
|
import com.mcwl.memberCenter.domain.vo.MemberVo;
|
||||||
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
|
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
|
||||||
import com.mcwl.memberCenter.enums.PromotionEnum;
|
import com.mcwl.memberCenter.enums.PromotionEnum;
|
||||||
import com.mcwl.memberCenter.service.*;
|
import com.mcwl.memberCenter.service.*;
|
||||||
|
@ -81,6 +82,17 @@ public class MemberController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 待生效的会员
|
||||||
|
*/
|
||||||
|
@GetMapping("getValidMemberById")
|
||||||
|
public R<List<MemberVo>> getUseUserMember(@Valid @NotNull(message = "用户id不能为空") Long userId) {
|
||||||
|
|
||||||
|
return R.ok(memberService.getValidMemberById(userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取积分消费记录
|
* 获取积分消费记录
|
||||||
*
|
*
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
package com.mcwl.memberCenter.domain.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.mcwl.common.core.domain.BaseEntity;
|
||||||
|
import com.mcwl.memberCenter.enums.MemberEnum;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel(description = "会员")
|
||||||
|
public class MemberVo{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员ID
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "会员ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员等级名称
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "会员等级名称")
|
||||||
|
private String memberLevelName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员开始时间
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "会员开始时间")
|
||||||
|
private Date startDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员结束时间
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "会员结束时间")
|
||||||
|
private Date endDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付方式
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "支付方式")
|
||||||
|
private String paymentMethod;
|
||||||
|
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
import com.mcwl.common.core.page.PageDomain;
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.memberCenter.domain.Member;
|
import com.mcwl.memberCenter.domain.Member;
|
||||||
|
import com.mcwl.memberCenter.domain.vo.MemberVo;
|
||||||
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
|
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
@ -28,6 +29,12 @@ public interface MemberService extends IService<Member> {
|
||||||
*/
|
*/
|
||||||
List<Member> getUseUserMember();
|
List<Member> getUseUserMember();
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return 按用户id获取正常的会员集合
|
||||||
|
*/
|
||||||
|
List<MemberVo> getValidMemberById(Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
/**
|
/**
|
||||||
* 根据用户id获取正常的正在使用的用户会员
|
* 根据用户id获取正常的正在使用的用户会员
|
||||||
|
|
|
@ -14,6 +14,7 @@ import com.mcwl.common.exception.ServiceException;
|
||||||
import com.mcwl.common.utils.DateUtils;
|
import com.mcwl.common.utils.DateUtils;
|
||||||
import com.mcwl.common.utils.SecurityUtils;
|
import com.mcwl.common.utils.SecurityUtils;
|
||||||
import com.mcwl.memberCenter.domain.*;
|
import com.mcwl.memberCenter.domain.*;
|
||||||
|
import com.mcwl.memberCenter.domain.vo.MemberVo;
|
||||||
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
|
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
|
||||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||||
import com.mcwl.memberCenter.enums.MemberEnum;
|
import com.mcwl.memberCenter.enums.MemberEnum;
|
||||||
|
@ -27,6 +28,7 @@ import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -48,6 +50,18 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
||||||
|
|
||||||
private final RechargeRecordService rechargeRecordService;
|
private final RechargeRecordService rechargeRecordService;
|
||||||
|
|
||||||
|
private static final Map<Long, MemberLevel> memberLevelMap = new HashMap<>();
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void initMemberLevelMap() {
|
||||||
|
List<MemberLevel> memberLevelList = memberLevelService.list();
|
||||||
|
if (memberLevelList != null && !memberLevelList.isEmpty()) {
|
||||||
|
for (MemberLevel memberLevel : memberLevelList) {
|
||||||
|
memberLevelMap.put(memberLevel.getId(), memberLevel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Member createUserMember(Long userId, Long memberLevelId, String paymentMethod, Long promotionId) {
|
public Member createUserMember(Long userId, Long memberLevelId, String paymentMethod, Long promotionId) {
|
||||||
if (userId == null) {
|
if (userId == null) {
|
||||||
|
@ -97,8 +111,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
||||||
// 根据活动id查询活动类型,如果为积分,则积分加成
|
// 根据活动id查询活动类型,如果为积分,则积分加成
|
||||||
if (promotionId != null) {
|
if (promotionId != null) {
|
||||||
Promotion promotion = promotionMapper.selectById(promotionId);
|
Promotion promotion = promotionMapper.selectById(promotionId);
|
||||||
if (promotion.getActivityType() == PromotionEnum.POINTS) {
|
if (Objects.nonNull(promotion)) {
|
||||||
points = points + promotion.getActivityValue();
|
if (promotion.getActivityType() == PromotionEnum.POINTS) {
|
||||||
|
points = points + promotion.getActivityValue();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
member.setPoints(points);
|
member.setPoints(points);
|
||||||
|
@ -242,6 +258,26 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
||||||
memberConsume.setConsumeTime(new Date());
|
memberConsume.setConsumeTime(new Date());
|
||||||
memberConsumeService.save(memberConsume);
|
memberConsumeService.save(memberConsume);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return 按用户id获取正常的会员集合
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<MemberVo> getValidMemberById(Long userId) {
|
||||||
|
|
||||||
|
List<Member> memberList = this.getUseUserMember(userId);
|
||||||
|
List<MemberVo> memberVoList = new ArrayList<>();
|
||||||
|
for (Member member : memberList) {
|
||||||
|
MemberVo memberVo = BeanUtil.copyProperties(member, MemberVo.class);
|
||||||
|
MemberLevel memberLevel = memberLevelMap.get(member.getMemberLevelId());
|
||||||
|
if (Objects.nonNull(memberLevel)) {
|
||||||
|
memberVo.setMemberLevelName(memberLevel.getMemberName());
|
||||||
|
}
|
||||||
|
memberVoList.add(memberVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
return memberVoList;
|
||||||
|
}
|
||||||
|
|
||||||
private List<Member> getUseUserMember(Long userId) {
|
private List<Member> getUseUserMember(Long userId) {
|
||||||
// startDate 小于等于当前时间、endDate 大于等于当前时间
|
// startDate 小于等于当前时间、endDate 大于等于当前时间
|
||||||
|
|
|
@ -85,8 +85,8 @@ public class UserMemberTask {
|
||||||
*/
|
*/
|
||||||
public void updateSubscriptionStatusTask() {
|
public void updateSubscriptionStatusTask() {
|
||||||
LambdaQueryWrapper<Member> qw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Member> qw = new LambdaQueryWrapper<>();
|
||||||
// endDate大于当前时间, subscriptionStatus不为过期
|
// endDate小于当前时间, subscriptionStatus不为过期
|
||||||
qw.gt(Member::getEndDate, new Date())
|
qw.lt(Member::getEndDate, new Date())
|
||||||
.ne(Member::getSubscriptionStatus, MemberEnum.MEMBER_CENTER_EXPIRED)
|
.ne(Member::getSubscriptionStatus, MemberEnum.MEMBER_CENTER_EXPIRED)
|
||||||
.ne(Member::getSubscriptionStatus, MemberEnum.MEMBER_CENTER_PENDING);
|
.ne(Member::getSubscriptionStatus, MemberEnum.MEMBER_CENTER_PENDING);
|
||||||
List<Member> memberList = memberService.list(qw);
|
List<Member> memberList = memberService.list(qw);
|
||||||
|
|
Loading…
Reference in New Issue