From 3e11f3d28421cf9401bb42e68ed49e118e0ce5dc Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期一, 24 六月 2024 16:40:08 +0800
Subject: [PATCH] 用户导入

---
 project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java |   31 ++++++++-------
 project-system/src/main/resources/mapper/system/SysUserMapper.xml                      |    2 
 project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java   |   63 ++++++++++++++++++++++++++++++-
 project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java               |    5 ++
 4 files changed, 82 insertions(+), 19 deletions(-)

diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
index 3175f4f..4379306 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
@@ -13,6 +13,7 @@
 import com.project.common.utils.StringUtils;
 import com.project.common.utils.poi.ExcelUtil;
 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.service.*;
 import io.swagger.annotations.ApiImplicitParam;
@@ -313,20 +314,20 @@
         return AjaxResult.success(userService.doImport(list, deptId));
     }
 
-//    @ApiOperation(value = "鏍¢獙瀵煎叆淇℃伅")
-//    @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅鏍¢獙" , businessType = BusinessType.OTHER)
-//    @PostMapping("/checkImport")
-//    public AjaxResult checkImport(@RequestBody SysCompanyResultVo resultVo)
-//    {
-//        return AjaxResult.success(userService.checkImport(resultVo));
-//    }
-//
-//    @ApiOperation(value = "淇濆瓨瀵煎叆淇℃伅")
-//    @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅淇濆瓨" , businessType = BusinessType.IMPORT)
-//    @PostMapping("/saveImport")
-//    public AjaxResult saveImport(@RequestBody SysCompanyResultVo resultVo)
-//    {
-//        return toAjax(userService.saveImport(resultVo) ? 1 : 0);
-//    }
+    @ApiOperation(value = "鏍¢獙瀵煎叆淇℃伅")
+    @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅鏍¢獙" , businessType = BusinessType.OTHER)
+    @PostMapping("/checkImport")
+    public AjaxResult checkImport(@RequestBody SysUserResultVo resultVo)
+    {
+        return AjaxResult.success(userService.checkImport(resultVo));
+    }
+
+    @ApiOperation(value = "淇濆瓨瀵煎叆淇℃伅")
+    @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅淇濆瓨" , businessType = BusinessType.IMPORT)
+    @PostMapping("/saveImport")
+    public AjaxResult saveImport(@RequestBody SysUserResultVo resultVo)
+    {
+        return toAjax(userService.saveImport(resultVo) ? 1 : 0);
+    }
 
 }
diff --git a/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java b/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java
index 01ef4bf..adc0935 100644
--- a/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java
+++ b/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java
@@ -37,7 +37,7 @@
 
     @Excel(name = "鎬у埆")
     @ApiModelProperty("鎬у埆")
-    private String sex;
+    private String ImportSex;
 
     @Excel(name = "澶囨敞")
     @ApiModelProperty("澶囨敞")
@@ -50,6 +50,9 @@
     @ApiModelProperty("鐢ㄦ埛id")
     private Long userId;
 
+    @ApiModelProperty("鎬у埆")
+    private String sex;
+
     @ApiModelProperty("閿欒淇℃伅鏁版嵁")
     private List<ImportError> errorList;
 
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..e928983 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;
@@ -587,6 +588,12 @@
         return userMapper.resetPhone(userId, phone);
     }
 
+    /**
+     * 澶勭悊瀵煎叆鏁版嵁
+     * @param list    鏁版嵁
+     * @param deptId    瀵煎叆閮ㄩ棬id
+     * @return  缁撴灉
+     */
     @Override
     public SysUserResultVo doImport(List<SysUserVo> list, Long deptId)
     {
@@ -602,6 +609,11 @@
         return this.checkImport(resultVo);
     }
 
+    /**
+     * 鏍¢獙瀵煎叆鏁版嵁
+     * @param resultVo    鏁版嵁
+     * @return  缁撴灉
+     */
     @Override
     public SysUserResultVo checkImport(SysUserResultVo resultVo)
     {
@@ -616,6 +628,11 @@
         return  resultVo;
     }
 
+    /**
+     * 楠岃瘉鍙傛暟
+     * @param entity    鏁版嵁
+     * @param errorList 閿欒鏁版嵁
+     */
     private void validEntityBeforeImport(SysUserVo entity, List<ImportError> errorList)
     {
         if (StringUtils.isEmpty(entity.getNickName())){
@@ -644,10 +661,52 @@
                 }
             }
         }
+        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
-    public Boolean saveImport(SysUserResultVo resultVo) {
-        return null;
+    @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;
     }
 }
diff --git a/project-system/src/main/resources/mapper/system/SysUserMapper.xml b/project-system/src/main/resources/mapper/system/SysUserMapper.xml
index 478a8c2..42e47cc 100644
--- a/project-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/project-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -250,7 +250,7 @@
 			from sys_user u
 			join sys_user_role ur on u.user_id = ur.user_id
 			join sys_role r on r.role_id = ur.role_id
-			join sys_user_dept ud on u.user_id = ud.dept_id
+			join sys_user_dept ud on u.user_id = ud.user_id
 		where
 		  u.user_type != '02'
 		  and u.status='0'

--
Gitblit v1.9.1