From 178a6d1916c09f1068a92bf86968d349c89359ce Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Mon, 26 Feb 2024 10:39:18 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 52 insertions(+), 4 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 957b247..6ff9a0c 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,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) { @@ -42,12 +46,28 @@ @Override public List<MallVipConfig> findConfigList() { - return this.baseMapper.selectVipConfigList(); + List<MallVipConfig> configs = this.baseMapper.selectVipConfigList(); + configs.forEach(item -> { + item.getBenefits().stream().filter(benefit -> { + return benefit.getIsShow() == 1; + }).forEach(benefits -> { + benefits.setIsJump(CollUtil.isEmpty(benefits.getDetails()) ? 2 : 1); + }); + }); + return configs; } @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 +84,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<>(); @@ -112,15 +153,22 @@ return false; } + if (item.getGainType() == 3 && item.getScoreMultiple() != null) { + return true; + } + // 生日权益 if (item.getGainType() == 2 && isBirthday) { 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); + return max.orElse(null); } } -- Gitblit v1.9.1