From 4d1f7143f73456c142fd532248a6327021d04de8 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 29 九月 2025 18:17:45 +0800
Subject: [PATCH] crm的bug修改

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
index 64f8838..06c3444 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
@@ -48,21 +48,23 @@
 
     @Override
     public PageInfo<TCrmBranchVO> pageList(TCrmBranchQuery query) {
+        PageInfo<TCrmBranchVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TCrmBranchArea> crmBranchAreas = new ArrayList<>();
         if(StringUtils.isNotEmpty(query.getCityCode())){
             crmBranchAreas = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
                     .eq(TCrmBranchArea::getCityCode, query.getCityCode()));
         }
 
-        if(!StringUtils.isNotEmpty(query.getCityCode()) && StringUtils.isNotEmpty(query.getProvinceCode())){
+        if(StringUtils.isNotEmpty(query.getProvinceCode())){
             crmBranchAreas = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
                     .eq(TCrmBranchArea::getProvinceCode, query.getProvinceCode()));
         }
         if(!CollectionUtils.isEmpty(crmBranchAreas)){
             List<String> branchIds = crmBranchAreas.stream().map(TCrmBranchArea::getBranchId).collect(Collectors.toList());
             query.setBranchIds(branchIds);
+        }else {
+            return pageInfo;
         }
-        PageInfo<TCrmBranchVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TCrmBranchVO> list = this.baseMapper.pageList(query,pageInfo);
         if(CollectionUtils.isEmpty(list)){
             return pageInfo;
@@ -90,9 +92,19 @@
         if(Objects.nonNull(sysUser)){
             return R.fail(dto.getPhone()+"-账号已存在");
         }
+        List<TCrmBranchArea> branchAreas = dto.getBranchAreas();
+        // 判断是否已存在这些区域
+        if(!CollectionUtils.isEmpty(branchAreas)){
+            List<String> branchAreaCityCodes = branchAreas.stream().map(TCrmBranchArea::getCityCode).collect(Collectors.toList());
+
+            long count = crmBranchAreaService.count(Wrappers.lambdaQuery(TCrmBranchArea.class).in(TCrmBranchArea::getCityCode, branchAreaCityCodes));
+            if(count > 0){
+                return R.fail("区域已存在");
+            }
+        }
+
         this.save(dto);
         // 添加区域
-        List<TCrmBranchArea> branchAreas = dto.getBranchAreas();
         branchAreas.forEach(t -> t.setBranchId(dto.getId()));
         crmBranchAreaService.saveBatch(branchAreas);
         // 添加职位薪资
@@ -137,11 +149,20 @@
             return R.fail(dto.getPhone()+"-账号已存在");
         }
         SysUser user = sysUserService.selectUserById(dto.getUserId());
+        List<TCrmBranchArea> branchAreas = dto.getBranchAreas();
+        // 判断是否已存在这些区域
+        if(!CollectionUtils.isEmpty(branchAreas)){
+            List<String> branchAreaCityCodes = branchAreas.stream().map(TCrmBranchArea::getCityCode).collect(Collectors.toList());
+            long count = crmBranchAreaService.count(Wrappers.lambdaQuery(TCrmBranchArea.class).in(TCrmBranchArea::getCityCode, branchAreaCityCodes)
+                    .ne(TCrmBranchArea::getBranchId, dto.getId()));
+            if(count > 0){
+                return R.fail("区域存在重复");
+            }
+        }
         this.updateById(dto);
         // 删除区域
         crmBranchAreaService.remove(Wrappers.lambdaQuery(TCrmBranchArea.class).eq(TCrmBranchArea::getBranchId, dto.getId()));
         // 添加区域
-        List<TCrmBranchArea> branchAreas = dto.getBranchAreas();
         branchAreas.forEach(t -> t.setBranchId(dto.getId()));
         crmBranchAreaService.saveBatch(branchAreas);
         // 删除职位薪资

--
Gitblit v1.7.1