Browse Source

修改用户导入功能,增加部门和是否部门管理员相关

wukai 2 years ago
parent
commit
7dd2619dc3

+ 149 - 127
lzga-api/lzga-api-system/src/main/java/com/jjt/system/api/domain/SysUser.java

@@ -3,6 +3,8 @@ package com.jjt.system.api.domain;
 import java.util.Date;
 import java.util.List;
 import javax.validation.constraints.*;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.jjt.common.core.annotation.Excel;
@@ -14,310 +16,330 @@ import com.jjt.common.core.xss.Xss;
 
 /**
  * 用户对象 sys_user
- * 
+ *
  * @author ruoyi
  */
-public class SysUser extends BaseEntity
-{
+public class SysUser extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 用户ID */
-    @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
+    /**
+     * 用户ID
+     */
+    @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, type = Type.EXPORT, prompt = "用户编号")
     private Long userId;
 
-    /** 部门ID */
-    @Excel(name = "部门编号", type = Type.IMPORT)
+    /**
+     * 部门ID
+     */
+//    @Excel(name = "部门编号", type = Type.IMPORT)
     private Long deptId;
 
-    /** 用户账号 */
+    @Excel(name = "所属部门", type = Type.IMPORT)
+    @TableField(exist = false)
+    private String deptName;
+
+    @Excel(name = "部门管理员", type = Type.IMPORT, readConverterExp = "Y=是,N=否")
+    @TableField(exist = false)
+    private String isManager;
+
+    /**
+     * 用户账号
+     */
     @Excel(name = "登录名称")
     private String userName;
 
-    /** 用户昵称 */
+    /**
+     * 用户昵称
+     */
     @Excel(name = "用户名称")
     private String nickName;
 
-    /** 用户邮箱 */
+    /**
+     * 用户邮箱
+     */
     @Excel(name = "用户邮箱")
     private String email;
 
-    /** 手机号码 */
+    /**
+     * 手机号码
+     */
     @Excel(name = "手机号码")
     private String phonenumber;
 
-    /** 用户性别 */
+    /**
+     * 用户性别
+     */
     @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
     private String sex;
 
-    /** 用户头像 */
+    /**
+     * 用户头像
+     */
     private String avatar;
 
-    /** 密码 */
+    /**
+     * 密码
+     */
     private String password;
 
-    /** 帐号状态(0正常 1停用) */
-    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用", type = Type.EXPORT)
     private String status;
 
-    /** 删除标志(0代表存在 2代表删除) */
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
     private String delFlag;
 
-    /** 最后登录IP */
+    /**
+     * 最后登录IP
+     */
     @Excel(name = "最后登录IP", type = Type.EXPORT)
     private String loginIp;
 
-    /** 最后登录时间 */
+    /**
+     * 最后登录时间
+     */
     @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
     private Date loginDate;
 
-    /** 部门对象 */
+    /**
+     * 部门对象
+     */
     @Excels({
-        @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
-        @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
+            @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
+            @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
     })
     private SysDept dept;
 
-    /** 角色对象 */
+    /**
+     * 角色对象
+     */
     private List<SysRole> roles;
 
-    /** 角色组 */
+    /**
+     * 角色组
+     */
     private Long[] roleIds;
 
-    /** 岗位组 */
+    /**
+     * 岗位组
+     */
     private Long[] postIds;
 
-    /** 角色ID */
+    /**
+     * 角色ID
+     */
     private Long roleId;
 
-    public SysUser()
-    {
+    public SysUser() {
+
+    }
+
+    public String getIsManager() {
+        return isManager;
+    }
+
+    public void setIsManager(String isManager) {
+        this.isManager = isManager;
+    }
 
+    public String getDeptName() {
+        return deptName;
     }
 
-    public SysUser(Long userId)
-    {
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public SysUser(Long userId) {
         this.userId = userId;
     }
 
-    public Long getUserId()
-    {
+    public Long getUserId() {
         return userId;
     }
 
-    public void setUserId(Long userId)
-    {
+    public void setUserId(Long userId) {
         this.userId = userId;
     }
 
-    public boolean isAdmin()
-    {
+    public boolean isAdmin() {
         return isAdmin(this.userId);
     }
 
-    public static boolean isAdmin(Long userId)
-    {
+    public static boolean isAdmin(Long userId) {
         return userId != null && 1L == userId;
     }
 
-    public Long getDeptId()
-    {
+    public Long getDeptId() {
         return deptId;
     }
 
-    public void setDeptId(Long deptId)
-    {
+    public void setDeptId(Long deptId) {
         this.deptId = deptId;
     }
 
     @Xss(message = "用户昵称不能包含脚本字符")
     @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
-    public String getNickName()
-    {
+    public String getNickName() {
         return nickName;
     }
 
-    public void setNickName(String nickName)
-    {
+    public void setNickName(String nickName) {
         this.nickName = nickName;
     }
 
     @Xss(message = "用户账号不能包含脚本字符")
     @NotBlank(message = "用户账号不能为空")
     @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
-    public String getUserName()
-    {
+    public String getUserName() {
         return userName;
     }
 
-    public void setUserName(String userName)
-    {
+    public void setUserName(String userName) {
         this.userName = userName;
     }
 
     @Email(message = "邮箱格式不正确")
     @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
-    public String getEmail()
-    {
+    public String getEmail() {
         return email;
     }
 
-    public void setEmail(String email)
-    {
+    public void setEmail(String email) {
         this.email = email;
     }
 
     @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
-    public String getPhonenumber()
-    {
+    public String getPhonenumber() {
         return phonenumber;
     }
 
-    public void setPhonenumber(String phonenumber)
-    {
+    public void setPhonenumber(String phonenumber) {
         this.phonenumber = phonenumber;
     }
 
-    public String getSex()
-    {
+    public String getSex() {
         return sex;
     }
 
-    public void setSex(String sex)
-    {
+    public void setSex(String sex) {
         this.sex = sex;
     }
 
-    public String getAvatar()
-    {
+    public String getAvatar() {
         return avatar;
     }
 
-    public void setAvatar(String avatar)
-    {
+    public void setAvatar(String avatar) {
         this.avatar = avatar;
     }
 
-    public String getPassword()
-    {
+    public String getPassword() {
         return password;
     }
 
-    public void setPassword(String password)
-    {
+    public void setPassword(String password) {
         this.password = password;
     }
 
-    public String getStatus()
-    {
+    public String getStatus() {
         return status;
     }
 
-    public void setStatus(String status)
-    {
+    public void setStatus(String status) {
         this.status = status;
     }
 
-    public String getDelFlag()
-    {
+    public String getDelFlag() {
         return delFlag;
     }
 
-    public void setDelFlag(String delFlag)
-    {
+    public void setDelFlag(String delFlag) {
         this.delFlag = delFlag;
     }
 
-    public String getLoginIp()
-    {
+    public String getLoginIp() {
         return loginIp;
     }
 
-    public void setLoginIp(String loginIp)
-    {
+    public void setLoginIp(String loginIp) {
         this.loginIp = loginIp;
     }
 
-    public Date getLoginDate()
-    {
+    public Date getLoginDate() {
         return loginDate;
     }
 
-    public void setLoginDate(Date loginDate)
-    {
+    public void setLoginDate(Date loginDate) {
         this.loginDate = loginDate;
     }
 
-    public SysDept getDept()
-    {
+    public SysDept getDept() {
         return dept;
     }
 
-    public void setDept(SysDept dept)
-    {
+    public void setDept(SysDept dept) {
         this.dept = dept;
     }
 
-    public List<SysRole> getRoles()
-    {
+    public List<SysRole> getRoles() {
         return roles;
     }
 
-    public void setRoles(List<SysRole> roles)
-    {
+    public void setRoles(List<SysRole> roles) {
         this.roles = roles;
     }
 
-    public Long[] getRoleIds()
-    {
+    public Long[] getRoleIds() {
         return roleIds;
     }
 
-    public void setRoleIds(Long[] roleIds)
-    {
+    public void setRoleIds(Long[] roleIds) {
         this.roleIds = roleIds;
     }
 
-    public Long[] getPostIds()
-    {
+    public Long[] getPostIds() {
         return postIds;
     }
 
-    public void setPostIds(Long[] postIds)
-    {
+    public void setPostIds(Long[] postIds) {
         this.postIds = postIds;
     }
 
-    public Long getRoleId()
-    {
+    public Long getRoleId() {
         return roleId;
     }
 
-    public void setRoleId(Long roleId)
-    {
+    public void setRoleId(Long roleId) {
         this.roleId = roleId;
     }
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("userId", getUserId())
-            .append("deptId", getDeptId())
-            .append("userName", getUserName())
-            .append("nickName", getNickName())
-            .append("email", getEmail())
-            .append("phonenumber", getPhonenumber())
-            .append("sex", getSex())
-            .append("avatar", getAvatar())
-            .append("password", getPassword())
-            .append("status", getStatus())
-            .append("delFlag", getDelFlag())
-            .append("loginIp", getLoginIp())
-            .append("loginDate", getLoginDate())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .append("dept", getDept())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("userId", getUserId())
+                .append("deptId", getDeptId())
+                .append("userName", getUserName())
+                .append("nickName", getNickName())
+                .append("email", getEmail())
+                .append("phonenumber", getPhonenumber())
+                .append("sex", getSex())
+                .append("avatar", getAvatar())
+                .append("password", getPassword())
+                .append("status", getStatus())
+                .append("delFlag", getDelFlag())
+                .append("loginIp", getLoginIp())
+                .append("loginDate", getLoginDate())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .append("dept", getDept())
+                .toString();
     }
 }

File diff suppressed because it is too large
+ 178 - 345
lzga-common/lzga-common-core/src/main/java/com/jjt/common/core/utils/poi/ExcelUtil.java


+ 4 - 34
lzga-modules/lzga-system/src/main/java/com/jjt/system/controller/SysUserController.java

@@ -66,8 +66,7 @@ public class SysUserController extends BaseController {
     private ISysPermissionService permissionService;
     @Resource
     private ISysConfigService configService;
-    @Resource
-    private RemoteDocSpaceService remoteDocSpaceService;
+
 
     /**
      * 获取用户列表
@@ -95,8 +94,8 @@ public class SysUserController extends BaseController {
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         List<SysUser> userList = util.importExcel(file.getInputStream());
-        String operName = SecurityUtils.getUsername();
-        String message = userService.importUser(userList, updateSupport, operName);
+        String operateName = SecurityUtils.getUsername();
+        String message = userService.importUser(userList, updateSupport, operateName);
         return success(message);
     }
 
@@ -198,30 +197,8 @@ public class SysUserController extends BaseController {
         }
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        //默认给用户增加普通用户角色
-        List<Long> roleList = new ArrayList<>();
-        if (!Arrays.asList(user.getRoleIds()).contains(2L)) {
-            roleList.add(2L);
-            roleList.addAll(Arrays.asList(user.getRoleIds()));
-            Long[] roles = new Long[roleList.size()];
-            roleList.toArray(roles);
-            user.setRoleIds(roles);
-        }
-        int r = userService.insertUser(user);
-
-        //初始化用户空间
-        DocSpace docSpace = new DocSpace();
-        //个人空间
-        docSpace.setSpaceType("3");
-        docSpace.setOwner(user.getUserId());
-        docSpace.setSpaceName("\"" + user.getNickName() + "\"的个人空间");
-        String defaultCap = configService.selectConfigByKey("user.default.cap");
-        BigDecimal cap = new BigDecimal(defaultCap);
-        docSpace.setSpaceCap(cap);
-        docSpace.setCreateBy(SecurityUtils.getUsername());
-
-        remoteDocSpaceService.initDocSpace(docSpace, SecurityConstants.INNER);
 
+        int r = userService.insertUser(user);
         return toAjax(r);
     }
 
@@ -256,13 +233,6 @@ public class SysUserController extends BaseController {
             return error("当前用户不能删除");
         }
 
-        for (Long uid : userIds) {
-            //删除用户空间
-            DocSpace docSpace = new DocSpace();
-            docSpace.setOwner(uid);
-            docSpace.setSpaceType("3");
-            remoteDocSpaceService.deleteDocSpace(docSpace, SecurityConstants.INNER);
-        }
         return toAjax(userService.deleteUserByIds(userIds));
     }
 

+ 82 - 13
lzga-modules/lzga-system/src/main/java/com/jjt/system/service/impl/SysUserServiceImpl.java

@@ -1,10 +1,19 @@
 package com.jjt.system.service.impl;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
+import javax.annotation.Resource;
 import javax.validation.Validator;
 
+import com.jjt.common.core.constant.Constants;
+import com.jjt.common.core.constant.SecurityConstants;
+import com.jjt.system.api.RemoteDocSpaceService;
+import com.jjt.system.api.domain.DocSpace;
+import com.jjt.system.api.domain.SysDept;
+import com.jjt.system.mapper.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,11 +32,6 @@ import com.jjt.system.api.domain.SysUser;
 import com.jjt.system.domain.SysPost;
 import com.jjt.system.domain.SysUserPost;
 import com.jjt.system.domain.SysUserRole;
-import com.jjt.system.mapper.SysPostMapper;
-import com.jjt.system.mapper.SysRoleMapper;
-import com.jjt.system.mapper.SysUserMapper;
-import com.jjt.system.mapper.SysUserPostMapper;
-import com.jjt.system.mapper.SysUserRoleMapper;
 import com.jjt.system.service.ISysConfigService;
 import com.jjt.system.service.ISysUserService;
 
@@ -40,27 +44,33 @@ import com.jjt.system.service.ISysUserService;
 public class SysUserServiceImpl implements ISysUserService {
     private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
 
-    @Autowired
+    @Resource
     private SysUserMapper userMapper;
 
-    @Autowired
+    @Resource
     private SysRoleMapper roleMapper;
 
-    @Autowired
+    @Resource
     private SysPostMapper postMapper;
 
-    @Autowired
+    @Resource
+    private SysDeptMapper deptMapper;
+
+    @Resource
     private SysUserRoleMapper userRoleMapper;
 
-    @Autowired
+    @Resource
     private SysUserPostMapper userPostMapper;
 
-    @Autowired
+    @Resource
     private ISysConfigService configService;
 
-    @Autowired
+    @Resource
     protected Validator validator;
 
+    @Resource
+    private RemoteDocSpaceService remoteDocSpaceService;
+
     /**
      * 根据条件分页查询用户列表
      *
@@ -235,12 +245,38 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int insertUser(SysUser user) {
+        if (user.getRoleIds() == null || !Arrays.asList(user.getRoleIds()).contains(2L)) {
+            //如果没有普通用户角色,则默认给用户增加普通用户角色
+            List<Long> roleList = new ArrayList<>();
+            roleList.add(2L);
+            if (user.getRoleIds() != null) {
+                roleList.addAll(Arrays.asList(user.getRoleIds()));
+            }
+            Long[] roles = new Long[roleList.size()];
+            roleList.toArray(roles);
+            user.setRoleIds(roles);
+        }
+
         // 新增用户信息
         int rows = userMapper.insertUser(user);
         // 新增用户岗位关联
         insertUserPost(user);
         // 新增用户与角色管理
         insertUserRole(user);
+
+
+        //初始化用户空间
+        DocSpace docSpace = new DocSpace();
+        //个人空间
+        docSpace.setSpaceType("3");
+        docSpace.setOwner(user.getUserId());
+        docSpace.setSpaceName("\"" + user.getNickName() + "\"的个人空间");
+        String defaultCap = configService.selectConfigByKey("user.default.cap");
+        BigDecimal cap = new BigDecimal(defaultCap);
+        docSpace.setSpaceCap(cap);
+        docSpace.setCreateBy(SecurityUtils.getUsername());
+
+        remoteDocSpaceService.initDocSpace(docSpace, SecurityConstants.INNER);
         return rows;
     }
 
@@ -384,7 +420,7 @@ public class SysUserServiceImpl implements ISysUserService {
     public void insertUserRole(Long userId, Long[] roleIds) {
         if (StringUtils.isNotEmpty(roleIds)) {
             // 新增用户与角色管理
-            List<SysUserRole> list = new ArrayList<SysUserRole>();
+            List<SysUserRole> list = new ArrayList<>();
             for (Long roleId : roleIds) {
                 SysUserRole ur = new SysUserRole();
                 ur.setUserId(userId);
@@ -408,6 +444,12 @@ public class SysUserServiceImpl implements ISysUserService {
         userRoleMapper.deleteUserRoleByUserId(userId);
         // 删除用户与岗位表
         userPostMapper.deleteUserPostByUserId(userId);
+        //删除用户空间
+        DocSpace docSpace = new DocSpace();
+        docSpace.setOwner(userId);
+        docSpace.setSpaceType("3");
+        remoteDocSpaceService.deleteDocSpace(docSpace, SecurityConstants.INNER);
+
         return userMapper.deleteUserById(userId);
     }
 
@@ -428,6 +470,15 @@ public class SysUserServiceImpl implements ISysUserService {
         userRoleMapper.deleteUserRole(userIds);
         // 删除用户与岗位关联
         userPostMapper.deleteUserPost(userIds);
+
+        for (Long uid : userIds) {
+            //删除用户空间
+            DocSpace docSpace = new DocSpace();
+            docSpace.setOwner(uid);
+            docSpace.setSpaceType("3");
+            remoteDocSpaceService.deleteDocSpace(docSpace, SecurityConstants.INNER);
+        }
+
         return userMapper.deleteUserByIds(userIds);
     }
 
@@ -457,7 +508,25 @@ public class SysUserServiceImpl implements ISysUserService {
                     BeanValidators.validateWithException(validator, user);
                     user.setPassword(SecurityUtils.encryptPassword(password));
                     user.setCreateBy(operName);
+                    if (StringUtils.isNotEmpty(user.getDeptName())) {
+                        //查询部门相关信息
+                        SysDept dept = new SysDept();
+                        dept.setDeptName(user.getDeptName());
+                        List<SysDept> deptList = deptMapper.selectDeptList(dept);
+                        if (deptList.size() == 0) {
+                            successNum++;
+                            failureMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入失败:" + user.getDeptName() + "不存在,请先添加该部门");
+                            continue;
+                        } else {
+                            user.setDeptId(deptList.get(0).getDeptId());
+                        }
+                    }
+                    if ("Y".equals(user.getIsManager())) {
+                        //如果是部门管理员,则还需要添加部门管理员角色
+                        user.setRoleIds(new Long[]{100L});
+                    }
                     this.insertUser(user);
+
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
                 } else if (isUpdateSupport) {

Some files were not shown because too many files changed in this diff