From ce7837e20ade48e2937ab8b3c5113148f258aed2 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 17 Feb 2024 16:40:34 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java |   39 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 37 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 e3d030d..1972463 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
@@ -46,12 +46,26 @@
 
     @Override
     public List<MallVipConfig> findConfigList() {
-        return this.baseMapper.selectVipConfigList();
+        List<MallVipConfig> configs = this.baseMapper.selectVipConfigList();
+        configs.forEach(item -> {
+            item.getBenefits().forEach(benefits -> {
+                benefits.setIsJump(CollUtil.isEmpty(benefits.getDetails()) ? 2 : 1);
+            });
+        });
+        return configs;
     }
 
     @Override
     @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<>();
@@ -68,6 +82,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<>();
@@ -128,6 +163,6 @@
             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