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.memberCenter.domain.*;
|
||||
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.enums.PromotionEnum;
|
||||
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.TableDataInfo;
|
||||
import com.mcwl.memberCenter.domain.Member;
|
||||
import com.mcwl.memberCenter.domain.vo.MemberVo;
|
||||
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
@ -28,6 +29,12 @@ public interface MemberService extends IService<Member> {
|
|||
*/
|
||||
List<Member> getUseUserMember();
|
||||
|
||||
/**
|
||||
*
|
||||
* @return 按用户id获取正常的会员集合
|
||||
*/
|
||||
List<MemberVo> getValidMemberById(Long userId);
|
||||
|
||||
/**
|
||||
/**
|
||||
* 根据用户id获取正常的正在使用的用户会员
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.mcwl.common.exception.ServiceException;
|
|||
import com.mcwl.common.utils.DateUtils;
|
||||
import com.mcwl.common.utils.SecurityUtils;
|
||||
import com.mcwl.memberCenter.domain.*;
|
||||
import com.mcwl.memberCenter.domain.vo.MemberVo;
|
||||
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import com.mcwl.memberCenter.enums.MemberEnum;
|
||||
|
@ -27,6 +28,7 @@ import lombok.RequiredArgsConstructor;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.*;
|
||||
|
||||
|
@ -48,6 +50,18 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||
|
||||
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
|
||||
public Member createUserMember(Long userId, Long memberLevelId, String paymentMethod, Long promotionId) {
|
||||
if (userId == null) {
|
||||
|
@ -97,8 +111,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||
// 根据活动id查询活动类型,如果为积分,则积分加成
|
||||
if (promotionId != null) {
|
||||
Promotion promotion = promotionMapper.selectById(promotionId);
|
||||
if (promotion.getActivityType() == PromotionEnum.POINTS) {
|
||||
points = points + promotion.getActivityValue();
|
||||
if (Objects.nonNull(promotion)) {
|
||||
if (promotion.getActivityType() == PromotionEnum.POINTS) {
|
||||
points = points + promotion.getActivityValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
member.setPoints(points);
|
||||
|
@ -242,6 +258,26 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||
memberConsume.setConsumeTime(new Date());
|
||||
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) {
|
||||
// startDate 小于等于当前时间、endDate 大于等于当前时间
|
||||
|
|
|
@ -85,8 +85,8 @@ public class UserMemberTask {
|
|||
*/
|
||||
public void updateSubscriptionStatusTask() {
|
||||
LambdaQueryWrapper<Member> qw = new LambdaQueryWrapper<>();
|
||||
// endDate大于当前时间, subscriptionStatus不为过期
|
||||
qw.gt(Member::getEndDate, new Date())
|
||||
// endDate小于当前时间, subscriptionStatus不为过期
|
||||
qw.lt(Member::getEndDate, new Date())
|
||||
.ne(Member::getSubscriptionStatus, MemberEnum.MEMBER_CENTER_EXPIRED)
|
||||
.ne(Member::getSubscriptionStatus, MemberEnum.MEMBER_CENTER_PENDING);
|
||||
List<Member> memberList = memberService.list(qw);
|
||||
|
|
Loading…
Reference in New Issue