fix
Hentua
2024-01-26 a867eecbc6e484fafba4cd0b9267c301cfc7c74d
src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java
@@ -1,8 +1,11 @@
package cc.mrbird.febs.vip.service.impl;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.vip.entity.MallVipBenefits;
import cc.mrbird.febs.vip.entity.MallVipConfig;
@@ -33,6 +36,7 @@
    private final IMallVipConfigBenefitsService mallVipConfigBenefitsService;
    private final MallMemberMapper mallMemberMapper;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    @Override
    public IPage<MallVipConfig> vipConfigList(QueryRequest request) {
@@ -46,8 +50,16 @@
    }
    @Override
    @Transactional
    @Transactional(rollbackFor = Exception.class)
    public void addVipConfig(MallVipConfig config) {
        List<MallVipConfig> configs = this.baseMapper.selectVipConfigList();
        boolean b = configs.stream().anyMatch(item -> {
            return (item.getLevel().equals(config.getLevel()) || config.getCode().equals(item.getCode()));
        });
        if (b) {
            throw new FebsException("会员等级或编码已存在");
        }
        this.baseMapper.insert(config);
        List<MallVipConfigBenefits> configBenefitsList = new ArrayList<>();
@@ -64,6 +76,27 @@
    @Override
    public void editVipConfig(MallVipConfig config) {
        MallVipConfig oldConfig = this.baseMapper.selectById(config.getId());
        List<MallVipConfig> configs = this.baseMapper.selectVipConfigList();
        boolean b = configs.stream().anyMatch(item -> {
            return !item.getId().equals(config.getId()) && (item.getLevel().equals(config.getLevel()) || config.getCode().equals(item.getCode()));
        });
        if (b) {
            throw new FebsException("会员等级或编码已存在");
        }
        if (!config.getCode().equals(oldConfig.getCode())) {
            LambdaQueryWrapper<MallMember> memberQuery = new LambdaQueryWrapper<>();
            memberQuery.eq(MallMember::getLevel, oldConfig.getCode());
            List<MallMember> mallMembers = mallMemberMapper.selectList(memberQuery);
            if (CollUtil.isNotEmpty(mallMembers)) {
                throw new FebsException("会员编码绑定了客户,请调整后修改");
            }
        }
        this.baseMapper.updateById(config);
        LambdaQueryWrapper<MallVipConfigBenefits> delQuery = new LambdaQueryWrapper<>();
@@ -117,8 +150,11 @@
                return true;
            }
            DataDictionaryCustom data = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.VIP_DATE.getType(), DataDictionaryEnum.VIP_DATE.getCode());
            String todayTime = DateUtil.format(new Date(), "MM-dd");
            // 会员日
            return item.getGainType() == 1;
            return item.getGainType() == 1 && StrUtil.equals(data.getValue(), todayTime);
        }).max(Comparator.comparing(MallVipBenefits::getScoreMultiple));
        return max.orElseGet(max::get);