From b52419d0b2e36c718ed041c8e78ec8be514be7b6 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Fri, 26 Jan 2024 20:10:03 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java |   37 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 36 insertions(+), 1 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..3f3b1fe 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<>();

--
Gitblit v1.9.1