From cb13c23829768b94ab980635a4f1ce5e48457be4 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期二, 25 六月 2024 16:53:56 +0800
Subject: [PATCH] 用户类型修改

---
 project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 84 insertions(+), 10 deletions(-)

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 dfc53ff..59b3733 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
@@ -1,5 +1,6 @@
 package com.project.system.service.impl;
 
+import cn.hutool.core.convert.Convert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.project.common.annotation.DataScope;
@@ -15,6 +16,7 @@
 import com.project.common.utils.bean.BeanValidators;
 import com.project.common.utils.spring.SpringUtils;
 import com.project.system.domain.*;
+import com.project.system.domain.bo.editBo.UserDeptBo;
 import com.project.system.domain.vo.SysUserResultVo;
 import com.project.system.domain.vo.SysUserVo;
 import com.project.system.mapper.*;
@@ -295,9 +297,9 @@
         userPostMapper.deleteUserPostByUserId(userId);
         // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞�
         insertUserPost(user);
-
+        SysUser old = this.selectUserById(userId);
         // 鏂板鐢ㄦ埛涓庨儴闂ㄧ鐞�
-        if (!"02".equals(user.getUserType())){
+        if (!"02".equals(user.getUserType()) && !old.getDeptId().equals(user.getDeptId())){
             insertUserDept(user);
         }
         return userMapper.updateUser(user);
@@ -396,12 +398,20 @@
      */
     public void insertUserDept(SysUser user)
     {
-       userDeptService.remove(userDeptService.lq()
-                .eq(SysUserDept::getUserId, user.getUserId())
-                .eq(SysUserDept::getDeptId, user.getDeptId())
-        );
-        SysUserDept userDept = new SysUserDept().setUserId(user.getUserId()).setDeptId(user.getDeptId());
-        userDeptService.save(userDept);
+        if (deptService.getCheckDeptIdByLoginDeptId(user.getDeptId()).equals(user.getDeptId())) { //鍒嗙灞�鍐呮墍鏈夐儴闂�
+            List<SysDept> list = deptService.list(deptService.lq().eq(SysDept::getParentId, user.getDeptId()));
+            List<Long> deptIds = list.stream().map(SysDept::getDeptId).collect(Collectors.toList());
+            deptIds.add(user.getDeptId());
+            UserDeptBo bo = new UserDeptBo();
+            bo.setUserId(user.getUserId());
+            bo.setDeptIds(deptIds);
+            userDeptService.batchUserDeptSave(bo);
+        } else { //鍒嗙鍗曠嫭閮ㄩ棬
+            userDeptService.remove(userDeptService.lq().eq(SysUserDept::getUserId, user.getUserId()));
+            SysUserDept userDept = new SysUserDept().setUserId(user.getUserId()).setDeptId(user.getDeptId());
+            userDeptService.save(userDept);
+        }
+
     }
 
     /**
@@ -587,6 +597,12 @@
         return userMapper.resetPhone(userId, phone);
     }
 
+    /**
+     * 澶勭悊瀵煎叆鏁版嵁
+     * @param list    鏁版嵁
+     * @param deptId    瀵煎叆閮ㄩ棬id
+     * @return  缁撴灉
+     */
     @Override
     public SysUserResultVo doImport(List<SysUserVo> list, Long deptId)
     {
@@ -602,6 +618,11 @@
         return this.checkImport(resultVo);
     }
 
+    /**
+     * 鏍¢獙瀵煎叆鏁版嵁
+     * @param resultVo    鏁版嵁
+     * @return  缁撴灉
+     */
     @Override
     public SysUserResultVo checkImport(SysUserResultVo resultVo)
     {
@@ -616,6 +637,11 @@
         return  resultVo;
     }
 
+    /**
+     * 楠岃瘉鍙傛暟
+     * @param entity    鏁版嵁
+     * @param errorList 閿欒鏁版嵁
+     */
     private void validEntityBeforeImport(SysUserVo entity, List<ImportError> errorList)
     {
         if (StringUtils.isEmpty(entity.getNickName())){
@@ -644,10 +670,58 @@
                 }
             }
         }
+        if (StringUtils.isNotEmpty(entity.getEmail())){
+            SysUser check = new SysUser();
+            check.setPhonenumber(entity.getPhonenumber());
+            String s = checkEmailUnique(check);
+            if (UserConstants.NOT_UNIQUE.equals(s)) {
+                errorList.add(new ImportError(3, "閭宸插瓨鍦紒"));
+            }
+        }
+        if (StringUtils.isNotEmpty(entity.getImportSex())){
+            switch (entity.getImportSex().trim()){
+                case "鐢�":
+                    entity.setSex("0");
+                    break;
+                case "濂�":
+                    entity.setSex("1");
+                    break;
+                case "鏈煡":
+                    entity.setSex("2");
+                    break;
+            }
+        } else {
+            entity.setSex("2");
+        }
+    }
+
+    /**
+     * 淇濆瓨瀵煎叆缁撴灉
+     * @param resultVo    鏁版嵁
+     * @return  缁撴灉
+     */
+    @Override
+    @Transactional
+    public Boolean saveImport(SysUserResultVo resultVo)
+    {
+        if (resultVo==null || StringUtils.isEmpty(resultVo.getVoList())){
+            throw new BaseException("鏈幏鍙栧埌瀵煎叆淇℃伅锛�");
+        }
+        resultVo.getVoList().forEach(e-> {
+            if (StringUtils.isNotEmpty(e.getErrorList())) {
+                throw new BaseException("杩樻湁鏈鐞嗛敊璇俊鎭紒");
+            }
+        });
+        List<SysUser> users = Convert.toList(SysUser.class, resultVo.getVoList());
+        for (SysUser user : users) {
+            this.insertUser(user);
+        }
+        return true;
     }
 
     @Override
-    public Boolean saveImport(SysUserResultVo resultVo) {
-        return null;
+    public String getDeptNameByUserId(Long userId)
+    {
+        return deptService.selectDeptById(selectUserById(userId).getDeptId()).getDeptName();
     }
 }

--
Gitblit v1.9.1