Merge branch 'feature/community-center' into preview

master
yang 2025-03-11 15:08:40 +08:00
commit c48498e441
5 changed files with 111 additions and 4 deletions

View File

@ -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));
}
/** /**
* *
* *

View File

@ -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;
}

View File

@ -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使

View File

@ -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,10 +111,12 @@ 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 (Objects.nonNull(promotion)) {
if (promotion.getActivityType() == PromotionEnum.POINTS) { if (promotion.getActivityType() == PromotionEnum.POINTS) {
points = points + promotion.getActivityValue(); 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 大于等于当前时间

View File

@ -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);