diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java index 6a1c806..660c372 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java @@ -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> getUseUserMember(@Valid @NotNull(message = "用户id不能为空") Long userId) { + + return R.ok(memberService.getValidMemberById(userId)); + } + + + /** * 获取积分消费记录 * diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/vo/MemberVo.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/vo/MemberVo.java new file mode 100644 index 0000000..2080c43 --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/vo/MemberVo.java @@ -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; + +} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberService.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberService.java index 01bc342..62f7344 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberService.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberService.java @@ -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 { */ List getUseUserMember(); + /** + * + * @return 按用户id获取正常的会员集合 + */ + List getValidMemberById(Long userId); + /** /** * 根据用户id获取正常的正在使用的用户会员 diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java index fa25dbc..7c9379b 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java @@ -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 impleme private final RechargeRecordService rechargeRecordService; + private static final Map memberLevelMap = new HashMap<>(); + + @PostConstruct + public void initMemberLevelMap() { + List 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 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 impleme memberConsume.setConsumeTime(new Date()); memberConsumeService.save(memberConsume); } + /** + * + * @return 按用户id获取正常的会员集合 + */ + @Override + public List getValidMemberById(Long userId) { + + List memberList = this.getUseUserMember(userId); + List 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 getUseUserMember(Long userId) { // startDate 小于等于当前时间、endDate 大于等于当前时间 diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java index 152147c..cda25a9 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java @@ -85,8 +85,8 @@ public class UserMemberTask { */ public void updateSubscriptionStatusTask() { LambdaQueryWrapper 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 memberList = memberService.list(qw);