浏览代码

添加用户树接口

wukai 1 年之前
父节点
当前提交
5f7486ba68

+ 58 - 0
doc-admin/src/main/java/com/doc/web/controller/system/SysUserController.java

@@ -4,6 +4,7 @@ import com.doc.biz.service.IDocSpaceService;
 import com.doc.common.annotation.Log;
 import com.doc.common.core.controller.BaseController;
 import com.doc.common.core.domain.AjaxResult;
+import com.doc.common.core.domain.TreeSelect;
 import com.doc.common.core.domain.entity.SysDept;
 import com.doc.common.core.domain.entity.SysRole;
 import com.doc.common.core.domain.entity.SysUser;
@@ -16,6 +17,9 @@ import com.doc.system.service.ISysDeptService;
 import com.doc.system.service.ISysPostService;
 import com.doc.system.service.ISysRoleService;
 import com.doc.system.service.ISysUserService;
+import com.doc.web.vo.UserTreeVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -24,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -34,6 +39,7 @@ import java.util.stream.Collectors;
  */
 @RestController
 @RequestMapping("/system/user")
+@Api(tags = "系统用户")
 public class SysUserController extends BaseController {
     @Resource
     private ISysUserService userService;
@@ -60,6 +66,58 @@ public class SysUserController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 获取用户树
+     */
+    @ApiOperation("获取用户树")
+    @GetMapping("/tree")
+    public UserTreeVO tree() {
+        List<SysDept> deptList = deptService.selectDeptList(new SysDept());
+        List<SysDept> list = deptService.buildDeptTree(deptList);
+        SysDept tree = list.get(0);
+        UserTreeVO vo = getChildren(tree);
+        return vo;
+
+    }
+
+    /**
+     * 获取子节点
+     *
+     * @param dept 部门
+     * @return
+     */
+    private UserTreeVO getChildren(SysDept dept) {
+        UserTreeVO vo = new UserTreeVO();
+        vo.setId(dept.getDeptId());
+        vo.setLabel(dept.getDeptName());
+        vo.setDisabled(true);
+        List<SysDept> childrenList = dept.getChildren();
+        List<UserTreeVO> children = new ArrayList<>();
+        for (SysDept d : childrenList) {
+            UserTreeVO childVO = new UserTreeVO();
+            childVO.setId(d.getDeptId());
+            childVO.setLabel(d.getDeptName());
+            childVO.setDisabled(true);
+            children.add(childVO);
+            List<UserTreeVO> cc = new ArrayList<>();
+            for (SysDept dd : d.getChildren()) {
+                cc.add(getChildren(dd));
+            }
+            childVO.setChildren(cc);
+        }
+        List<SysUser> userList = userService.selectUserListByDeptId(dept.getDeptId());
+        for (SysUser u : userList) {
+            UserTreeVO childVO = new UserTreeVO();
+            childVO.setId(u.getUserId());
+            childVO.setLabel(u.getNickName());
+            childVO.setDisabled(false);
+            children.add(childVO);
+        }
+
+        vo.setChildren(children);
+        return vo;
+    }
+
     @Log(title = "用户管理", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @PostMapping("/export")

+ 1 - 1
doc-admin/src/main/java/com/doc/web/controller/tool/TestController.java

@@ -27,7 +27,7 @@ import io.swagger.annotations.ApiOperation;
  * 
  * @author ruoyi
  */
-@Api(tags="用户信息管理")
+//@Api(tags="用户信息管理")
 @RestController
 @RequestMapping("/test/user")
 public class TestController extends BaseController

+ 19 - 0
doc-admin/src/main/java/com/doc/web/vo/UserTreeVO.java

@@ -0,0 +1,19 @@
+package com.doc.web.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 用户树
+ *
+ * @author wukai
+ * @date 2023/8/30 17:00
+ */
+@Data
+public class UserTreeVO {
+    private Long id;
+    private String label;
+    private Boolean disabled;
+    private List<UserTreeVO> children;
+}

+ 2 - 2
doc-admin/src/main/resources/application-dev.yml

@@ -48,9 +48,9 @@ spring:
     druid:
       # 主库数据源
       master:
-        url: jdbc:mysql://192.168.188.88:3306/doc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://8.142.173.95:3306/doc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: 123456
+        password: 2096094ba37529f2
       # 从库数据源
       slave:
         # 从数据源开关/默认关闭

+ 7 - 3
doc-admin/src/main/resources/application-test.yml

@@ -5,9 +5,13 @@ server:
 # 项目相关配置
 ruoyi:
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  profile: D:/ruoyi/uploadPath
+  profile: /opt/doc/uploadPath
 # Spring配置
 spring:
+  #es配置
+  elasticsearch:
+    rest:
+      uris: http://127.0.0.1:19200
   #mongodb配置
   data:
     mongodb:
@@ -24,7 +28,7 @@ spring:
     # 数据库索引
     database: 0
     # 密码
-    password: redis123
+    password:
     # 连接超时时间
     timeout: 10s
     lettuce:
@@ -46,7 +50,7 @@ spring:
       master:
         url: jdbc:mysql://127.0.0.1:3306/doc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: 123456
+        password: 2096094ba37529f2
       # 从库数据源
       slave:
         # 从数据源开关/默认关闭

+ 0 - 4
doc-biz/src/main/java/com/doc/biz/controller/ElasticSearchController.java

@@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import javax.print.Doc;
 import java.util.List;
 
 /**
@@ -32,8 +31,6 @@ import java.util.List;
 public class ElasticSearchController {
 
     @Resource
-    private ElasticsearchRestTemplate elasticsearchRestTemplate;
-    @Resource
     private IEsDocInfoService esDocInfoService;
     @Resource
     private IDocInfoService infoService;
@@ -70,7 +67,6 @@ public class ElasticSearchController {
                     docInfo.setDocId(esDocInfo.getId());
                     docInfo = infoService.selectDocInfoByDocId(esDocInfo.getId());
                     esDocInfo.setDocInfo(docInfo);
-//            re.getContent().
                 }
                 return JSON.toJSONString(all);
             } catch (Exception e) {

+ 4 - 0
doc-common/pom.xml

@@ -160,6 +160,10 @@
             <artifactId>poi-scratchpad</artifactId>
             <version>5.2.2</version>
         </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 2 - 8
doc-common/src/main/java/com/doc/common/config/EsConfig.java

@@ -1,19 +1,13 @@
 package com.doc.common.config;
 
+import lombok.Data;
 import org.springframework.stereotype.Component;
 
 /**
  * @author wukai
  */
 @Component(value = "esConfig")
+@Data
 public class EsConfig {
     private String indexName;
-
-    public void setIndexName(String indexName) {
-        this.indexName = indexName;
-    }
-
-    public String getIndexName() {
-        return indexName;
-    }
 }

+ 4 - 0
doc-common/src/main/java/com/doc/common/core/domain/BaseEntity.java

@@ -4,6 +4,8 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -19,6 +21,7 @@ public class BaseEntity implements Serializable
 
     /** 搜索值 */
     @JsonIgnore
+    @TableField(exist = false)
     private String searchValue;
 
     /** 创建者 */
@@ -40,6 +43,7 @@ public class BaseEntity implements Serializable
 
     /** 请求参数 */
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    @TableField(exist = false)
     private Map<String, Object> params;
 
     public String getSearchValue()

+ 126 - 124
doc-common/src/main/java/com/doc/common/core/domain/entity/SysUser.java

@@ -3,6 +3,8 @@ package com.doc.common.core.domain.entity;
 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.doc.common.annotation.Excel;
@@ -14,311 +16,311 @@ import com.doc.common.xss.Xss;
 
 /**
  * 用户对象 sys_user
- * 
+ *
  * @author ruoyi
  */
-public class SysUser extends BaseEntity
-{
+public class SysUser extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 用户ID */
+    /**
+     * 用户ID
+     */
     @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
     private Long userId;
 
-    /** 部门ID */
+    /**
+     * 部门ID
+     */
     @Excel(name = "部门编号", type = Type.IMPORT)
     private Long deptId;
 
-    /** 用户账号 */
+    /**
+     * 用户账号
+     */
     @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停用) */
+    /**
+     * 帐号状态(0正常 1停用)
+     */
     @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
     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)
     })
+    @TableField(exist = false)
     private SysDept dept;
 
-    /** 角色对象 */
+    /**
+     * 角色对象
+     */
+    @TableField(exist = false)
     private List<SysRole> roles;
 
-    /** 角色组 */
+    /**
+     * 角色组
+     */
+    @TableField(exist = false)
     private Long[] roleIds;
 
-    /** 岗位组 */
+    /**
+     * 岗位组
+     */
+    @TableField(exist = false)
     private Long[] postIds;
 
-    /** 角色ID */
+    /**
+     * 角色ID
+     */
+    @TableField(exist = false)
     private Long roleId;
 
-    public SysUser()
-    {
+    public SysUser() {
 
     }
 
-    public SysUser(Long userId)
-    {
+    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();
     }
 }

+ 17 - 16
doc-system/src/main/java/com/doc/system/mapper/SysUserMapper.java

@@ -1,19 +1,20 @@
 package com.doc.system.mapper;
 
 import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import com.doc.common.core.domain.entity.SysUser;
 
 /**
  * 用户表 数据层
- * 
+ *
  * @author ruoyi
  */
-public interface SysUserMapper
-{
+public interface SysUserMapper extends BaseMapper<SysUser> {
     /**
      * 根据条件分页查询用户列表
-     * 
+     *
      * @param sysUser 用户信息
      * @return 用户信息集合信息
      */
@@ -21,7 +22,7 @@ public interface SysUserMapper
 
     /**
      * 根据条件分页查询已配用户角色列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -29,7 +30,7 @@ public interface SysUserMapper
 
     /**
      * 根据条件分页查询未分配用户角色列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -37,7 +38,7 @@ public interface SysUserMapper
 
     /**
      * 通过用户名查询用户
-     * 
+     *
      * @param userName 用户名
      * @return 用户对象信息
      */
@@ -45,7 +46,7 @@ public interface SysUserMapper
 
     /**
      * 通过用户ID查询用户
-     * 
+     *
      * @param userId 用户ID
      * @return 用户对象信息
      */
@@ -53,7 +54,7 @@ public interface SysUserMapper
 
     /**
      * 新增用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -61,7 +62,7 @@ public interface SysUserMapper
 
     /**
      * 修改用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -69,16 +70,16 @@ public interface SysUserMapper
 
     /**
      * 修改用户头像
-     * 
+     *
      * @param userName 用户名
-     * @param avatar 头像地址
+     * @param avatar   头像地址
      * @return 结果
      */
     public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar);
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param userName 用户名
      * @param password 密码
      * @return 结果
@@ -87,7 +88,7 @@ public interface SysUserMapper
 
     /**
      * 通过用户ID删除用户
-     * 
+     *
      * @param userId 用户ID
      * @return 结果
      */
@@ -95,7 +96,7 @@ public interface SysUserMapper
 
     /**
      * 批量删除用户信息
-     * 
+     *
      * @param userIds 需要删除的用户ID
      * @return 结果
      */
@@ -103,7 +104,7 @@ public interface SysUserMapper
 
     /**
      * 校验用户名称是否唯一
-     * 
+     *
      * @param userName 用户名称
      * @return 结果
      */

+ 7 - 0
doc-system/src/main/java/com/doc/system/service/ISysUserService.java

@@ -211,4 +211,11 @@ public interface ISysUserService {
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    /**
+     * 根据部门ID查询用户列表
+     * @param deptId 部门ID
+     * @return
+     */
+    List<SysUser> selectUserListByDeptId(Long deptId);
 }

+ 14 - 0
doc-system/src/main/java/com/doc/system/service/impl/SysUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.doc.system.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.doc.common.annotation.DataScope;
 import com.doc.common.constant.CacheConstants;
 import com.doc.common.constant.UserConstants;
@@ -517,4 +518,17 @@ public class SysUserServiceImpl implements ISysUserService {
         }
         return successMsg.toString();
     }
+
+    /**
+     * 根据部门ID查询用户列表
+     *
+     * @param deptId 部门ID
+     * @return
+     */
+    @Override
+    public List<SysUser> selectUserListByDeptId(Long deptId) {
+        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("dept_id", deptId);
+        return userMapper.selectList(queryWrapper);
+    }
 }