From 2bcf4cc63c2838213cf580af3b53ca757fe8a374 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Wed, 24 Jan 2024 22:49:38 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java index 42db833..957b247 100644 --- a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java @@ -1,6 +1,10 @@ package cc.mrbird.febs.vip.service.impl; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.mall.entity.MallMember; +import cc.mrbird.febs.mall.mapper.MallMemberMapper; +import cc.mrbird.febs.vip.entity.MallVipBenefits; import cc.mrbird.febs.vip.entity.MallVipConfig; import cc.mrbird.febs.vip.entity.MallVipConfigBenefits; import cc.mrbird.febs.vip.mapper.MallVipConfigBenefitsMapper; @@ -8,6 +12,8 @@ import cc.mrbird.febs.vip.service.IMallVipConfigBenefitsService; import cc.mrbird.febs.vip.service.IMallVipConfigService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -18,8 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.List; +import java.util.*; @Slf4j @Service @@ -27,6 +32,7 @@ public class MallVipConfigServiceImpl extends ServiceImpl<MallVipConfigMapper, MallVipConfig> implements IMallVipConfigService { private final IMallVipConfigBenefitsService mallVipConfigBenefitsService; + private final MallMemberMapper mallMemberMapper; @Override public IPage<MallVipConfig> vipConfigList(QueryRequest request) { @@ -85,4 +91,36 @@ delQuery.eq(MallVipConfigBenefits::getConfigId, id); this.mallVipConfigBenefitsService.remove(delQuery); } + + @Override + public MallVipBenefits hasVipBenefits(Long memberId) { + MallMember member = mallMemberMapper.selectById(memberId); + if (member == null) { + throw new FebsException("会员不存在"); + } + + MallVipConfig vipConfig = this.baseMapper.selectVipConfigByCode(member.getLevel()); + if (vipConfig == null) { + throw new FebsException("会员配置不存在"); + } + + String today = DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN); + boolean isBirthday = member.getBirthday().compareTo(DateUtil.parseDate(today)) == 0; + List<MallVipBenefits> benefits = vipConfig.getBenefits(); + Optional<MallVipBenefits> max = benefits.stream().filter(item -> { + if (item.getScoreMultiple() == null) { + return false; + } + + // 生日权益 + if (item.getGainType() == 2 && isBirthday) { + return true; + } + + // 会员日 + return item.getGainType() == 1; + }).max(Comparator.comparing(MallVipBenefits::getScoreMultiple)); + + return max.orElseGet(max::get); + } } -- Gitblit v1.9.1