From 9c348b05a774adf47453780cf3b7a8f9823661f5 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期三, 26 六月 2024 18:30:19 +0800
Subject: [PATCH] 企业多手机号

---
 project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java   |   62 +++++++++++++++----------------
 project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java |   32 ++++++++++++---
 project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java  |    2 
 project-system/src/main/java/com/project/system/service/ISysUserService.java              |    4 +-
 project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java      |    6 +-
 project-system/src/main/java/com/project/system/service/ISysCompanyService.java           |    8 ++++
 6 files changed, 69 insertions(+), 45 deletions(-)

diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java
index 8b96f96..b8220a0 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java
@@ -136,30 +136,48 @@
      * 鏇存崲鎵嬫満鍙�
      */
     @Log(title = "鏇存崲鎵嬫満鍙�", businessType = BusinessType.UPDATE)
-    @PostMapping("/updatePhone/{phone}")
-    public AjaxResult updatePhone(@PathVariable String phone)
+    @PostMapping("/updatePhone/{phone}/{companyId}")
+    public AjaxResult updatePhone(@PathVariable String phone, @PathVariable String companyId)
     {
         if (StringUtils.isEmpty(phone)){
             return error("璇峰~鍐欐墜鏈哄彿");
         }
         LoginUser loginUser = SecurityUtils.getLoginUser();
         SysUser user = userService.selectUserById(SecurityUtils.getUserId());
+        if ("02".equals(user.getUserType()) && StringUtils.isNotEmpty(companyId)){//浼佷笟
+            //澶氫紒涓氳处鎴锋洿鎹㈠彿鐮�
+            //鏂板彿鐮佷笉瀛樺湪锛�
+            SysUser one = userService.getOne(userService.lq().eq(SysUser::getPhonenumber, phone));
+            if (one!=null && !"02".equals(one.getUserType())){
+                return error("璇ユ墜鏈哄彿涓嶆槸浼佷笟鍙风爜鑼冨洿锛岃鏇存崲鍙风爜");
+            }
+            if (companyService.count(SysCompany::getCompanyPhone, user.getPhonenumber())==1){
+                userService.deleteUserByCompanyPhone(user.getPhonenumber());
+            }
+            if (one==null){ //涓嶅瓨鍦�,娣诲姞浼佷笟璐︽埛
+                SysCompany company = companyService.getById(Long.parseLong(companyId));
+                company.setCompanyPhone(phone);
+                companyService.addCompanyUser(company, 1);
+            }
+            //淇敼浼佷笟鐢佃瘽
+            companyService.update(companyService.lu().set(SysCompany::getCompanyPhone, phone).eq(SysCompany::getCompanyId, Long.parseLong(companyId)));
+            return success(1);
+        }
         user.setPhonenumber(phone);
+
         if (StringUtils.isNotEmpty(user.getPhonenumber())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+                    && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
         {
             return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪");
         }
+
         if (userService.resetPhone(user.getUserId(), phone) > 0)
         {
             // 鏇存柊缂撳瓨
             loginUser.getUser().setUserName(phone);
             loginUser.getUser().setPhonenumber(phone);
             tokenService.setLoginUser(loginUser);
-            if ("02".equals(user.getUserType())){
-                companyService.update(companyService.lu().set(SysCompany::getCompanyPhone, phone).eq(SysCompany::getCompanyId, user.getDeptId()));
-            }
-            return success();
+            return success(0);
         }
         return error("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛�");
     }
diff --git a/project-system/src/main/java/com/project/system/service/ISysCompanyService.java b/project-system/src/main/java/com/project/system/service/ISysCompanyService.java
index 74f8a1e..6fe72e6 100644
--- a/project-system/src/main/java/com/project/system/service/ISysCompanyService.java
+++ b/project-system/src/main/java/com/project/system/service/ISysCompanyService.java
@@ -78,4 +78,12 @@
 	 */
 	Boolean saveImport(SysCompanyResultVo resultVo);
 
+
+	/**
+	 * 娣诲姞浼佷笟璐︽埛
+	 * @param entity	浼佷笟
+	 * @param isImport	鏄惁瀵煎叆锛�1鏄紝0鍚�
+	 */
+	void addCompanyUser(SysCompany entity, Integer isImport);
+
 }
diff --git a/project-system/src/main/java/com/project/system/service/ISysUserService.java b/project-system/src/main/java/com/project/system/service/ISysUserService.java
index a9f2598..977b71d 100644
--- a/project-system/src/main/java/com/project/system/service/ISysUserService.java
+++ b/project-system/src/main/java/com/project/system/service/ISysUserService.java
@@ -211,10 +211,10 @@
 
     /**
      * 鏍规嵁鏈烘瀯id娓呴櫎鐢ㄦ埛
-     * @param deptId    鏈烘瀯id
+     * @param phone    浼佷笟phone
      * @return  缁撴灉
      */
-    public int deleteUserByDeptId(Long deptId);
+    public int deleteUserByCompanyPhone(String phone);
 
     /**
      * 鑾峰彇瑙掕壊鏍囪瘑浜烘墜鏈哄彿
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java
index 573579a..c3f46d2 100644
--- a/project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java
+++ b/project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java
@@ -62,9 +62,10 @@
         SysCompany add = Convert.convert(SysCompany.class, bo);
         add.setCompanyStatus(1);
         validEntityBeforeSave(add);
-        add.setCompanyStatus(0);
         boolean save = this.save(add);
-        addCompanyUser(add, 0);
+        if (isAddUser(bo.getCompanyPhone())){
+            addCompanyUser(add, 0);
+        }
         return save;
     }
 
@@ -76,11 +77,15 @@
         SysCompany update = Convert.convert(SysCompany.class, bo);
         validEntityBeforeSave(update);
         if (!old.getCompanyPhone().equals(update.getCompanyPhone())){
-            boolean delUser = delCompanyUser(old.getCompanyId());
-            if (!delUser) {
-                throw new BaseException("鍘熶紒涓氱敤鎴锋竻闄ゅけ璐ワ紝璇疯仈绯荤鐞嗗憳锛�");
+            if (this.count(SysCompany::getCompanyPhone, old.getCompanyPhone())==1){
+                boolean delUser = delCompanyUser(old.getCompanyPhone());
+                if (!delUser) {
+                    throw new BaseException("鍘熶紒涓氱敤鎴锋竻闄ゅけ璐ワ紝璇疯仈绯荤鐞嗗憳锛�");
+                }
             }
-            this.addCompanyUser(update, update.getCompanyStatus()==0 ? 1 : 0);
+            if (isAddUser(update.getCompanyPhone())){
+                addCompanyUser(update, update.getCompanyStatus()==0 ? 1 : 0);
+            }
         }
         return this.updateById(update);
     }
@@ -103,7 +108,7 @@
     public Boolean deleteByIds(Collection<Long> ids)
     {
         for (Long id : ids) {
-            boolean b = delCompanyUser(id);
+            boolean b = delCompanyUser(this.getById(id).getCompanyPhone());
             if (!b) {
                 throw new BaseException(String.format("鍘熶紒涓� %1$s 鐢ㄦ埛娓呴櫎澶辫触锛岃鑱旂郴绠$悊鍛橈紒", id));
             }
@@ -153,7 +158,9 @@
         List<SysCompany> companies = Convert.toList(SysCompany.class, resultVo.getVoList());
         boolean b = this.saveOrUpdateBatch(companies);
         for (SysCompany company : companies) {
-            addCompanyUser(company,1);
+            if (isAddUser(company.getCompanyPhone())){
+                addCompanyUser(company,1);
+            }
         }
         return b;
     }
@@ -168,6 +175,7 @@
     private void validEntityBeforeSave(SysCompany entity)
     {
         entity.setIsImport(0);
+
         if (StringUtils.isEmpty(entity.getCompanyImg())){
             throw new BaseException(String.format("%1$s锛岃涓婁紶钀ヤ笟鎵х収", entity.getCompanyName()));
         }
@@ -195,15 +203,8 @@
             if (nameCount>0){
                 throw new BaseException(String.format("%1$s锛屼紒涓氬悕宸插瓨鍦紒", entity.getCompanyName()));
             }
-            int phoneCount = this.count(lq().eq(SysCompany::getCompanyPhone, entity.getCompanyPhone()));
-            if (phoneCount>0){
-                throw new BaseException(String.format("%1$s锛屼紒涓氳仈绯荤數璇濆凡瀛樺湪锛�", entity.getCompanyName()));
-            }
             SysUser user = new SysUser();
             user.setPhonenumber(entity.getCompanyPhone());
-            if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
-                throw new BaseException(String.format("%1$s锛屼紒涓氳仈绯荤數璇濆凡瀛樺湪锛岃鏇存崲鎵嬫満鍙凤紒", entity.getCompanyName()));
-            }
         } else {
             int codeCount = this.count(lq().eq(SysCompany::getCompanyCode, entity.getCompanyCode()).ne(SysCompany::getCompanyId,entity.getCompanyId()));
             if (codeCount>0){
@@ -212,10 +213,6 @@
             int nameCount = this.count(lq().eq(SysCompany::getCompanyName, entity.getCompanyName()).ne(SysCompany::getCompanyId,entity.getCompanyId()));
             if (nameCount>0){
                 throw new BaseException(String.format("%1$s锛屼紒涓氬悕宸插瓨鍦紒", entity.getCompanyName()));
-            }
-            int phoneCount = this.count(lq().eq(SysCompany::getCompanyPhone, entity.getCompanyPhone()).ne(SysCompany::getCompanyId,entity.getCompanyId()));
-            if (phoneCount>0){
-                throw new BaseException(String.format("%1$s锛屼紒涓氳仈绯荤數璇濆凡瀛樺湪锛�", entity.getCompanyName()));
             }
         }
     }
@@ -235,6 +232,10 @@
         }
         if (StringUtils.isEmpty(entity.getCompanyPhone())){
             errorList.add(new ImportError(3, "璇峰~鍐欎紒涓氳仈绯讳汉鐢佃瘽锛�"));
+        } else {
+            if (entity.getCompanyPhone().length()!=11){
+                errorList.add(new ImportError(3, "璇峰~鍐欐纭墜鏈哄彿锛�"));
+            }
         }
         if (StringUtils.isEmpty(entity.getCompanyAddress())){
             errorList.add(new ImportError(4, "璇峰~鍐欎紒涓氬湴鍧�锛�"));
@@ -247,15 +248,6 @@
         if (nameCount>0){
             errorList.add(new ImportError(0, "浼佷笟鍚嶅凡瀛樺湪锛�"));
         }
-        int phoneCount = this.count(lq().eq(SysCompany::getCompanyPhone, entity.getCompanyPhone()));
-        SysUser user = new SysUser();
-        user.setPhonenumber(entity.getCompanyPhone());
-        if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
-            errorList.add(new ImportError(3, "浼佷笟鑱旂郴鐢佃瘽绯荤粺涓凡瀛樺湪锛岃鏇存崲鐢佃瘽锛�"));
-        }
-        if (phoneCount>0){
-            errorList.add(new ImportError(3, "浼佷笟鑱旂郴鐢佃瘽宸插瓨鍦紒"));
-        }
         entity.setCheckStatus(2);
     }
 
@@ -264,7 +256,8 @@
      * @param entity    浼佷笟淇℃伅
      */
     @Async
-    protected void addCompanyUser(SysCompany entity, Integer isImport)
+    @Override
+    public void addCompanyUser(SysCompany entity, Integer isImport)
     {
 
         SysUser user = new SysUser();
@@ -308,11 +301,11 @@
 
     /**
      * 鍒犻櫎浼佷笟鐢ㄦ埛
-     * @param companyId    浼佷笟id
+     * @param companyPhone    浼佷笟id
      */
-    protected boolean delCompanyUser(Long companyId)
+    protected boolean delCompanyUser(String companyPhone)
     {
-        return userService.deleteUserByDeptId(companyId)>0;
+        return userService.deleteUserByCompanyPhone(companyPhone)>0;
     }
 
     /**
@@ -346,4 +339,9 @@
         }
         return qw;
     }
+
+    private Boolean isAddUser(String phone)
+    {
+       return userService.count(userService.lq().eq(SysUser::getUserName, phone).eq(SysUser::getDelFlag,0))==0;
+    }
 }
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java
index b5a97f8..b9535c9 100644
--- a/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java
+++ b/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java
@@ -96,7 +96,7 @@
         vo.setDeptId(sysDept.getDeptId());
         vo.setDeptName(sysDept.getDeptName());
 
-        List<SysDept> list = deptService.list(deptService.lq().eq(SysDept::getParentId, deptId));
+        List<SysDept> list = deptService.list(deptService.lq().eq(SysDept::getParentId, deptId).eq(SysDept::getDelFlag, 0));
         List<SysUserDeptTreeVo> child = Convert.toList(SysUserDeptTreeVo.class, list);
         vo.setChild(child);
         return vo;
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
index 59b3733..b5f469e 100644
--- a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
+++ b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
@@ -574,14 +574,14 @@
     /**
      * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅
      *
-     * @param deptId 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID
+     * @param phone 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID
      * @return 缁撴灉
      */
     @Override
     @Transactional
-    public int deleteUserByDeptId(Long deptId)
+    public int deleteUserByCompanyPhone(String phone)
     {
-        List<SysUser> sysUsers = userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getDeptId, deptId));
+        List<SysUser> sysUsers = userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, phone));
         Long[] ids = sysUsers.stream().map(SysUser::getUserId).toArray(Long[]::new);
         return this.deleteUserByIds(ids);
     }

--
Gitblit v1.9.1