Przeglądaj źródła

迁移 system代码

guoenzhou 2 lat temu
rodzic
commit
5097c85def
100 zmienionych plików z 9796 dodań i 0 usunięć
  1. 1 0
      base-modules/pom.xml
  2. 19 0
      base-modules/service-system/pom.xml
  3. 27 0
      base-modules/service-system/service-system-api/pom.xml
  4. 29 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/RemoteFileService.java
  5. 37 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/RemoteLogService.java
  6. 39 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/RemoteUserService.java
  7. 203 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysDeptVO.java
  8. 167 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysDictDataVO.java
  9. 90 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysDictTypeVO.java
  10. 50 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysFileVO.java
  11. 95 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysLogininforVO.java
  12. 225 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysOperLogVO.java
  13. 221 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysRoleVO.java
  14. 321 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysUserVO.java
  15. 35 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/factory/RemoteFileFallbackFactory.java
  16. 42 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/factory/RemoteLogFallbackFactory.java
  17. 42 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/factory/RemoteUserFallbackFactory.java
  18. 152 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/model/LoginUser.java
  19. 64 0
      base-modules/service-system/service-system-biz/pom.xml
  20. 39 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/RuoYiSystemApplication.java
  21. 108 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/MybatisGeneratorUtils.java
  22. 38 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/api/SysLogControllerApi.java
  23. 29 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/api/SysUserControllerApi.java
  24. 79 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/AuthorityConfigController.java
  25. 80 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/BaseController.java
  26. 105 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysConfigController.java
  27. 150 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysDeptController.java
  28. 94 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysDictDataController.java
  29. 105 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysDictTypeController.java
  30. 56 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysLogininforController.java
  31. 170 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysMenuController.java
  32. 77 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysNoticeController.java
  33. 54 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysOperlogController.java
  34. 86 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysPlatformController.java
  35. 106 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysPostController.java
  36. 183 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysRoleController.java
  37. 131 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysTenantConfigController.java
  38. 163 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysUserController.java
  39. 84 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TenantConfigController.java
  40. 16 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TestController.java
  41. 117 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TokenController.java
  42. 156 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/UserConfigController.java
  43. 68 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/page/PageDomain.java
  44. 80 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/page/TableDataInfo.java
  45. 45 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/page/TableSupport.java
  46. 107 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysConfig.java
  47. 225 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysDept.java
  48. 170 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysDictData.java
  49. 104 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysDictType.java
  50. 125 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysLogininfor.java
  51. 250 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysMenu.java
  52. 103 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysNotice.java
  53. 271 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysOperLog.java
  54. 76 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysPlatform.java
  55. 35 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysPlatformMenu.java
  56. 134 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysPost.java
  57. 234 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysRole.java
  58. 46 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysRoleDept.java
  59. 46 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysRoleMenu.java
  60. 118 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysTenant.java
  61. 139 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysTenantConfig.java
  62. 37 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysTenantMenu.java
  63. 384 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysUser.java
  64. 113 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysUserOnline.java
  65. 46 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysUserPost.java
  66. 46 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysUserRole.java
  67. 81 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/constants/UserConstants.java
  68. 73 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysConfigMapper.java
  69. 125 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDeptMapper.java
  70. 101 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDictDataMapper.java
  71. 89 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDictTypeMapper.java
  72. 48 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysLogininforMapper.java
  73. 128 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysMenuMapper.java
  74. 65 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysNoticeMapper.java
  75. 54 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysOperLogMapper.java
  76. 37 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysPlatformMapper.java
  77. 31 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysPlatformMenuMapper.java
  78. 104 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysPostMapper.java
  79. 49 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysRoleDeptMapper.java
  80. 112 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysRoleMapper.java
  81. 49 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysRoleMenuMapper.java
  82. 24 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysTenantConfigMapper.java
  83. 38 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysTenantMapper.java
  84. 16 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysTenantMenuMapper.java
  85. 141 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysUserMapper.java
  86. 49 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysUserPostMapper.java
  87. 67 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysUserRoleMapper.java
  88. 94 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysConfigService.java
  89. 112 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDeptService.java
  90. 64 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDictDataService.java
  91. 103 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDictTypeService.java
  92. 43 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysLogininforService.java
  93. 142 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysMenuService.java
  94. 63 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysNoticeService.java
  95. 51 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysOperLogService.java
  96. 22 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysPermissionService.java
  97. 103 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysPostService.java
  98. 169 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysRoleService.java
  99. 49 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysUserOnlineService.java
  100. 213 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysUserService.java

+ 1 - 0
base-modules/pom.xml

@@ -12,6 +12,7 @@
         <module>service-gen</module>
         <module>service-job</module>
         <module>service-file</module>
+        <module>service-system</module>
     </modules>
 
     <artifactId>base-modules</artifactId>

+ 19 - 0
base-modules/service-system/pom.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>usky-modules</artifactId>
+        <groupId>com.usky</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>service-system</artifactId>
+
+    <packaging>pom</packaging>
+    <version>0.0.1</version>
+
+    <modules>
+        <module>service-system-biz</module>
+        <module>service-system-api</module>
+    </modules>
+</project>

+ 27 - 0
base-modules/service-system/service-system-api/pom.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>service-system</artifactId>
+        <groupId>com.usky</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>service-system-api</artifactId>
+    <!-- SpringCloud Openfeign -->
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>usky-common-core</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+    </build>
+
+</project>

+ 29 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/RemoteFileService.java

@@ -0,0 +1,29 @@
+//package com.usky.system;
+//
+//import com.baomidou.mybatisplus.extension.api.R;
+//import com.usky.common.core.bean.ApiResult;
+//import com.usky.system.domain.SysFileVO;
+//import com.usky.system.factory.RemoteFileFallbackFactory;
+//import org.springframework.cloud.openfeign.FeignClient;
+//import org.springframework.http.MediaType;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestPart;
+//import org.springframework.web.multipart.MultipartFile;
+//
+///**
+// * 文件服务
+// *
+// * @author ruoyi
+// */
+//@FeignClient(contextId = "remoteFileService", value = ServiceNameConstants.FILE_SERVICE, fallbackFactory = RemoteFileFallbackFactory.class)
+//public interface RemoteFileService
+//{
+//    /**
+//     * 上传文件
+//     *
+//     * @param file 文件信息
+//     * @return 结果
+//     */
+//    @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+//    public ApiResult<SysFileVO> upload(@RequestPart(value = "file") MultipartFile file);
+//}

+ 37 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/RemoteLogService.java

@@ -0,0 +1,37 @@
+package com.usky.system;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.domain.SysLogininforVO;
+import com.usky.system.domain.SysOperLogVO;
+import com.usky.system.factory.RemoteLogFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 日志服务
+ *
+ * @author ruoyi
+ */
+@FeignClient(contextId = "remoteLogService", value = "usky-system", fallbackFactory = RemoteLogFallbackFactory.class)
+public interface RemoteLogService
+{
+    /**
+     * 保存系统日志
+     *
+     * @param sysOperLog 日志实体
+     * @return 结果
+     */
+    @PostMapping("/operlog")
+    public ApiResult<Boolean> saveLog(@RequestBody SysOperLogVO sysOperLog);
+
+    /**
+     * 保存访问记录
+     *
+     * @param sysLogininfor 访问实体
+     * @return 结果
+     */
+    @PostMapping("/logininfor")
+    public ApiResult<Boolean> saveLogininfor(@RequestBody SysLogininforVO sysLogininfor);
+}

+ 39 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/RemoteUserService.java

@@ -0,0 +1,39 @@
+package com.usky.system;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.domain.SysUserVO;
+import com.usky.system.factory.RemoteUserFallbackFactory;
+import com.usky.system.model.LoginUser;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 用户服务
+ * 
+ * @author ruoyi
+ */
+@FeignClient(contextId = "remoteUserService", value = "usky-system", fallbackFactory = RemoteUserFallbackFactory.class)
+public interface RemoteUserService
+{
+    /**
+     * 通过用户名查询用户信息
+     *
+     * @param username 用户名
+     * @return 结果
+     */
+    @GetMapping("/user/info/{username}")
+    public ApiResult<LoginUser> getUserInfo(@PathVariable("username") String username);
+
+    /**
+     * 注册用户信息
+     *
+     * @param sysUser 用户信息
+     * @return 结果
+     */
+    @PostMapping("/user/register")
+    public ApiResult<Boolean> registerUserInfo(@RequestBody SysUserVO sysUser);
+}

+ 203 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysDeptVO.java

@@ -0,0 +1,203 @@
+package com.usky.system.domain;
+
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 部门表 sys_dept
+ * 
+ * @author ruoyi
+ */
+public class SysDeptVO extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 部门ID */
+    private Long deptId;
+
+    /** 父部门ID */
+    private Long parentId;
+
+    /** 祖级列表 */
+    private String ancestors;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /** 显示顺序 */
+    private String orderNum;
+
+    /** 负责人 */
+    private String leader;
+
+    /** 联系电话 */
+    private String phone;
+
+    /** 邮箱 */
+    private String email;
+
+    /** 部门状态:0正常,1停用 */
+    private String status;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 父部门名称 */
+    private String parentName;
+    
+    /** 子部门 */
+    private List<SysDeptVO> children = new ArrayList<SysDeptVO>();
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getParentId()
+    {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId)
+    {
+        this.parentId = parentId;
+    }
+
+    public String getAncestors()
+    {
+        return ancestors;
+    }
+
+    public void setAncestors(String ancestors)
+    {
+        this.ancestors = ancestors;
+    }
+
+    @NotBlank(message = "部门名称不能为空")
+    @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
+    public String getDeptName()
+    {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName)
+    {
+        this.deptName = deptName;
+    }
+
+    @NotBlank(message = "显示顺序不能为空")
+    public String getOrderNum()
+    {
+        return orderNum;
+    }
+
+    public void setOrderNum(String orderNum)
+    {
+        this.orderNum = orderNum;
+    }
+
+    public String getLeader()
+    {
+        return leader;
+    }
+
+    public void setLeader(String leader)
+    {
+        this.leader = leader;
+    }
+
+    @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
+    public String getPhone()
+    {
+        return phone;
+    }
+
+    public void setPhone(String phone)
+    {
+        this.phone = phone;
+    }
+
+    @Email(message = "邮箱格式不正确")
+    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public void setEmail(String email)
+    {
+        this.email = email;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getParentName()
+    {
+        return parentName;
+    }
+
+    public void setParentName(String parentName)
+    {
+        this.parentName = parentName;
+    }
+
+    public List<SysDeptVO> getChildren()
+    {
+        return children;
+    }
+
+    public void setChildren(List<SysDeptVO> children)
+    {
+        this.children = children;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("deptId", getDeptId())
+            .append("parentId", getParentId())
+            .append("ancestors", getAncestors())
+            .append("deptName", getDeptName())
+            .append("orderNum", getOrderNum())
+            .append("leader", getLeader())
+            .append("phone", getPhone())
+            .append("email", getEmail())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 167 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysDictDataVO.java

@@ -0,0 +1,167 @@
+package com.usky.system.domain;
+
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+/**
+ * 字典数据表 sys_dict_data
+ * 
+ * @author ruoyi
+ */
+public class SysDictDataVO extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 字典编码 */
+    private Long dictCode;
+
+    /** 字典排序 */
+    private Long dictSort;
+
+    /** 字典标签 */
+    private String dictLabel;
+
+    /** 字典键值 */
+    private String dictValue;
+
+    /** 字典类型 */
+    private String dictType;
+
+    /** 样式属性(其他样式扩展) */
+    private String cssClass;
+
+    /** 表格字典样式 */
+    private String listClass;
+
+    /** 是否默认(Y是 N否) */
+    private String isDefault;
+
+    /** 状态(0正常 1停用) */
+    private String status;
+
+    public Long getDictCode()
+    {
+        return dictCode;
+    }
+
+    public void setDictCode(Long dictCode)
+    {
+        this.dictCode = dictCode;
+    }
+
+    public Long getDictSort()
+    {
+        return dictSort;
+    }
+
+    public void setDictSort(Long dictSort)
+    {
+        this.dictSort = dictSort;
+    }
+
+    @NotBlank(message = "字典标签不能为空")
+    @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
+    public String getDictLabel()
+    {
+        return dictLabel;
+    }
+
+    public void setDictLabel(String dictLabel)
+    {
+        this.dictLabel = dictLabel;
+    }
+
+    @NotBlank(message = "字典键值不能为空")
+    @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
+    public String getDictValue()
+    {
+        return dictValue;
+    }
+
+    public void setDictValue(String dictValue)
+    {
+        this.dictValue = dictValue;
+    }
+
+    @NotBlank(message = "字典类型不能为空")
+    @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
+    public String getDictType()
+    {
+        return dictType;
+    }
+
+    public void setDictType(String dictType)
+    {
+        this.dictType = dictType;
+    }
+
+    @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
+    public String getCssClass()
+    {
+        return cssClass;
+    }
+
+    public void setCssClass(String cssClass)
+    {
+        this.cssClass = cssClass;
+    }
+
+    public String getListClass()
+    {
+        return listClass;
+    }
+
+    public void setListClass(String listClass)
+    {
+        this.listClass = listClass;
+    }
+
+    public boolean getDefault()
+    {
+        return true;
+    }
+
+    public String getIsDefault()
+    {
+        return isDefault;
+    }
+
+    public void setIsDefault(String isDefault)
+    {
+        this.isDefault = isDefault;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+    
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("dictCode", getDictCode())
+            .append("dictSort", getDictSort())
+            .append("dictLabel", getDictLabel())
+            .append("dictValue", getDictValue())
+            .append("dictType", getDictType())
+            .append("cssClass", getCssClass())
+            .append("listClass", getListClass())
+            .append("isDefault", getIsDefault())
+            .append("status", getStatus())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 90 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysDictTypeVO.java

@@ -0,0 +1,90 @@
+package com.usky.system.domain;
+
+
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+/**
+ * 字典类型表 sys_dict_type
+ * 
+ * @author ruoyi
+ */
+public class SysDictTypeVO extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 字典主键 */
+    private Long dictId;
+
+    /** 字典名称 */
+    private String dictName;
+
+    /** 字典类型 */
+    private String dictType;
+
+    /** 状态(0正常 1停用) */
+    private String status;
+
+    public Long getDictId()
+    {
+        return dictId;
+    }
+
+    public void setDictId(Long dictId)
+    {
+        this.dictId = dictId;
+    }
+
+    @NotBlank(message = "字典名称不能为空")
+    @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
+    public String getDictName()
+    {
+        return dictName;
+    }
+
+    public void setDictName(String dictName)
+    {
+        this.dictName = dictName;
+    }
+
+    @NotBlank(message = "字典类型不能为空")
+    @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
+    public String getDictType()
+    {
+        return dictType;
+    }
+
+    public void setDictType(String dictType)
+    {
+        this.dictType = dictType;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+    
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("dictId", getDictId())
+            .append("dictName", getDictName())
+            .append("dictType", getDictType())
+            .append("status", getStatus())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 50 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysFileVO.java

@@ -0,0 +1,50 @@
+package com.usky.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 文件信息
+ * 
+ * @author ruoyi
+ */
+public class SysFileVO
+{
+    /**
+     * 文件名称
+     */
+    private String name;
+
+    /**
+     * 文件地址
+     */
+    private String url;
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public String getUrl()
+    {
+        return url;
+    }
+
+    public void setUrl(String url)
+    {
+        this.url = url;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("name", getName())
+            .append("url", getUrl())
+            .toString();
+    }
+}

+ 95 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysLogininforVO.java

@@ -0,0 +1,95 @@
+package com.usky.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.usky.common.core.bean.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 系统访问记录表 sys_logininfor
+ * 
+ * @author ruoyi
+ */
+public class SysLogininforVO extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private Long infoId;
+
+    /** 用户账号 */
+    private String userName;
+
+    /** 状态 0成功 1失败 */
+    private String status;
+
+    /** 地址 */
+    private String ipaddr;
+
+    /** 描述 */
+    private String msg;
+
+    /** 访问时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date accessTime;
+
+    public Long getInfoId()
+    {
+        return infoId;
+    }
+
+    public void setInfoId(Long infoId)
+    {
+        this.infoId = infoId;
+    }
+
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getIpaddr()
+    {
+        return ipaddr;
+    }
+
+    public void setIpaddr(String ipaddr)
+    {
+        this.ipaddr = ipaddr;
+    }
+
+    public String getMsg()
+    {
+        return msg;
+    }
+
+    public void setMsg(String msg)
+    {
+        this.msg = msg;
+    }
+
+    public Date getAccessTime()
+    {
+        return accessTime;
+    }
+
+    public void setAccessTime(Date accessTime)
+    {
+        this.accessTime = accessTime;
+    }
+}

+ 225 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysOperLogVO.java

@@ -0,0 +1,225 @@
+package com.usky.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.usky.common.core.bean.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 操作日志记录表 oper_log
+ * 
+ * @author ruoyi
+ */
+public class SysOperLogVO extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 日志主键 */
+    private Long operId;
+
+    /** 操作模块 */
+    private String title;
+
+    /** 业务类型(0其它 1新增 2修改 3删除) */
+    private Integer businessType;
+
+    /** 业务类型数组 */
+    private Integer[] businessTypes;
+
+    /** 请求方法 */
+    private String method;
+
+    /** 请求方式 */
+    private String requestMethod;
+
+    /** 操作类别(0其它 1后台用户 2手机端用户) */
+    private Integer operatorType;
+
+    /** 操作人员 */
+    private String operName;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /** 请求url */
+    private String operUrl;
+
+    /** 操作地址 */
+    private String operIp;
+
+    /** 请求参数 */
+    private String operParam;
+
+    /** 返回参数 */
+    private String jsonResult;
+
+    /** 操作状态(0正常 1异常) */
+    private Integer status;
+
+    /** 错误消息 */
+    private String errorMsg;
+
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date operTime;
+
+    public Long getOperId()
+    {
+        return operId;
+    }
+
+    public void setOperId(Long operId)
+    {
+        this.operId = operId;
+    }
+
+    public String getTitle()
+    {
+        return title;
+    }
+
+    public void setTitle(String title)
+    {
+        this.title = title;
+    }
+
+    public Integer getBusinessType()
+    {
+        return businessType;
+    }
+
+    public void setBusinessType(Integer businessType)
+    {
+        this.businessType = businessType;
+    }
+
+    public Integer[] getBusinessTypes()
+    {
+        return businessTypes;
+    }
+
+    public void setBusinessTypes(Integer[] businessTypes)
+    {
+        this.businessTypes = businessTypes;
+    }
+
+    public String getMethod()
+    {
+        return method;
+    }
+
+    public void setMethod(String method)
+    {
+        this.method = method;
+    }
+
+    public String getRequestMethod()
+    {
+        return requestMethod;
+    }
+
+    public void setRequestMethod(String requestMethod)
+    {
+        this.requestMethod = requestMethod;
+    }
+
+    public Integer getOperatorType()
+    {
+        return operatorType;
+    }
+
+    public void setOperatorType(Integer operatorType)
+    {
+        this.operatorType = operatorType;
+    }
+
+    public String getOperName()
+    {
+        return operName;
+    }
+
+    public void setOperName(String operName)
+    {
+        this.operName = operName;
+    }
+
+    public String getDeptName()
+    {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName)
+    {
+        this.deptName = deptName;
+    }
+
+    public String getOperUrl()
+    {
+        return operUrl;
+    }
+
+    public void setOperUrl(String operUrl)
+    {
+        this.operUrl = operUrl;
+    }
+
+    public String getOperIp()
+    {
+        return operIp;
+    }
+
+    public void setOperIp(String operIp)
+    {
+        this.operIp = operIp;
+    }
+
+    public String getOperParam()
+    {
+        return operParam;
+    }
+
+    public void setOperParam(String operParam)
+    {
+        this.operParam = operParam;
+    }
+
+    public String getJsonResult()
+    {
+        return jsonResult;
+    }
+
+    public void setJsonResult(String jsonResult)
+    {
+        this.jsonResult = jsonResult;
+    }
+
+    public Integer getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(Integer status)
+    {
+        this.status = status;
+    }
+
+    public String getErrorMsg()
+    {
+        return errorMsg;
+    }
+
+    public void setErrorMsg(String errorMsg)
+    {
+        this.errorMsg = errorMsg;
+    }
+
+    public Date getOperTime()
+    {
+        return operTime;
+    }
+
+    public void setOperTime(Date operTime)
+    {
+        this.operTime = operTime;
+    }
+}

+ 221 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysRoleVO.java

@@ -0,0 +1,221 @@
+package com.usky.system.domain;
+
+
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+
+/**
+ * 角色表 sys_role
+ * 
+ * @author ruoyi
+ */
+public class SysRoleVO extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 角色ID */
+    private Long roleId;
+
+    /** 角色名称 */
+    private String roleName;
+
+    /** 角色权限 */
+    private String roleKey;
+
+    /** 角色排序 */
+    private String roleSort;
+
+    /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */
+    private String dataScope;
+
+    /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */
+    private boolean menuCheckStrictly;
+
+    /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */
+    private boolean deptCheckStrictly;
+
+    /** 角色状态(0正常 1停用) */
+    private String status;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 用户是否存在此角色标识 默认不存在 */
+    private boolean flag = false;
+
+    /** 菜单组 */
+    private Long[] menuIds;
+
+    /** 部门组(数据权限) */
+    private Long[] deptIds;
+
+    public SysRoleVO()
+    {
+
+    }
+
+    public SysRoleVO(Long roleId)
+    {
+        this.roleId = roleId;
+    }
+
+    public Long getRoleId()
+    {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId)
+    {
+        this.roleId = roleId;
+    }
+
+    public boolean isAdmin()
+    {
+        return isAdmin(this.roleId);
+    }
+
+    public static boolean isAdmin(Long roleId)
+    {
+        return roleId != null && 1L == roleId;
+    }
+
+    @NotBlank(message = "角色名称不能为空")
+    @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
+    public String getRoleName()
+    {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName)
+    {
+        this.roleName = roleName;
+    }
+
+    @NotBlank(message = "权限字符不能为空")
+    @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
+    public String getRoleKey()
+    {
+        return roleKey;
+    }
+
+    public void setRoleKey(String roleKey)
+    {
+        this.roleKey = roleKey;
+    }
+
+    @NotBlank(message = "显示顺序不能为空")
+    public String getRoleSort()
+    {
+        return roleSort;
+    }
+
+    public void setRoleSort(String roleSort)
+    {
+        this.roleSort = roleSort;
+    }
+
+    public String getDataScope()
+    {
+        return dataScope;
+    }
+
+    public void setDataScope(String dataScope)
+    {
+        this.dataScope = dataScope;
+    }
+
+    public boolean isMenuCheckStrictly()
+    {
+        return menuCheckStrictly;
+    }
+
+    public void setMenuCheckStrictly(boolean menuCheckStrictly)
+    {
+        this.menuCheckStrictly = menuCheckStrictly;
+    }
+
+    public boolean isDeptCheckStrictly()
+    {
+        return deptCheckStrictly;
+    }
+
+    public void setDeptCheckStrictly(boolean deptCheckStrictly)
+    {
+        this.deptCheckStrictly = deptCheckStrictly;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public boolean isFlag()
+    {
+        return flag;
+    }
+
+    public void setFlag(boolean flag)
+    {
+        this.flag = flag;
+    }
+
+    public Long[] getMenuIds()
+    {
+        return menuIds;
+    }
+
+    public void setMenuIds(Long[] menuIds)
+    {
+        this.menuIds = menuIds;
+    }
+
+    public Long[] getDeptIds()
+    {
+        return deptIds;
+    }
+
+    public void setDeptIds(Long[] deptIds)
+    {
+        this.deptIds = deptIds;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("roleId", getRoleId())
+            .append("roleName", getRoleName())
+            .append("roleKey", getRoleKey())
+            .append("roleSort", getRoleSort())
+            .append("dataScope", getDataScope())
+            .append("menuCheckStrictly", isMenuCheckStrictly())
+            .append("deptCheckStrictly", isDeptCheckStrictly())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 321 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysUserVO.java

@@ -0,0 +1,321 @@
+package com.usky.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 用户对象 sys_user
+ * 
+ * @author ruoyi
+ */
+public class SysUserVO extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 用户ID */
+    private Long userId;
+
+    /** 部门ID */
+    private Long deptId;
+
+    /** 用户账号 */
+    private String userName;
+
+    /** 用户昵称 */
+    private String nickName;
+
+    /** 用户邮箱 */
+    private String email;
+
+    /** 手机号码 */
+    private String phonenumber;
+
+    /** 用户性别 */
+    private String sex;
+
+    /** 用户头像 */
+    private String avatar;
+
+    /** 密码 */
+    private String password;
+
+    /** 帐号状态(0正常 1停用) */
+    private String status;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 最后登录IP */
+    private String loginIp;
+
+    /** 最后登录时间 */
+    private Date loginDate;
+
+    /** 部门对象 */
+    private SysDeptVO dept;
+
+    /** 角色对象 */
+    private List<SysRoleVO> roles;
+
+    /** 角色组 */
+    private Long[] roleIds;
+
+    /** 岗位组 */
+    private Long[] postIds;
+
+    /** 角色ID */
+    private Long roleId;
+    /**
+     * 租户id
+     */
+    private Integer tenantId;
+
+    public Integer getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId) {
+        this.tenantId = tenantId;
+    }
+
+
+
+    public SysUserVO()
+    {
+
+    }
+
+    public SysUserVO(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId()
+    {
+        return userId;
+    }
+
+    public void setUserId(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public boolean isAdmin()
+    {
+        return isAdmin(this.userId);
+    }
+
+    public static boolean isAdmin(Long userId)
+    {
+        return userId != null && 1L == userId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
+    public String getNickName()
+    {
+        return nickName;
+    }
+
+    public void setNickName(String nickName)
+    {
+        this.nickName = nickName;
+    }
+
+    @NotBlank(message = "用户账号不能为空")
+    @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    @Email(message = "邮箱格式不正确")
+    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public void setEmail(String email)
+    {
+        this.email = email;
+    }
+
+    @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
+    public String getPhonenumber()
+    {
+        return phonenumber;
+    }
+
+    public void setPhonenumber(String phonenumber)
+    {
+        this.phonenumber = phonenumber;
+    }
+
+    public String getSex()
+    {
+        return sex;
+    }
+
+    public void setSex(String sex)
+    {
+        this.sex = sex;
+    }
+
+    public String getAvatar()
+    {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar)
+    {
+        this.avatar = avatar;
+    }
+
+    @JsonProperty
+    public String getPassword()
+    {
+        return password;
+    }
+
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getLoginIp()
+    {
+        return loginIp;
+    }
+
+    public void setLoginIp(String loginIp)
+    {
+        this.loginIp = loginIp;
+    }
+
+    public Date getLoginDate()
+    {
+        return loginDate;
+    }
+
+    public void setLoginDate(Date loginDate)
+    {
+        this.loginDate = loginDate;
+    }
+
+    public SysDeptVO getDept()
+    {
+        return dept;
+    }
+
+    public void setDept(SysDeptVO dept)
+    {
+        this.dept = dept;
+    }
+
+    public List<SysRoleVO> getRoles()
+    {
+        return roles;
+    }
+
+    public void setRoles(List<SysRoleVO> roles)
+    {
+        this.roles = roles;
+    }
+
+    public Long[] getRoleIds()
+    {
+        return roleIds;
+    }
+
+    public void setRoleIds(Long[] roleIds)
+    {
+        this.roleIds = roleIds;
+    }
+
+    public Long[] getPostIds()
+    {
+        return postIds;
+    }
+
+    public void setPostIds(Long[] postIds)
+    {
+        this.postIds = postIds;
+    }
+
+    public Long getRoleId()
+    {
+        return 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();
+    }
+}

+ 35 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/factory/RemoteFileFallbackFactory.java

@@ -0,0 +1,35 @@
+//package com.usky.system.factory;
+//
+//import com.usky.common.core.bean.ApiResult;
+//import com.usky.system.RemoteFileService;
+//import com.usky.system.domain.SysFileVO;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.cloud.openfeign.FallbackFactory;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.multipart.MultipartFile;
+//
+///**
+// * 文件服务降级处理
+// *
+// * @author ruoyi
+// */
+//@Component
+//public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileService>
+//{
+//    private static final Logger log = LoggerFactory.getLogger(RemoteFileFallbackFactory.class);
+//
+//    @Override
+//    public RemoteFileService create(Throwable throwable)
+//    {
+//        log.error("文件服务调用失败:{}", throwable.getMessage());
+//        return new RemoteFileService()
+//        {
+//            @Override
+//            public ApiResult<SysFileVO> upload(MultipartFile file)
+//            {
+//                return ApiResult.error("500","上传文件失败:" + throwable.getMessage());
+//            }
+//        };
+//    }
+//}

+ 42 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/factory/RemoteLogFallbackFactory.java

@@ -0,0 +1,42 @@
+package com.usky.system.factory;
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.RemoteLogService;
+import com.usky.system.domain.SysLogininforVO;
+import com.usky.system.domain.SysOperLogVO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 日志服务降级处理
+ *
+ * @author ruoyi
+ */
+@Component
+public class RemoteLogFallbackFactory implements FallbackFactory<RemoteLogService>
+{
+    private static final Logger log = LoggerFactory.getLogger(RemoteLogFallbackFactory.class);
+
+    @Override
+    public RemoteLogService create(Throwable throwable)
+    {
+        log.error("日志服务调用失败:{}", throwable.getMessage());
+        return new RemoteLogService()
+        {
+            @Override
+            public ApiResult<Boolean> saveLog(SysOperLogVO sysOperLog)
+            {
+                return ApiResult.error("500","保存日志失败");
+            }
+
+            @Override
+            public ApiResult<Boolean> saveLogininfor(SysLogininforVO sysLogininfor)
+            {
+                return ApiResult.error("500","保存日志失败");
+            }
+        };
+
+    }
+}

+ 42 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/factory/RemoteUserFallbackFactory.java

@@ -0,0 +1,42 @@
+package com.usky.system.factory;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.RemoteUserService;
+import com.usky.system.domain.SysUserVO;
+import com.usky.system.model.LoginUser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 用户服务降级处理
+ * 
+ * @author ruoyi
+ */
+@Component
+public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserService>
+{
+    private static final Logger log = LoggerFactory.getLogger(RemoteUserFallbackFactory.class);
+
+    @Override
+    public RemoteUserService create(Throwable throwable)
+    {
+        log.error("用户服务调用失败:{}", throwable.getMessage());
+        return new RemoteUserService()
+        {
+            @Override
+            public ApiResult<LoginUser> getUserInfo(String username)
+            {
+                return ApiResult.error("500","获取用户失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public ApiResult<Boolean> registerUserInfo(SysUserVO sysUser)
+            {
+                return ApiResult.error("500","注册用户失败:" + throwable.getMessage());
+            }
+        };
+    }
+}

+ 152 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/model/LoginUser.java

@@ -0,0 +1,152 @@
+package com.usky.system.model;
+
+
+import com.usky.system.domain.SysUserVO;
+
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ * 用户信息
+ *
+ * @author ruoyi
+ */
+public class LoginUser implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户唯一标识
+     */
+    private String token;
+
+    /**
+     * 用户名id
+     */
+    private Long userid;
+
+    /**
+     * 用户名
+     */
+    private String username;
+
+    /**
+     * 登录时间
+     */
+    private Long loginTime;
+
+    /**
+     * 过期时间
+     */
+    private Long expireTime;
+
+    /**
+     * 登录IP地址
+     */
+    private String ipaddr;
+
+    /**
+     * 权限列表
+     */
+    private Set<String> permissions;
+
+    /**
+     * 角色列表
+     */
+    private Set<String> roles;
+
+    /**
+     * 用户信息
+     */
+    private SysUserVO sysUser;
+
+    public String getToken()
+    {
+        return token;
+    }
+
+    public void setToken(String token)
+    {
+        this.token = token;
+    }
+
+    public Long getUserid()
+    {
+        return userid;
+    }
+
+    public void setUserid(Long userid)
+    {
+        this.userid = userid;
+    }
+
+    public String getUsername()
+    {
+        return username;
+    }
+
+    public void setUsername(String username)
+    {
+        this.username = username;
+    }
+
+    public Long getLoginTime()
+    {
+        return loginTime;
+    }
+
+    public void setLoginTime(Long loginTime)
+    {
+        this.loginTime = loginTime;
+    }
+
+    public Long getExpireTime()
+    {
+        return expireTime;
+    }
+
+    public void setExpireTime(Long expireTime)
+    {
+        this.expireTime = expireTime;
+    }
+
+    public String getIpaddr()
+    {
+        return ipaddr;
+    }
+
+    public void setIpaddr(String ipaddr)
+    {
+        this.ipaddr = ipaddr;
+    }
+
+    public Set<String> getPermissions()
+    {
+        return permissions;
+    }
+
+    public void setPermissions(Set<String> permissions)
+    {
+        this.permissions = permissions;
+    }
+
+    public Set<String> getRoles()
+    {
+        return roles;
+    }
+
+    public void setRoles(Set<String> roles)
+    {
+        this.roles = roles;
+    }
+
+    public SysUserVO getSysUser()
+    {
+        return sysUser;
+    }
+
+    public void setSysUser(SysUserVO sysUser)
+    {
+        this.sysUser = sysUser;
+    }
+}

+ 64 - 0
base-modules/service-system/service-system-biz/pom.xml

@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>service-system</artifactId>
+        <groupId>com.usky</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>service-system-biz</artifactId>
+    <dependencies>
+
+
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>common-cloud-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <!-- Pagehelper -->
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>com.github.shalousun</groupId>
+                <artifactId>smart-doc-maven-plugin</artifactId>
+                <version>2.1.1</version>
+                <configuration>
+                    <!--指定生成文档的使用的配置文件,配置文件放在自己的项目中-->
+                    <configFile>./src/main/resources/smart-doc.json</configFile>
+                    <!--指定项目名称-->
+                    <projectName>test</projectName>
+                    <!--                    <excludes>-->
+                    <!--                        <exclude>com.bizmatics:product-service-provider</exclude>-->
+                    <!--                        <exclude>cn.afterturn:easypoi-web</exclude>-->
+                    <!--                    </excludes>-->
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 39 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/RuoYiSystemApplication.java

@@ -0,0 +1,39 @@
+package com.usky.system;
+
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+
+/**
+ * 系统模块
+ * 
+ * @author ruoyi
+ */
+
+
+@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)
+@EnableFeignClients(basePackages = {"com.usky"})
+@MapperScan(value = "com.usky.system.mapper")
+@ComponentScan(basePackages = {"com.usky"})
+@SpringBootApplication
+public class RuoYiSystemApplication
+{
+    public static void main(String[] args)
+    {
+        SpringApplication.run(RuoYiSystemApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  永天系统模块启动成功   ლ(´ڡ`ლ)゙  \n" +
+                " .-------.       ____     __        \n" +
+                " |  _ _   \\      \\   \\   /  /    \n" +
+                " | ( ' )  |       \\  _. /  '       \n" +
+                " |(_ o _) /        _( )_ .'         \n" +
+                " | (_,_).' __  ___(_ o _)'          \n" +
+                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+                " |  | \\ `'   /|   `-'  /           \n" +
+                " |  |  \\    /  \\      /           \n" +
+                " ''-'   `'-'    `-..-'              ");
+    }
+}

+ 108 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/MybatisGeneratorUtils.java

@@ -0,0 +1,108 @@
+//package com.usky.system.controller;//package com.usky.system.controller;//package com.usky.dm.controller.web.business;//package com.usky.dm.controller.web;
+//
+//import com.baomidou.mybatisplus.core.toolkit.StringPool;
+//import com.baomidou.mybatisplus.generator.AutoGenerator;
+//import com.baomidou.mybatisplus.generator.InjectionConfig;
+//import com.baomidou.mybatisplus.generator.config.*;
+//import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+//
+//import java.io.File;
+//import java.util.ArrayList;
+//import java.util.List;
+//
+///**
+// * @author yq
+// * @date 2021/7/6 11:42
+// */
+//public class MybatisGeneratorUtils {
+//    public static void main(String[] args) {
+//
+//            shell("service-system","service-system-biz");
+//    }
+//
+//    private static void shell(String parentName,String model) {
+//
+//        AutoGenerator mpg = new AutoGenerator();
+//        //1、全局配置
+//        GlobalConfig gc = new GlobalConfig();
+////        File file = new File(model);
+////        String path = file.getAbsolutePath();
+//        String projectPath = System.getProperty("user.dir");
+//        projectPath+="/"+parentName;
+//        projectPath+="/"+model;
+//        gc.setOutputDir(projectPath+ "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
+//        //修改为自己的名字
+//        gc.setAuthor("ya"); //设置作者
+//        gc.setOpen(false);
+//        gc.setFileOverride(true); //第二次生成会把第一次生成的覆盖掉
+//        gc.setServiceName("%sService"); //生成的service接口名字首字母是否为I,这样设置就没有
+//        gc.setBaseResultMap(true); //生成resultMap
+//        mpg.setGlobalConfig(gc);
+//
+//        //2、数据源配置
+//        //修改数据源
+//        DataSourceConfig dsc = new DataSourceConfig();
+//        dsc.setUrl("jdbc:mysql://47.111.81.118:3306/dm?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
+//        dsc.setDriverName("com.mysql.jdbc.Driver");
+//        dsc.setUsername("root");
+//        dsc.setPassword("Yt2021");
+//        mpg.setDataSource(dsc);
+//
+//        // 3、包配置
+//        PackageConfig pc = new PackageConfig();
+//        pc.setParent("com.usky.system");
+//        pc.setController("controller.web");
+//        pc.setEntity("domain");
+//        pc.setMapper("mapper");
+//        pc.setService("service");
+//        pc.setServiceImpl("service.impl");
+////        pc.setXml("mapper.demo");
+//        //pc.setModuleName("test");
+//        mpg.setPackageInfo(pc);
+//
+//        // 4、策略配置
+//        StrategyConfig strategy = new StrategyConfig();
+//        strategy.setNaming(NamingStrategy.underline_to_camel);
+//        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
+//        strategy.setSuperMapperClass("com.usky.common.mvc.base.CrudMapper");
+//        strategy.setSuperServiceClass("com.usky.common.mvc.base.CrudService");
+//        strategy.setSuperServiceImplClass("com.usky.common.mvc.base.AbstractCrudService");
+//        // strategy.setTablePrefix("t_"); // 表名前缀
+//        strategy.setEntityLombokModel(true); //使用lombok
+//        //修改自己想要生成的表
+//        strategy.setInclude("sys_config");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+//        mpg.setStrategy(strategy);
+//
+//        // 关闭默认 xml 生成,调整生成 至 根目录
+//        //修改对应的模块名称
+//        TemplateConfig tc = new TemplateConfig();
+//        // 自定义配置
+//        InjectionConfig cfg = new InjectionConfig() {
+//            @Override
+//            public void initMap() {
+//                // to do nothing
+//            }
+//        };
+//        //如果模板引擎是 velocity
+//        String templatePath = "/templates/mapper.xml.vm";
+//        // 自定义输出配置
+//        List<FileOutConfig> focList = new ArrayList<>();
+//        // 自定义配置会被优先输出
+//        String finalProjectPath = projectPath;
+//        focList.add(new FileOutConfig(templatePath) {
+//            @Override
+//            public String outputFile(TableInfo tableInfo) {
+//                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
+//                return finalProjectPath + "/src/main/resources/mapper.system" + "/"
+//                        + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+//            }
+//        });
+//        cfg.setFileOutConfigList(focList);
+//        mpg.setCfg(cfg);
+//        tc.setXml(null);
+//        mpg.setTemplate(tc);
+//        //5、执行
+//        mpg.execute();
+//    }
+//}

+ 38 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/api/SysLogControllerApi.java

@@ -0,0 +1,38 @@
+package com.usky.system.controller.api;
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.util.BeanMapperUtils;
+import com.usky.system.RemoteLogService;
+import com.usky.system.domain.SysLogininfor;
+import com.usky.system.domain.SysLogininforVO;
+import com.usky.system.domain.SysOperLog;
+import com.usky.system.domain.SysOperLogVO;
+import com.usky.system.service.ISysLogininforService;
+import com.usky.system.service.ISysOperLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author yq
+ * @date 2022/7/1 11:08
+ */
+@RequestMapping("/logApi")
+@RestController
+public class SysLogControllerApi implements RemoteLogService {
+
+    @Autowired
+    private ISysOperLogService sysOperLogService;
+
+    @Autowired
+    private ISysLogininforService sysLogininforService;
+    @Override
+    public ApiResult<Boolean> saveLog(SysOperLogVO sysOperLog) {
+        return ApiResult.success(sysOperLogService.save(BeanMapperUtils.map(sysOperLog, SysOperLog.class)));
+    }
+
+    @Override
+    public ApiResult<Boolean> saveLogininfor(SysLogininforVO sysLogininfor) {
+        return ApiResult.success(sysLogininforService.save(BeanMapperUtils.map(sysLogininfor, SysLogininfor.class)));
+    }
+}

+ 29 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/api/SysUserControllerApi.java

@@ -0,0 +1,29 @@
+package com.usky.system.controller.api;
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.util.BeanMapperUtils;
+import com.usky.system.RemoteUserService;
+import com.usky.system.domain.SysUser;
+import com.usky.system.domain.SysUserVO;
+import com.usky.system.model.LoginUser;
+import com.usky.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class SysUserControllerApi implements RemoteUserService {
+
+
+    @Autowired
+    private ISysUserService iSysUserService;
+
+    @Override
+    public ApiResult<LoginUser> getUserInfo(String username) {
+        return ApiResult.success(iSysUserService.getUserInfo(username));
+    }
+
+    @Override
+    public ApiResult<Boolean> registerUserInfo(SysUserVO sysUser) {
+        return ApiResult.success(iSysUserService.register(BeanMapperUtils.map(sysUser, SysUser.class)));
+    }
+}

+ 79 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/AuthorityConfigController.java

@@ -0,0 +1,79 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.domain.SysMenu;
+import com.usky.system.service.ISysMenuService;
+import com.usky.system.service.SysPlatformMenuService;
+import com.usky.system.service.vo.TenantMenuVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 租户管理-权限配置
+ *
+ * @author ya
+ * @since 2022-05-05
+ */
+@RestController
+@RequestMapping("/authorityConfig")
+public class AuthorityConfigController {
+
+    @Autowired
+    private SysPlatformMenuService sysPlatformMenuService;
+
+    @Autowired
+    private ISysMenuService menuService;
+
+
+    /**
+     * 租户管理-权限配置-目录查询
+     *
+     * @param platformId 平台ID
+     * @param tenantId   租户ID
+     * @return
+     */
+    @GetMapping("getMenuList")
+    public ApiResult<Map<String, Object>> getMenuList(@RequestParam(value = "platformId") Integer platformId,
+                                                      @RequestParam(value = "tenantId") Integer tenantId) {
+        return ApiResult.success(sysPlatformMenuService.getMenuList(platformId, tenantId));
+    }
+
+
+    /**
+     * 租户管理-权限配置-目录查询
+     *
+     * @param platformId 平台ID
+     * @param tenantId   租户ID
+     * @return
+     */
+    @GetMapping("getAuthorityConfigMenuList")
+    public ApiResult<Map<String, Object>> getAuthorityConfigMenuList(@RequestParam(value = "platformId") Integer platformId,
+                                                                     @RequestParam(value = "tenantId") Integer tenantId) {
+        List<SysMenu> menus =sysPlatformMenuService.getPlatformMenuList(platformId);
+        Map<String, Object> ajax = new HashMap<>();
+        ajax.put("checkedKeys", sysPlatformMenuService.selectPlatformMenu(tenantId));
+        ajax.put("menus", menuService.buildMenuTreeSelect(menus));
+        return ApiResult.success(ajax);
+    }
+
+    /**
+     * 租户管理-权限配置-目录保存
+     *
+     * @param tenantMenuVo
+     * @return
+     */
+//    @Log(title = "权限配置", businessType = BusinessType.UPDATE)
+    @PostMapping("updateMenu")
+    public ApiResult<Void> updateMenu(@RequestBody TenantMenuVo tenantMenuVo) {
+        sysPlatformMenuService.updateMenu(tenantMenuVo);
+        return ApiResult.success();
+    }
+
+
+}
+

+ 80 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/BaseController.java

@@ -0,0 +1,80 @@
+package com.usky.system.controller.web;
+
+
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.common.core.util.DateUtils;
+import com.usky.system.controller.web.page.PageDomain;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.controller.web.page.TableSupport;
+import com.usky.system.service.util.SqlUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.InitBinder;
+
+import java.beans.PropertyEditorSupport;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * web层通用数据处理
+ */
+public class BaseController {
+    protected final Logger logger = LoggerFactory.getLogger(BaseController.class);
+
+    /**
+     * 将前台传递过来的日期格式的字符串,自动转化为Date类型
+     */
+    @InitBinder
+    public void initBinder(WebDataBinder binder) {
+        // Date 类型转换
+        binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
+            @Override
+            public void setAsText(String text) {
+                setValue(DateUtils.parseDate(text));
+            }
+        });
+    }
+
+    /**
+     * 设置请求分页数据
+     */
+    protected void startPage() {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        if (Objects.nonNull(pageNum) && Objects.nonNull(pageSize)) {
+            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
+            PageHelper.startPage(pageNum, pageSize, orderBy);
+        }
+    }
+
+    /**
+     * 响应请求分页数据
+     */
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    protected TableDataInfo getDataTable(List<?> list) {
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.OK.value());
+        rspData.setRows(list);
+        rspData.setMsg("查询成功");
+        rspData.setTotal(new PageInfo(list).getTotal());
+        return rspData;
+    }
+
+    /**
+     * 响应返回结果
+     *
+     * @param rows 影响行数
+     * @return 操作结果
+     */
+    protected ApiResult<Void> toAjax(int rows) {
+        return rows > 0 ? ApiResult.success() : ApiResult.error(BusinessErrorCode.BIZ_MODIFY_FAIL.getCode(), BusinessErrorCode.BIZ_MODIFY_FAIL.getDefaultMessage());
+    }
+}

+ 105 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysConfigController.java

@@ -0,0 +1,105 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysConfig;
+import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.service.ISysConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * 参数配置 信息操作处理
+ * @author yq
+ */
+@RestController
+@RequestMapping("/config")
+public class SysConfigController extends BaseController
+{
+    @Autowired
+    private ISysConfigService configService;
+
+    /**
+     * 获取参数配置列表
+     */
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysConfig config)
+    {
+        startPage();
+        List<SysConfig> list = configService.selectConfigList(config);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 根据参数编号获取详细信息
+     */
+    @GetMapping(value = "/{configId}")
+    public ApiResult getInfo(@PathVariable Long configId)
+    {
+        return ApiResult.success(configService.selectConfigById(configId));
+    }
+
+    /**
+     * 根据参数键名查询参数值
+     */
+    @GetMapping(value = "/configKey/{configKey}")
+    public ApiResult getConfigKey(@PathVariable String configKey)
+    {
+        return ApiResult.success(configService.selectConfigByKey(configKey));
+    }
+
+    /**
+     * 新增参数配置
+     */
+    @PostMapping
+    public ApiResult add(@Validated @RequestBody SysConfig config)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(configService.insertConfig(config));
+    }
+
+    /**
+     * 修改参数配置
+     */
+    @PutMapping
+    public ApiResult edit(@Validated @RequestBody SysConfig config)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(configService.updateConfig(config));
+    }
+
+    /**
+     * 删除参数配置
+     */
+    @DeleteMapping("/{configIds}")
+    public ApiResult remove(@PathVariable Long[] configIds)
+    {
+        configService.deleteConfigByIds(configIds);
+        return ApiResult.success();
+    }
+
+    /**
+     * 刷新参数缓存
+     */
+    @DeleteMapping("/refreshCache")
+    public ApiResult refreshCache()
+    {
+        configService.resetConfigCache();
+        return ApiResult.success();
+    }
+}

+ 150 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysDeptController.java

@@ -0,0 +1,150 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.common.core.util.StringUtils;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.system.domain.SysDept;
+import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.service.ISysDeptService;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 部门信息
+ * 
+ * @author yq
+ */
+@RestController
+@RequestMapping("/dept")
+public class SysDeptController extends BaseController
+{
+    @Autowired
+    private ISysDeptService deptService;
+
+    /**
+     * 获取部门列表
+     */
+    @GetMapping("/list")
+    public ApiResult list(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return ApiResult.success(depts);
+    }
+
+    /**
+     * 查询部门列表(排除节点)
+     */
+    @GetMapping("/list/exclude/{deptId}")
+    public ApiResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
+    {
+        List<SysDept> depts = deptService.selectDeptList(new SysDept());
+        Iterator<SysDept> it = depts.iterator();
+        while (it.hasNext())
+        {
+            SysDept d = (SysDept) it.next();
+            if (d.getDeptId().intValue() == deptId
+                    || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""))
+            {
+                it.remove();
+            }
+        }
+        return ApiResult.success(depts);
+    }
+
+    /**
+     * 根据部门编号获取详细信息
+     */
+    @GetMapping(value = "/{deptId}")
+    public ApiResult getInfo(@PathVariable Long deptId)
+    {
+        return ApiResult.success(deptService.selectDeptById(deptId));
+    }
+
+    /**
+     * 获取部门下拉树列表
+     */
+    @GetMapping("/treeselect")
+    public ApiResult treeselect(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return ApiResult.success(deptService.buildDeptTreeSelect(depts));
+    }
+
+    /**
+     * 加载对应角色部门列表树
+     */
+    @GetMapping(value = "/roleDeptTreeselect/{roleId}")
+    public ApiResult roleDeptTreeselect(@PathVariable("roleId") Long roleId)
+    {
+        List<SysDept> depts = deptService.selectDeptList(new SysDept());
+        Map<String,Object> ajax = new HashMap<>();
+        ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
+        ajax.put("depts", deptService.buildDeptTreeSelect(depts));
+        return ApiResult.success(ajax);
+    }
+
+    /**
+     * 新增部门
+     */
+    @PostMapping
+    public ApiResult add(@Validated @RequestBody SysDept dept)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        dept.setTenantId(SecurityUtils.getTenantId());
+        dept.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(deptService.insertDept(dept));
+    }
+
+    /**
+     * 修改部门
+     */
+    @PutMapping
+    public ApiResult edit(@Validated @RequestBody SysDept dept)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        else if (dept.getParentId().equals(dept.getDeptId()))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
+        }
+        else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())
+                && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0)
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "该部门包含未停用的子部门!");
+        }
+        dept.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(deptService.updateDept(dept));
+    }
+
+    /**
+     * 删除部门
+     */
+    @DeleteMapping("/{deptId}")
+    public ApiResult remove(@PathVariable Long deptId)
+    {
+        if (deptService.hasChildByDeptId(deptId))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "存在下级部门,不允许删除");
+        }
+        if (deptService.checkDeptExistUser(deptId))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "部门存在用户,不允许删除");
+        }
+        return toAjax(deptService.deleteDeptById(deptId));
+    }
+}

+ 94 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysDictDataController.java

@@ -0,0 +1,94 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysDictData;
+import com.usky.system.service.ISysDictDataService;
+import com.usky.system.service.ISysDictTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+
+/**
+ * 数据字典信息
+ * 
+ * @author yq
+ */
+@RestController
+@RequestMapping("/dict/data")
+public class SysDictDataController extends BaseController
+{
+    @Autowired
+    private ISysDictDataService dictDataService;
+
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysDictData dictData)
+    {
+        startPage();
+        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 查询字典数据详细
+     */
+    @GetMapping(value = "/{dictCode}")
+    public ApiResult getInfo(@PathVariable Long dictCode)
+    {
+        return ApiResult.success(dictDataService.selectDictDataById(dictCode));
+    }
+
+    /**
+     * 根据字典类型查询字典数据信息
+     */
+    @GetMapping(value = "/type/{dictType}")
+    public ApiResult dictType(@PathVariable String dictType)
+    {
+        List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
+        if (Objects.isNull(data))
+        {
+            data = new ArrayList<SysDictData>();
+        }
+        return ApiResult.success(data);
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @PostMapping
+    public ApiResult add(@Validated @RequestBody SysDictData dict)
+    {
+        dict.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(dictDataService.insertDictData(dict));
+    }
+
+    /**
+     * 修改保存字典类型
+     */
+    @PutMapping
+    public ApiResult edit(@Validated @RequestBody SysDictData dict)
+    {
+        dict.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(dictDataService.updateDictData(dict));
+    }
+
+    /**
+     * 删除字典类型
+     */
+    @DeleteMapping("/{dictCodes}")
+    public ApiResult remove(@PathVariable Long[] dictCodes)
+    {
+        dictDataService.deleteDictDataByIds(dictCodes);
+        return ApiResult.success();
+    }
+}

+ 105 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysDictTypeController.java

@@ -0,0 +1,105 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysDictType;
+import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.service.ISysDictTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 数据字典信息
+ * 
+ * @author yq
+ */
+@RestController
+@RequestMapping("/dict/type")
+public class SysDictTypeController extends BaseController
+{
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+
+
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysDictType dictType)
+    {
+        startPage();
+        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 查询字典类型详细
+     */
+    @GetMapping(value = "/{dictId}")
+    public ApiResult getInfo(@PathVariable Long dictId)
+    {
+        return ApiResult.success(dictTypeService.selectDictTypeById(dictId));
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @PostMapping
+    public ApiResult add(@Validated @RequestBody SysDictType dict)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dict.setTenantId(SecurityUtils.getTenantId());
+        dict.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(dictTypeService.insertDictType(dict));
+    }
+
+    /**
+     * 修改字典类型
+     */
+    @PutMapping
+    public ApiResult edit(@Validated @RequestBody SysDictType dict)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+
+        return toAjax(dictTypeService.updateDictType(dict));
+    }
+
+    /**
+     * 删除字典类型
+     */
+    @DeleteMapping("/{dictIds}")
+    public ApiResult remove(@PathVariable Long[] dictIds)
+    {
+        dictTypeService.deleteDictTypeByIds(dictIds);
+        return ApiResult.success();
+    }
+
+    /**
+     * 刷新字典缓存
+     */
+    @DeleteMapping("/refreshCache")
+    public ApiResult refreshCache()
+    {
+        dictTypeService.resetDictCache();
+        return ApiResult.success();
+    }
+
+    /**
+     * 获取字典选择框列表
+     */
+    @GetMapping("/optionselect")
+    public ApiResult optionselect()
+    {
+        List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
+        return ApiResult.success(dictTypes);
+    }
+}

+ 56 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysLogininforController.java

@@ -0,0 +1,56 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysLogininfor;
+import com.usky.system.service.ISysLogininforService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 系统访问记录
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/logininfor")
+public class SysLogininforController extends BaseController
+{
+    @Autowired
+    private ISysLogininforService logininforService;
+
+
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysLogininfor logininfor)
+    {
+        startPage();
+        List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
+        return ApiResult.success(getDataTable(list));
+    }
+
+
+
+    @DeleteMapping("/{infoIds}")
+    public ApiResult<Void> remove(@PathVariable Long[] infoIds)
+    {
+        return toAjax(logininforService.deleteLogininforByIds(infoIds));
+    }
+
+
+    @DeleteMapping("/clean")
+    public ApiResult<Void> clean()
+    {
+        logininforService.cleanLogininfor();
+        return ApiResult.success();
+    }
+
+    @PostMapping
+    public ApiResult<Void> add(@RequestBody SysLogininfor logininfor)
+    {
+        logininforService.insertLogininfor(logininfor);
+        return ApiResult.success();
+    }
+}

+ 170 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysMenuController.java

@@ -0,0 +1,170 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.util.ServletUtils;
+import com.usky.common.security.service.TokenService;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.constants.CommonConst;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.common.core.util.StringUtils;
+import com.usky.system.domain.SysMenu;
+import com.usky.system.domain.SysUser;
+import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.model.LoginUser;
+import com.usky.system.service.ISysMenuService;
+import com.usky.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 菜单信息
+ * 
+ * @author yq
+ */
+@RestController
+@RequestMapping("/menu")
+public class SysMenuController extends BaseController
+{
+    @Autowired
+    private ISysMenuService menuService;
+
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    /**
+     * 获取菜单列表
+     */
+    @GetMapping("/list")
+    public ApiResult list(SysMenu menu)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUserid();
+        List<SysMenu> menus = menuService.selectMenuList(menu, userId);
+        return ApiResult.success(menus);
+    }
+
+    /**
+     * 根据菜单编号获取详细信息
+     */
+    @GetMapping(value = "/{menuId}")
+    public ApiResult getInfo(@PathVariable Long menuId)
+    {
+        return ApiResult.success(menuService.selectMenuById(menuId));
+    }
+
+    /**
+     * 获取菜单下拉树列表
+     */
+    @GetMapping("/treeselect")
+    public ApiResult treeselect(SysMenu menu)
+    {
+        Long userId = SecurityUtils.getUserId();
+        List<SysMenu> menus = menuService.selectMenuList(menu, userId);
+        return ApiResult.success(menuService.buildMenuTreeSelect(menus));
+    }
+
+    /**
+     * 加载对应角色菜单列表树
+     */
+    @GetMapping(value = "/roleMenuTreeselect/{roleId}")
+    public ApiResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
+    {
+        Long userId = SecurityUtils.getUserId();
+        List<SysMenu> menus = menuService.selectMenuList(userId);
+        Map<String,Object> ajax = new HashMap<>();
+        ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
+        ajax.put("menus", menuService.buildMenuTreeSelect(menus));
+        return ApiResult.success(ajax);
+    }
+
+    /**
+     * 新增菜单
+     */
+    @PostMapping
+    public ApiResult add(@Validated @RequestBody SysMenu menu)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame())
+        && !StringUtils.startsWithAny(menu.getPath(), CommonConst.HTTP_PREFIX, CommonConst.HTTPS_PREFIX))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        menu.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(menuService.insertMenu(menu));
+    }
+
+    /**
+     * 修改菜单
+     */
+    @PutMapping
+    public ApiResult edit(@Validated @RequestBody SysMenu menu)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame())
+        && !StringUtils.startsWithAny(menu.getPath(), CommonConst.HTTP_PREFIX, CommonConst.HTTPS_PREFIX))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        else if (menu.getMenuId().equals(menu.getParentId()))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
+        }
+        menu.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(menuService.updateMenu(menu));
+    }
+
+    /**
+     * 删除菜单
+     */
+    @DeleteMapping("/{menuId}")
+    public ApiResult remove(@PathVariable("menuId") Long menuId)
+    {
+        if (menuService.hasChildByMenuId(menuId))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "存在子菜单,不允许删除");
+        }
+        if (menuService.checkMenuExistRole(menuId))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "菜单已分配,不允许删除");
+        }
+        return toAjax(menuService.deleteMenuById(menuId));
+    }
+
+
+    /**
+     * 获取路由信息
+     *
+     * @return 路由信息
+     */
+    @GetMapping("getRouters")
+    public ApiResult getRouters()
+    {
+        Long userId = SecurityUtils.getUserId();
+
+        SysUser sysUser = userService.selectUserById(userId);
+        List<SysMenu> menus = new ArrayList<>();
+        if ("01".equals(sysUser.getUserType())){
+            menus = menuService.selectMenuTreeByUserIdOne(SecurityUtils.getTenantId());
+        }else {
+            menus = menuService.selectMenuTreeByUserId(userId);
+        }
+        return ApiResult.success(menuService.buildMenus(menus));
+    }
+}

+ 77 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysNoticeController.java

@@ -0,0 +1,77 @@
+package com.usky.system.controller.web;
+
+import com.usky.common.security.annotation.RequiresPermissions;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysNotice;
+import com.usky.system.service.ISysNoticeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 公告 信息操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/notice")
+public class SysNoticeController extends BaseController
+{
+    @Autowired
+    private ISysNoticeService noticeService;
+
+    /**
+     * 获取通知公告列表
+     */
+    @RequiresPermissions("system:notice:list")
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysNotice notice)
+    {
+        startPage();
+        List<SysNotice> list = noticeService.selectNoticeList(notice);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 根据通知公告编号获取详细信息
+     */
+    @RequiresPermissions("system:notice:query")
+    @GetMapping(value = "/{noticeId}")
+    public ApiResult getInfo(@PathVariable Long noticeId)
+    {
+        return ApiResult.success(noticeService.selectNoticeById(noticeId));
+    }
+
+    /**
+     * 新增通知公告
+     */
+    @PostMapping
+    public ApiResult add(@Validated @RequestBody SysNotice notice)
+    {
+        notice.setCreateBy(SecurityUtils.getUsername());
+        return ApiResult.success(toAjax(noticeService.insertNotice(notice)));
+    }
+
+    /**
+     * 修改通知公告
+     */
+    @PutMapping
+    public ApiResult edit(@Validated @RequestBody SysNotice notice)
+    {
+        notice.setUpdateBy(SecurityUtils.getUsername());
+        return ApiResult.success(toAjax(noticeService.updateNotice(notice)));
+    }
+
+    /**
+     * 删除通知公告
+     */
+    @DeleteMapping("/{noticeIds}")
+    public ApiResult remove(@PathVariable Long[] noticeIds)
+    {
+        return ApiResult.success(toAjax(noticeService.deleteNoticeByIds(noticeIds)));
+    }
+}

+ 54 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysOperlogController.java

@@ -0,0 +1,54 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysOperLog;
+import com.usky.system.service.ISysOperLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 操作日志记录
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/operlog")
+public class SysOperlogController extends BaseController
+{
+    @Autowired
+    private ISysOperLogService operLogService;
+
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysOperLog operLog)
+    {
+        startPage();
+        List<SysOperLog> list = operLogService.selectOperLogList(operLog);
+        return ApiResult.success(getDataTable(list));
+    }
+
+
+    @DeleteMapping("/{operIds}")
+    public ApiResult<Void> remove(@PathVariable Long[] operIds)
+    {
+        return toAjax(operLogService.deleteOperLogByIds(operIds));
+    }
+
+
+    @DeleteMapping("/clean")
+    public ApiResult<Void> clean()
+    {
+        operLogService.cleanOperLog();
+        return ApiResult.success();
+    }
+
+    @PostMapping
+    public ApiResult<Void> add(@RequestBody SysOperLog operLog)
+    {
+        operLogService.insertOperlog(operLog);
+        return ApiResult.success();
+    }
+}

+ 86 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysPlatformController.java

@@ -0,0 +1,86 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.system.domain.SysMenu;
+import com.usky.system.service.ISysMenuService;
+import com.usky.system.service.SysPlatformService;
+import com.usky.system.service.vo.PlatformMenuVo;
+import com.usky.system.service.vo.SysPlatformVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 平台管理
+ *
+ * @author ya
+ * @since 2022-05-18
+ */
+@RestController
+@RequestMapping("/sysPlatform")
+public class SysPlatformController {
+    @Autowired
+    private SysPlatformService sysPlatformService;
+
+    @Autowired
+    private ISysMenuService menuService;
+
+    /**
+     * 平台挂管理-列表查询
+     *
+     * @param platformName 平台名称
+     * @param startTime    开始时间
+     * @param endTime      结束时间
+     * @param page         当前页
+     * @param size         每页条数
+     * @param id           平台ID
+     * @return
+     */
+    @GetMapping("/getPlatformList")
+    public ApiResult<CommonPage<SysPlatformVo>> getPlatformList(@RequestParam(value = "platformName", required = false) String platformName,
+                                                                @RequestParam(value = "startTime", required = false) String startTime,
+                                                                @RequestParam(value = "endTime", required = false) String endTime,
+                                                                @RequestParam(value = "page", required = false, defaultValue = "0") Integer page,
+                                                                @RequestParam(value = "size", required = false, defaultValue = "0") Integer size,
+                                                                @RequestParam(value = "id", required = false, defaultValue = "0") Integer id) {
+        return ApiResult.success(sysPlatformService.getPlatformList(platformName, startTime, endTime, page, size, id));
+    }
+
+    /**
+     * 平台挂管理-菜单查询
+     *
+     * @param platformId 平台ID
+     * @return
+     */
+    @GetMapping("/getPlatformMenu")
+    public ApiResult<Map<String, Object>> getPlatformMenu(@RequestParam Long platformId) {
+
+        Long userId = SecurityUtils.getUserId();
+        List<SysMenu> menus = menuService.selectMenuList(userId);
+        Map<String,Object> ajax = new HashMap<>();
+        ajax.put("checkedKeys", sysPlatformService.getPlatformMenu(platformId));
+        ajax.put("menus", menuService.buildMenuTreeSelect(menus));
+        return ApiResult.success(ajax);
+    }
+
+
+    /**
+     * 平台挂管理-菜单编辑
+     *
+     * @param platformMenuVo
+     * @return
+     */
+//    @Log(title = "平台挂管理", businessType = BusinessType.INSERT)
+    @PostMapping("updatePlatformMenu")
+    public ApiResult<Void> updatePlatformMenu(@RequestBody PlatformMenuVo platformMenuVo) {
+        sysPlatformService.updatePlatformMenu(platformMenuVo);
+        return ApiResult.success();
+    }
+}
+

+ 106 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysPostController.java

@@ -0,0 +1,106 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysPost;
+import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.service.ISysPostService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * 岗位信息操作处理
+ * 
+ * @author yq
+ */
+@RestController
+@RequestMapping("/post")
+public class SysPostController extends BaseController
+{
+    @Autowired
+    private ISysPostService postService;
+
+    /**
+     * 获取岗位列表
+     */
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysPost post)
+    {
+        startPage();
+        List<SysPost> list = postService.selectPostList(post);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 根据岗位编号获取详细信息
+     */
+    @GetMapping(value = "/{postId}")
+    public ApiResult getInfo(@PathVariable Long postId)
+    {
+        return ApiResult.success(postService.selectPostById(postId));
+    }
+
+    /**
+     * 新增岗位
+     */
+    @PostMapping
+    public ApiResult add(@Validated @RequestBody SysPost post)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+        }
+        post.setTenantId(SecurityUtils.getTenantId());
+        post.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(postService.insertPost(post));
+    }
+
+    /**
+     * 修改岗位
+     */
+//    @PreAuthorize("@ss.hasPermi('system:post:edit')")
+    @PutMapping
+    public ApiResult edit(@Validated @RequestBody SysPost post)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+        }
+        post.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(postService.updatePost(post));
+    }
+
+    /**
+     * 删除岗位
+     */
+    @DeleteMapping("/{postIds}")
+    public ApiResult remove(@PathVariable Long[] postIds)
+    {
+        return toAjax(postService.deletePostByIds(postIds));
+    }
+
+    /**
+     * 获取岗位选择框列表
+     */
+    @GetMapping("/optionselect")
+    public ApiResult optionselect()
+    {
+        List<SysPost> posts = postService.selectPostAll();
+        return ApiResult.success(posts);
+    }
+}

+ 183 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysRoleController.java

@@ -0,0 +1,183 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysRole;
+import com.usky.system.domain.SysUser;
+import com.usky.system.domain.SysUserRole;
+import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.service.ISysRoleService;
+import com.usky.system.service.ISysUserService;
+import com.usky.system.service.impl.SysPermissionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * 角色信息
+ * 
+ * @author yq
+ */
+@RestController
+@RequestMapping("/role")
+public class SysRoleController extends BaseController
+{
+    @Autowired
+    private ISysRoleService roleService;
+    
+    @Autowired
+    private SysPermissionService permissionService;
+    
+    @Autowired
+    private ISysUserService userService;
+
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysRole role)
+    {
+        startPage();
+        List<SysRole> list = roleService.selectRoleList(role);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 根据角色编号获取详细信息
+     */
+    @GetMapping(value = "/{roleId}")
+    public ApiResult getInfo(@PathVariable Long roleId)
+    {
+        return ApiResult.success(roleService.selectRoleById(roleId));
+    }
+
+    /**
+     * 新增角色
+     */
+    @PostMapping
+    public ApiResult add(@Validated @RequestBody SysRole role)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setTenantId(SecurityUtils.getTenantId());
+        role.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(roleService.insertRole(role));
+
+    }
+
+    /**
+     * 修改保存角色
+     */
+    @PutMapping
+    public ApiResult edit(@Validated @RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(roleService.updateRole(role));
+    }
+
+    /**
+     * 修改保存数据权限
+     */
+    @PutMapping("/dataScope")
+    public ApiResult dataScope(@RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        return toAjax(roleService.authDataScope(role));
+    }
+
+    /**
+     * 状态修改
+     */
+    @PutMapping("/changeStatus")
+    public ApiResult changeStatus(@RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        role.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(roleService.updateRoleStatus(role));
+    }
+
+    /**
+     * 删除角色
+     */
+    @DeleteMapping("/{roleIds}")
+    public ApiResult remove(@PathVariable Long[] roleIds)
+    {
+        return toAjax(roleService.deleteRoleByIds(roleIds));
+    }
+
+    /**
+     * 获取角色选择框列表
+     */
+    @GetMapping("/optionselect")
+    public ApiResult optionselect()
+    {
+        return ApiResult.success(roleService.selectRoleAll());
+    }
+
+    /**
+     * 查询已分配用户角色列表
+     */
+    @GetMapping("/authUser/allocatedList")
+    public ApiResult<TableDataInfo> allocatedList(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectAllocatedList(user);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 查询未分配用户角色列表
+     */
+    @GetMapping("/authUser/unallocatedList")
+    public ApiResult<TableDataInfo> unallocatedList(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectUnallocatedList(user);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 取消授权用户
+     */
+    @PutMapping("/authUser/cancel")
+    public ApiResult cancelAuthUser(@RequestBody SysUserRole userRole)
+    {
+        return toAjax(roleService.deleteAuthUser(userRole));
+    }
+
+    /**
+     * 批量取消授权用户
+     */
+    @PutMapping("/authUser/cancelAll")
+    public ApiResult cancelAuthUserAll(Long roleId, Long[] userIds)
+    {
+        return toAjax(roleService.deleteAuthUsers(roleId, userIds));
+    }
+
+    /**
+     * 批量选择用户授权
+     */
+    @PutMapping("/authUser/selectAll")
+    public ApiResult selectAuthUserAll(Long roleId, Long[] userIds)
+    {
+        return toAjax(roleService.insertAuthUsers(roleId, userIds));
+    }
+}

+ 131 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysTenantConfigController.java

@@ -0,0 +1,131 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.system.domain.SysMenu;
+import com.usky.system.domain.SysTenantConfig;
+import com.usky.system.service.SysTenantConfigService;
+import com.usky.system.service.SysTenantService;
+import com.usky.system.service.vo.SysTenantConfigVo;
+import com.usky.system.service.vo.SysTenantOneVo;
+import com.usky.system.service.vo.SysTenantTwoVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 登录中间页配置
+ *
+ * @author ya
+ * @since 2022-05-06
+ */
+@RestController
+@RequestMapping("/sysTenantConfig")
+public class SysTenantConfigController {
+    @Autowired
+    private SysTenantConfigService sysTenantConfigService;
+
+    @Autowired
+    private SysTenantService sysTenantService;
+
+
+    /**
+     * 登录页-样式配置查询
+     *
+     * @param url 域名
+     * @return
+     */
+    @GetMapping("/getTenantConfig")
+    public ApiResult<List<SysTenantConfigVo>> getTenantConfig(@RequestParam String url) {
+        return ApiResult.success(sysTenantConfigService.getTenantConfig(url));
+    }
+
+
+    /**
+     * 中间页-样式配置查询
+     */
+    @GetMapping("/getMiddleConfig")
+    public ApiResult<List<SysTenantConfig>> getMiddleConfig() {
+        return ApiResult.success(sysTenantConfigService.getMiddleConfig());
+    }
+
+
+    /**
+     * 租户管理-系统配置-主列表查询
+     *
+     * @param sysTenantOneVo
+     * @return
+     */
+    @PostMapping("getTenantData")
+    public ApiResult<CommonPage<SysTenantTwoVo>> getTenantData(@RequestBody SysTenantOneVo sysTenantOneVo) {
+        return ApiResult.success(sysTenantService.getTenantData(sysTenantOneVo));
+    }
+
+    /**
+     * 租户管理-系统配置-租户配置查询
+     *
+     * @param tenantId 租户ID
+     * @return
+     */
+    @GetMapping("/getMiddleConfigList")
+    public ApiResult<List<SysTenantConfig>> getMiddleConfigList(@RequestParam Integer tenantId) {
+        return ApiResult.success(sysTenantConfigService.getMiddleConfigList(tenantId));
+    }
+
+    /**
+     * 租户管理-系统配置-租户配置新增
+     *
+     * @param sysTenantConfig
+     * @return
+     */
+//    @Log(title = "租户管理-系统配置", businessType = BusinessType.INSERT)
+    @PostMapping("addMiddleConfig")
+    public ApiResult<Void> addMiddleConfig(@RequestBody SysTenantConfig sysTenantConfig) {
+        sysTenantConfigService.addMiddleConfig(sysTenantConfig);
+        return ApiResult.success();
+    }
+
+    /**
+     * 租户管理-系统配置-租户配置修改
+     *
+     * @param sysTenantConfig
+     * @return
+     */
+//    @Log(title = "租户管理-系统配置", businessType = BusinessType.UPDATE)
+    @PostMapping("updaMiddleConfig")
+    public ApiResult<Void> updaMiddleConfig(@RequestBody SysTenantConfig sysTenantConfig) {
+        sysTenantConfigService.updaMiddleConfig(sysTenantConfig);
+        return ApiResult.success();
+    }
+
+    /**
+     * 租户管理-系统配置-图片上传
+     *
+     * @param file    图片
+     * @param request
+     * @return
+     */
+    @PostMapping("pictureUpload")
+    public ApiResult<String> pictureUpload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request
+    ) {
+        return ApiResult.success(sysTenantConfigService.pictureUpload(file, request));
+    }
+
+
+    /**
+     * 租户管理-系统配置-首页请求地址下拉框查询
+     *
+     * @param tenantId 租户ID
+     * @return
+     */
+    @GetMapping("/getMenuBoxList")
+    public ApiResult<List<SysMenu>> getMenuBoxList(@RequestParam Integer tenantId) {
+        return ApiResult.success(sysTenantConfigService.getMenuBoxList(tenantId));
+    }
+
+}
+

+ 163 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysUserController.java

@@ -0,0 +1,163 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysRole;
+import com.usky.system.domain.SysUser;
+import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.service.ISysPostService;
+import com.usky.system.service.ISysRoleService;
+import com.usky.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 用户信息
+ * 
+ * @author yq
+ */
+@RestController
+@RequestMapping("/user")
+public class SysUserController extends BaseController
+{
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private ISysRoleService roleService;
+
+    @Autowired
+    private ISysPostService postService;
+
+    /**
+     * 获取用户列表
+     */
+//    @Log(title = "用户管理", businessType = BusinessType.OTHER)
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectUserList(user);
+        return ApiResult.success(getDataTable(list));
+    }
+
+    /**
+     * 根据用户编号获取详细信息
+     */
+    @GetMapping(value = { "/", "/{userId}" })
+    public ApiResult<Map<String,Object>> getInfo(@PathVariable(value = "userId", required = false) Long userId)
+    {
+        Map<String,Object> ajax = new HashMap<>();
+        List<SysRole> roles = roleService.selectRoleAll();
+        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        ajax.put("posts", postService.selectPostAll());
+        if (Objects.nonNull(userId))
+        {
+            ajax.put("data", userService.selectUserById(userId));
+            ajax.put("postIds", postService.selectPostListByUserId(userId));
+            ajax.put("roleIds", roleService.selectRoleListByUserId(userId));
+        }
+        return ApiResult.success(ajax);
+    }
+
+    /**
+     * 新增用户
+     */
+//    @Log(title = "用户管理", businessType = BusinessType.INSERT)
+    @Transactional
+    @PostMapping
+    public ApiResult<Void> add(@Validated @RequestBody SysUser user)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
+        {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        user.setUserType("00");
+        user.setTenantId(SecurityUtils.getTenantId());
+        user.setCreateBy(SecurityUtils.getUsername());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        int row = userService.insertUser(user);
+        return toAjax(row);
+    }
+
+    /**
+     * 修改用户
+     */
+//    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @Transactional
+    @PutMapping
+    public ApiResult<Void> edit(@Validated @RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        user.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(userService.updateUser(user));
+    }
+
+    /**
+     * 删除用户
+     */
+//    @Log(title = "用户管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{userIds}")
+    public ApiResult<Void> remove(@PathVariable Long[] userIds)
+    {
+        return toAjax(userService.deleteUserByIds(userIds));
+    }
+
+    /**
+     * 重置密码
+     */
+    @PutMapping("/resetPwd")
+    public ApiResult<Void> resetPwd(@RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(userService.resetPwd(user));
+    }
+
+    /**
+     * 状态修改
+     */
+    @PutMapping("/changeStatus")
+    public ApiResult<Void> changeStatus(@RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        user.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(userService.updateUserStatus(user));
+    }
+
+    /**
+     * 根据用户编号获取授权角色
+     */
+    @GetMapping("/authRole/{userId}")
+    public ApiResult<Map<String,Object>> authRole(@PathVariable("userId") Long userId)
+    {
+        Map<String,Object> ajax = new HashMap<>();
+        SysUser user = userService.selectUserById(userId);
+        List<SysRole> roles = roleService.selectRolesByUserId(userId);
+        ajax.put("user", user);
+        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        return ApiResult.success(ajax);
+    }
+
+    /**
+     * 用户授权角色
+     */
+    @PutMapping("/authRole")
+    public ApiResult<Void> insertAuthRole(Long userId, Long[] roleIds)
+    {
+        userService.insertUserAuth(userId, roleIds);
+        return ApiResult.success();
+    }
+}

+ 84 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TenantConfigController.java

@@ -0,0 +1,84 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.system.domain.SysPlatform;
+import com.usky.system.domain.SysTenant;
+import com.usky.system.service.SysPlatformService;
+import com.usky.system.service.SysTenantService;
+import com.usky.system.service.vo.SysTenantOneVo;
+import com.usky.system.service.vo.SysTenantTwoVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 个人中心
+ *
+ * @author ya
+ * @since 2022-05-05
+ */
+@RestController
+@RequestMapping("/tenantConfig")
+public class TenantConfigController {
+
+    @Autowired
+    private SysTenantService sysTenantService;
+
+    @Autowired
+    private SysPlatformService sysPlatformService;
+
+
+    /**
+     * 租户管理-租户单位配置-列表查询
+     *
+     * @param sysTenantOneVo
+     * @return
+     */
+    @PostMapping("getTenantData")
+    public ApiResult<CommonPage<SysTenantTwoVo>> getTenantData(@RequestBody SysTenantOneVo sysTenantOneVo) {
+        return ApiResult.success(sysTenantService.getTenantData(sysTenantOneVo));
+    }
+
+
+    /**
+     * 租户管理-租户单位配置-新增
+     *
+     * @param sysTenant
+     * @return
+     */
+//    @Log(title = "租户管理-单位管理", businessType = BusinessType.INSERT)
+    @PostMapping("addTenantData")
+    public ApiResult<Void> addTenantData(@RequestBody SysTenant sysTenant) {
+        sysTenantService.addTenantData(sysTenant);
+        return ApiResult.success();
+    }
+
+    /**
+     * 租户管理-租户单位配置-修改
+     *
+     * @param sysTenant
+     * @return
+     */
+//    @Log(title = "租户管理-单位管理", businessType = BusinessType.UPDATE)
+    @PostMapping("updateTenantData")
+    public ApiResult<Void> updateTenantData(@RequestBody SysTenant sysTenant) {
+        sysTenantService.updateTenantData(sysTenant);
+        return ApiResult.success();
+    }
+
+
+    /**
+     * 租户管理-租户单位配置-系统平台下拉框数据查询
+     *
+     * @return
+     */
+    @GetMapping("/getPlatformBoxList")
+    public ApiResult<List<SysPlatform>> getPlatformBoxList() {
+        return ApiResult.success(sysPlatformService.getPlatformBoxList());
+    }
+
+}
+

+ 16 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TestController.java

@@ -0,0 +1,16 @@
+package com.usky.system.controller.web;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author yq
+ * @date 2022/6/23 13:12
+ */
+@RestController
+@RequestMapping("/test")
+public class TestController {
+
+
+
+}

+ 117 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TokenController.java

@@ -0,0 +1,117 @@
+package com.usky.system.controller.web;
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.util.JwtUtils;
+import com.usky.common.core.util.StringUtils;
+import com.usky.common.security.auth.AuthUtil;
+import com.usky.common.security.service.TokenService;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.system.model.LoginUser;
+import com.usky.system.service.ISysPermissionService;
+import com.usky.system.service.ISysUserService;
+import com.usky.system.service.SysLoginService;
+import com.usky.system.service.vo.LoginBody;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * token 控制
+ *
+ * @author ruoyi
+ */
+@RestController
+public class TokenController
+{
+    @Autowired
+    private TokenService tokenService;
+
+    @Autowired
+    private SysLoginService sysLoginService;
+
+    @Autowired
+    private ISysUserService sysUserService;
+
+    @Autowired
+    private ISysPermissionService permissionService;
+
+    @PostMapping("login")
+    public ApiResult<?> login(@RequestBody LoginBody form)
+    {
+        // 用户登录
+        LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
+        // 获取登录token
+        return ApiResult.success(tokenService.createToken(userInfo));
+    }
+
+    @PostMapping("login1")
+    public ApiResult<?> login1(@RequestBody LoginBody form)
+    {
+        // 用户登录
+        LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
+        // 获取登录token
+        return ApiResult.success(tokenService.createToken(userInfo));
+    }
+
+    @DeleteMapping("logout")
+    public ApiResult<?> logout(HttpServletRequest request)
+    {
+        String token = SecurityUtils.getToken(request);
+        if (StringUtils.isNotEmpty(token))
+        {
+            String username = JwtUtils.getUserName(token);
+            // 删除用户缓存记录
+            AuthUtil.logoutByToken(token);
+            // 记录用户退出日志
+            sysLoginService.logout(username);
+        }
+        return ApiResult.success();
+    }
+
+    @PostMapping("refresh")
+    public ApiResult<?> refresh(HttpServletRequest request)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        if (Objects.nonNull(loginUser))
+        {
+            // 刷新令牌有效期
+            tokenService.refreshToken(loginUser);
+            return ApiResult.success();
+        }
+        return ApiResult.success();
+    }
+
+    /**
+     * 获取用户信息
+     *
+     * @return 用户信息
+     */
+    @GetMapping("getInfo")
+    public ApiResult getInfo()
+    {
+        Long userId = SecurityUtils.getUserId();
+        // 角色集合
+        Set<String> roles = permissionService.getRolePermission(userId);
+        // 权限集合
+        Set<String> permissions = permissionService.getMenuPermission(userId);
+        Map<String,Object> ajax = new HashMap<>();
+        ajax.put("user", sysUserService.selectUserById(userId));
+        ajax.put("roles", roles);
+        ajax.put("permissions", permissions);
+        return ApiResult.success(ajax);
+    }
+
+
+//    @PostMapping("register")
+//    public ApiResult<?> register(@RequestBody RegisterBody registerBody)
+//    {
+//        // 用户注册
+//        sysLoginService.register(registerBody.getUsername(), registerBody.getPassword());
+//        return ApiResult.success();
+//    }
+}

+ 156 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/UserConfigController.java

@@ -0,0 +1,156 @@
+package com.usky.system.controller.web;
+
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessErrorCode;
+import com.usky.system.domain.SysUser;
+import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.service.ISysUserService;
+import com.usky.system.service.SysTenantService;
+import com.usky.system.service.vo.SysTenantTwoVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+/**
+ * 租户管理-管理员配置
+ *
+ * @author yq
+ */
+@RestController
+@RequestMapping("/userconfig")
+public class UserConfigController extends BaseController {
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private SysTenantService sysTenantService;
+
+
+    /**
+     * 租户管理-管理员配置-新增
+     *
+     * @param user
+     * @return
+     */
+//    @Log(title = "租户管理-管理员配置", businessType = BusinessType.INSERT)
+    @Transactional
+    @PostMapping("/addUserData")
+    public ApiResult<Void> addUserData(@Validated @RequestBody SysUser user) {
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        user.setCreateBy(SecurityUtils.getUsername());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setCreateTime(new Date());
+        user.setUserType("01");
+        user.setFullName(user.getNickName());
+//        user.setStatus("0");
+        user.setDelFlag("0");
+        int row = userService.addUser(user);
+        return toAjax(row);
+    }
+
+
+    /**
+     * 租户管理-管理员配置-修改
+     *
+     * @param user
+     * @return
+     */
+//    @Log(title = "租户管理-管理员配置", businessType = BusinessType.UPDATE)
+    @Transactional
+    @PostMapping("/updateserData")
+    public ApiResult<Void> updateserData(@Validated @RequestBody SysUser user) {
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setUpdateBy(SecurityUtils.getUsername());
+        user.setUpdateTime(new Date());
+        return toAjax(userService.updateUserData(user));
+    }
+
+
+    /**
+     * 租户管理-管理员配置-删除
+     *
+     * @param userId 用户ID
+     * @return
+     */
+//    @Log(title = "租户管理-管理员配置", businessType = BusinessType.DELETE)
+    @GetMapping("/delUsers")
+    public ApiResult<Void> delUsers(@RequestParam Long userId) {
+        SysUser user = new SysUser();
+        if (userId == 0 && userId == null) {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "用户ID不能为空");
+        }
+        user.setUserId(userId);
+        userService.checkUserAllowed(user);
+        user.setUpdateBy(SecurityUtils.getUsername());
+        user.setUpdateTime(new Date());
+        user.setRemark("注销用户");
+        user.setDelFlag("2");
+        return toAjax(userService.updateUserData(user));
+    }
+
+
+    /**
+     * 租户管理-管理员配置-重置密码
+     *
+     * @param newPassword 新密码
+     * @param UserId      用户ID
+     * @return
+     */
+//    @Log(title = "租户管理-管理员配置", businessType = BusinessType.UPDATE)
+    @PutMapping("/updatePwd")
+    public ApiResult updatePwd(String newPassword, Long UserId) {
+        SysUser sysUser = userService.selectUserById(UserId);
+        if (sysUser.getUserId() == 0 && sysUser.getUserId() == null) {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "无此用户,请联系管理员");
+        }
+        if (SecurityUtils.matchesPassword(newPassword, sysUser.getPassword())) {
+            return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新密码不能与旧密码相同");
+        }
+        userService.resetUserPwdOne(UserId, SecurityUtils.encryptPassword(newPassword));
+        return ApiResult.success();
+    }
+
+
+    /**
+     * 租户管理-管理员配置-管理员信息查询
+     *
+     * @param tenantId 租户ID
+     * @param page     当前页
+     * @param size     每页条数
+     * @return
+     */
+    @GetMapping("getUserList")
+    public ApiResult<CommonPage<SysUser>> getUserList(@RequestParam(value = "tenantId", required = false, defaultValue = "0") Integer tenantId,
+                                                      @RequestParam(value = "page", required = false, defaultValue = "0") Integer page,
+                                                      @RequestParam(value = "size", required = false, defaultValue = "0") Integer size,
+                                                      @RequestParam(value = "userId", required = false, defaultValue = "0") long userId) {
+        return ApiResult.success(userService.userList(tenantId, page, size, userId));
+    }
+
+
+    /**
+     * 租户管理-管理员配置-列表查询
+     *
+     * @param tenantName    租户名称
+     * @param tenantManager 租户责任人名称
+     * @param page          当前页
+     * @param size          每页条数
+     * @return
+     */
+    @GetMapping("getTenantDataOne")
+    public ApiResult<CommonPage<SysTenantTwoVo>> getTenantDataOne(@RequestParam(value = "tenantName", required = false) String tenantName,
+                                                                  @RequestParam(value = "tenantManager", required = false) String tenantManager,
+                                                                  @RequestParam(value = "page", required = false, defaultValue = "0") Integer page,
+                                                                  @RequestParam(value = "size", required = false, defaultValue = "0") Integer size) {
+        return ApiResult.success(sysTenantService.getTenantDataOne(tenantName, tenantManager, page, size));
+    }
+
+
+}

+ 68 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/page/PageDomain.java

@@ -0,0 +1,68 @@
+package com.usky.system.controller.web.page;
+
+
+import com.usky.common.core.util.StringUtils;
+
+/**
+ * 分页数据
+ */
+public class PageDomain {
+    /**
+     * 当前记录起始索引
+     */
+    private Integer pageNum;
+
+    /**
+     * 每页显示记录数
+     */
+    private Integer pageSize;
+
+    /**
+     * 排序列
+     */
+    private String orderByColumn;
+    /**
+     * 排序的方向 "desc" 或者 "asc".
+     */
+
+    private String isAsc;
+
+    public String getOrderBy() {
+        if (StringUtils.isBlank(orderByColumn)) {
+            return "";
+        }
+        return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
+    }
+
+    public Integer getPageNum() {
+        return pageNum;
+    }
+
+    public void setPageNum(Integer pageNum) {
+        this.pageNum = pageNum;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public String getOrderByColumn() {
+        return orderByColumn;
+    }
+
+    public void setOrderByColumn(String orderByColumn) {
+        this.orderByColumn = orderByColumn;
+    }
+
+    public String getIsAsc() {
+        return isAsc;
+    }
+
+    public void setIsAsc(String isAsc) {
+        this.isAsc = isAsc;
+    }
+}

+ 80 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/page/TableDataInfo.java

@@ -0,0 +1,80 @@
+package com.usky.system.controller.web.page;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 表格分页数据对象
+ */
+public class TableDataInfo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 总记录数
+     */
+    private long total;
+
+    /**
+     * 列表数据
+     */
+    private List<?> rows;
+
+    /**
+     * 消息状态码
+     */
+    private int code;
+
+    /**
+     * 消息内容
+     */
+    private String msg;
+
+    /**
+     * 表格数据对象
+     */
+    public TableDataInfo() {
+    }
+
+    /**
+     * 分页
+     *
+     * @param list  列表数据
+     * @param total 总记录数
+     */
+    public TableDataInfo(List<?> list, int total) {
+        this.rows = list;
+        this.total = total;
+    }
+
+    public long getTotal() {
+        return total;
+    }
+
+    public void setTotal(long total) {
+        this.total = total;
+    }
+
+    public List<?> getRows() {
+        return rows;
+    }
+
+    public void setRows(List<?> rows) {
+        this.rows = rows;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+}

+ 45 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/page/TableSupport.java

@@ -0,0 +1,45 @@
+package com.usky.system.controller.web.page;
+
+
+import com.usky.common.core.util.ServletUtils;
+
+/**
+ * 表格数据处理
+ */
+public class TableSupport {
+    /**
+     * 当前记录起始索引
+     */
+    public static final String PAGE_NUM = "pageNum";
+
+    /**
+     * 每页显示记录数
+     */
+    public static final String PAGE_SIZE = "pageSize";
+
+    /**
+     * 排序列
+     */
+    public static final String ORDER_BY_COLUMN = "orderByColumn";
+
+    /**
+     * 排序的方向 "desc" 或者 "asc".
+     */
+    public static final String IS_ASC = "isAsc";
+
+    /**
+     * 封装分页对象
+     */
+    public static PageDomain getPageDomain() {
+        PageDomain pageDomain = new PageDomain();
+        pageDomain.setPageNum(ServletUtils.getParameterToInt(PAGE_NUM));
+        pageDomain.setPageSize(ServletUtils.getParameterToInt(PAGE_SIZE));
+        pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));
+        pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
+        return pageDomain;
+    }
+
+    public static PageDomain buildPageRequest() {
+        return getPageDomain();
+    }
+}

+ 107 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysConfig.java

@@ -0,0 +1,107 @@
+package com.usky.system.domain;
+
+
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+
+/**
+ * 参数配置表 sys_config
+ * 
+ * @author yq
+ */
+public class SysConfig extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 参数主键 */
+    private Long configId;
+
+    /** 参数名称 */
+    private String configName;
+
+    /** 参数键名 */
+    private String configKey;
+
+    /** 参数键值 */
+    private String configValue;
+
+    /** 系统内置(Y是 N否) */
+    private String configType;
+
+    public Long getConfigId()
+    {
+        return configId;
+    }
+
+    public void setConfigId(Long configId)
+    {
+        this.configId = configId;
+    }
+
+    @NotBlank(message = "参数名称不能为空")
+    @Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
+    public String getConfigName()
+    {
+        return configName;
+    }
+
+    public void setConfigName(String configName)
+    {
+        this.configName = configName;
+    }
+
+    @NotBlank(message = "参数键名长度不能为空")
+    @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符")
+    public String getConfigKey()
+    {
+        return configKey;
+    }
+
+    public void setConfigKey(String configKey)
+    {
+        this.configKey = configKey;
+    }
+
+    @NotBlank(message = "参数键值不能为空")
+    @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
+    public String getConfigValue()
+    {
+        return configValue;
+    }
+
+    public void setConfigValue(String configValue)
+    {
+        this.configValue = configValue;
+    }
+
+    public String getConfigType()
+    {
+        return configType;
+    }
+
+    public void setConfigType(String configType)
+    {
+        this.configType = configType;
+    }
+    
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("configId", getConfigId())
+            .append("configName", getConfigName())
+            .append("configKey", getConfigKey())
+            .append("configValue", getConfigValue())
+            .append("configType", getConfigType())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 225 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysDept.java

@@ -0,0 +1,225 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 部门表 sys_dept
+ * 
+ * @author yq
+ */
+public class SysDept extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 部门ID */
+    @TableId(value = "dept_id")
+    private Long deptId;
+
+    /** 父部门ID */
+    private Long parentId;
+
+    /** 祖级列表 */
+    private String ancestors;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /** 显示顺序 */
+    private String orderNum;
+
+    /** 负责人 */
+    private String leader;
+
+    /** 联系电话 */
+    private String phone;
+
+    /** 邮箱 */
+    private String email;
+
+    /** 部门状态:0正常,1停用 */
+    private String status;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 父部门名称 */
+    @TableField(exist = false)
+    private String parentName;
+
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
+
+    public Integer getTenantId()
+    {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId)
+    {
+        this.tenantId = tenantId;
+    }
+
+    /** 子部门 */
+    @TableField(exist = false)
+    private List<SysDept> children = new ArrayList<SysDept>();
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getParentId()
+    {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId)
+    {
+        this.parentId = parentId;
+    }
+
+    public String getAncestors()
+    {
+        return ancestors;
+    }
+
+    public void setAncestors(String ancestors)
+    {
+        this.ancestors = ancestors;
+    }
+
+    @NotBlank(message = "部门名称不能为空")
+    @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
+    public String getDeptName()
+    {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName)
+    {
+        this.deptName = deptName;
+    }
+
+    @NotBlank(message = "显示顺序不能为空")
+    public String getOrderNum()
+    {
+        return orderNum;
+    }
+
+    public void setOrderNum(String orderNum)
+    {
+        this.orderNum = orderNum;
+    }
+
+    public String getLeader()
+    {
+        return leader;
+    }
+
+    public void setLeader(String leader)
+    {
+        this.leader = leader;
+    }
+
+    @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
+    public String getPhone()
+    {
+        return phone;
+    }
+
+    public void setPhone(String phone)
+    {
+        this.phone = phone;
+    }
+
+    @Email(message = "邮箱格式不正确")
+    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public void setEmail(String email)
+    {
+        this.email = email;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getParentName()
+    {
+        return parentName;
+    }
+
+    public void setParentName(String parentName)
+    {
+        this.parentName = parentName;
+    }
+
+
+    public List<SysDept> getChildren()
+    {
+        return children;
+    }
+
+    public void setChildren(List<SysDept> children)
+    {
+        this.children = children;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("deptId", getDeptId())
+            .append("parentId", getParentId())
+            .append("ancestors", getAncestors())
+            .append("deptName", getDeptName())
+            .append("orderNum", getOrderNum())
+            .append("leader", getLeader())
+            .append("phone", getPhone())
+            .append("email", getEmail())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 170 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysDictData.java

@@ -0,0 +1,170 @@
+package com.usky.system.domain;
+
+
+import com.usky.common.core.bean.BaseEntity;
+import com.usky.system.domain.constants.UserConstants;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+
+/**
+ * 字典数据表 sys_dict_data
+ * 
+ * @author yq
+ */
+public class SysDictData extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 字典编码 */
+    private Long dictCode;
+
+    /** 字典排序 */
+    private Long dictSort;
+
+    /** 字典标签 */
+    private String dictLabel;
+
+    /** 字典键值 */
+    private String dictValue;
+
+    /** 字典类型 */
+    private String dictType;
+
+    /** 样式属性(其他样式扩展) */
+    private String cssClass;
+
+    /** 表格字典样式 */
+    private String listClass;
+
+    /** 是否默认(Y是 N否) */
+    private String isDefault;
+
+    /** 状态(0正常 1停用) */
+    private String status;
+
+    public Long getDictCode()
+    {
+        return dictCode;
+    }
+
+    public void setDictCode(Long dictCode)
+    {
+        this.dictCode = dictCode;
+    }
+
+    public Long getDictSort()
+    {
+        return dictSort;
+    }
+
+    public void setDictSort(Long dictSort)
+    {
+        this.dictSort = dictSort;
+    }
+
+    @NotBlank(message = "字典标签不能为空")
+    @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
+    public String getDictLabel()
+    {
+        return dictLabel;
+    }
+
+    public void setDictLabel(String dictLabel)
+    {
+        this.dictLabel = dictLabel;
+    }
+
+    @NotBlank(message = "字典键值不能为空")
+    @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
+    public String getDictValue()
+    {
+        return dictValue;
+    }
+
+    public void setDictValue(String dictValue)
+    {
+        this.dictValue = dictValue;
+    }
+
+    @NotBlank(message = "字典类型不能为空")
+    @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
+    public String getDictType()
+    {
+        return dictType;
+    }
+
+    public void setDictType(String dictType)
+    {
+        this.dictType = dictType;
+    }
+
+    @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
+    public String getCssClass()
+    {
+        return cssClass;
+    }
+
+    public void setCssClass(String cssClass)
+    {
+        this.cssClass = cssClass;
+    }
+
+    public String getListClass()
+    {
+        return listClass;
+    }
+
+    public void setListClass(String listClass)
+    {
+        this.listClass = listClass;
+    }
+
+    public boolean getDefault()
+    {
+        return UserConstants.YES.equals(this.isDefault) ? true : false;
+    }
+
+    public String getIsDefault()
+    {
+        return isDefault;
+    }
+
+    public void setIsDefault(String isDefault)
+    {
+        this.isDefault = isDefault;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+    
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("dictCode", getDictCode())
+            .append("dictSort", getDictSort())
+            .append("dictLabel", getDictLabel())
+            .append("dictValue", getDictValue())
+            .append("dictType", getDictType())
+            .append("cssClass", getCssClass())
+            .append("listClass", getListClass())
+            .append("isDefault", getIsDefault())
+            .append("status", getStatus())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 104 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysDictType.java

@@ -0,0 +1,104 @@
+package com.usky.system.domain;
+
+
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+
+/**
+ * 字典类型表 sys_dict_type
+ * 
+ * @author yq
+ */
+public class SysDictType extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 字典主键 */
+    private Long dictId;
+
+    /** 字典名称 */
+    private String dictName;
+
+    /** 字典类型 */
+    private String dictType;
+
+    /** 状态(0正常 1停用) */
+    private String status;
+
+    /** 租户ID */
+    private Integer tenantId;
+
+    public Integer getTenantId()
+    {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId)
+    {
+        this.tenantId = tenantId;
+    }
+
+    public Long getDictId()
+    {
+        return dictId;
+    }
+
+    public void setDictId(Long dictId)
+    {
+        this.dictId = dictId;
+    }
+
+    @NotBlank(message = "字典名称不能为空")
+    @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
+    public String getDictName()
+    {
+        return dictName;
+    }
+
+    public void setDictName(String dictName)
+    {
+        this.dictName = dictName;
+    }
+
+    @NotBlank(message = "字典类型不能为空")
+    @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
+    public String getDictType()
+    {
+        return dictType;
+    }
+
+    public void setDictType(String dictType)
+    {
+        this.dictType = dictType;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+    
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("dictId", getDictId())
+            .append("dictName", getDictName())
+            .append("dictType", getDictType())
+            .append("status", getStatus())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 125 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysLogininfor.java

@@ -0,0 +1,125 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 系统访问记录表 sys_logininfor
+ *
+ * @author ruoyi
+ */
+public class SysLogininfor
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private Long infoId;
+
+    /** 用户账号 */
+    private String userName;
+
+    /** 状态 0成功 1失败 */
+    private String status;
+
+    /** 地址 */
+    private String ipaddr;
+
+    /** 描述 */
+    private String msg;
+
+    /** 访问时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date accessTime;
+
+    public String getSearchValue() {
+        return searchValue;
+    }
+
+    public void setSearchValue(String searchValue) {
+        this.searchValue = searchValue;
+    }
+
+    public Map<String, Object> getParams() {
+        if (this.params == null) {
+            this.params = new HashMap();
+        }
+
+        return this.params;
+    }
+
+    public void setParams(Map<String, Object> params) {
+        this.params = params;
+    }
+
+    /** 搜索值 */
+    @TableField(exist = false)
+    private String searchValue;
+
+    /** 请求参数 */
+    @TableField(exist = false)
+    private Map<String, Object> params;
+
+    public Long getInfoId()
+    {
+        return infoId;
+    }
+
+    public void setInfoId(Long infoId)
+    {
+        this.infoId = infoId;
+    }
+
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getIpaddr()
+    {
+        return ipaddr;
+    }
+
+    public void setIpaddr(String ipaddr)
+    {
+        this.ipaddr = ipaddr;
+    }
+
+    public String getMsg()
+    {
+        return msg;
+    }
+
+    public void setMsg(String msg)
+    {
+        this.msg = msg;
+    }
+
+    public Date getAccessTime()
+    {
+        return accessTime;
+    }
+
+    public void setAccessTime(Date accessTime)
+    {
+        this.accessTime = accessTime;
+    }
+}

+ 250 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysMenu.java

@@ -0,0 +1,250 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 菜单权限表 sys_menu
+ * 
+ * @author yq
+ */
+public class SysMenu extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 菜单ID */
+    private Long menuId;
+
+    /** 菜单名称 */
+    private String menuName;
+
+    /** 父菜单名称 */
+    @TableField(exist = false)
+    private String parentName;
+
+    /** 父菜单ID */
+    private Long parentId;
+
+    /** 显示顺序 */
+    private String orderNum;
+
+    /** 路由地址 */
+    private String path;
+
+    /** 组件路径 */
+    private String component;
+
+    /** 是否为外链(0是 1否) */
+    private String isFrame;
+
+    /** 是否缓存(0缓存 1不缓存) */
+    private String isCache;
+
+    /** 类型(M目录 C菜单 F按钮) */
+    private String menuType;
+
+    /** 显示状态(0显示 1隐藏) */
+    private String visible;
+    
+    /** 菜单状态(0显示 1隐藏) */
+    private String status;
+
+    /** 权限字符串 */
+    private String perms;
+
+    /** 菜单图标 */
+    private String icon;
+
+    /** 子菜单 */
+    @TableField(exist = false)
+    private List<SysMenu> children = new ArrayList<SysMenu>();
+
+    public Long getMenuId()
+    {
+        return menuId;
+    }
+
+    public void setMenuId(Long menuId)
+    {
+        this.menuId = menuId;
+    }
+
+    @NotBlank(message = "菜单名称不能为空")
+    @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
+    public String getMenuName()
+    {
+        return menuName;
+    }
+
+    public void setMenuName(String menuName)
+    {
+        this.menuName = menuName;
+    }
+
+    public String getParentName()
+    {
+        return parentName;
+    }
+
+    public void setParentName(String parentName)
+    {
+        this.parentName = parentName;
+    }
+
+    public Long getParentId()
+    {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId)
+    {
+        this.parentId = parentId;
+    }
+
+    @NotBlank(message = "显示顺序不能为空")
+    public String getOrderNum()
+    {
+        return orderNum;
+    }
+
+    public void setOrderNum(String orderNum)
+    {
+        this.orderNum = orderNum;
+    }
+
+    @Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
+    public String getPath()
+    {
+        return path;
+    }
+
+    public void setPath(String path)
+    {
+        this.path = path;
+    }
+
+    @Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
+    public String getComponent()
+    {
+        return component;
+    }
+
+    public void setComponent(String component)
+    {
+        this.component = component;
+    }
+
+    public String getIsFrame()
+    {
+        return isFrame;
+    }
+
+    public void setIsFrame(String isFrame)
+    {
+        this.isFrame = isFrame;
+    }
+
+    public String getIsCache()
+    {
+        return isCache;
+    }
+
+    public void setIsCache(String isCache)
+    {
+        this.isCache = isCache;
+    }
+
+    @NotBlank(message = "菜单类型不能为空")
+    public String getMenuType()
+    {
+        return menuType;
+    }
+
+    public void setMenuType(String menuType)
+    {
+        this.menuType = menuType;
+    }
+
+    public String getVisible()
+    {
+        return visible;
+    }
+
+    public void setVisible(String visible)
+    {
+        this.visible = visible;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
+    public String getPerms()
+    {
+        return perms;
+    }
+
+    public void setPerms(String perms)
+    {
+        this.perms = perms;
+    }
+
+    public String getIcon()
+    {
+        return icon;
+    }
+
+    public void setIcon(String icon)
+    {
+        this.icon = icon;
+    }
+
+    public List<SysMenu> getChildren()
+    {
+        return children;
+    }
+
+    public void setChildren(List<SysMenu> children)
+    {
+        this.children = children;
+    }
+    
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("menuId", getMenuId())
+            .append("menuName", getMenuName())
+            .append("parentId", getParentId())
+            .append("orderNum", getOrderNum())
+            .append("path", getPath())
+            .append("component", getComponent())
+            .append("isFrame", getIsFrame())
+            .append("IsCache", getIsCache())
+            .append("menuType", getMenuType())
+            .append("visible", getVisible())
+            .append("status ", getStatus())
+            .append("perms", getPerms())
+            .append("icon", getIcon())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 103 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysNotice.java

@@ -0,0 +1,103 @@
+package com.usky.system.domain;
+
+
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+
+/**
+ * 通知公告表 sys_notice
+ * 
+ * @author yq
+ */
+public class SysNotice extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 公告ID */
+    private Long noticeId;
+
+    /** 公告标题 */
+    private String noticeTitle;
+
+    /** 公告类型(1通知 2公告) */
+    private String noticeType;
+
+    /** 公告内容 */
+    private String noticeContent;
+
+    /** 公告状态(0正常 1关闭) */
+    private String status;
+
+    public Long getNoticeId()
+    {
+        return noticeId;
+    }
+
+    public void setNoticeId(Long noticeId)
+    {
+        this.noticeId = noticeId;
+    }
+
+    public void setNoticeTitle(String noticeTitle)
+    {
+        this.noticeTitle = noticeTitle;
+    }
+
+    @NotBlank(message = "公告标题不能为空")
+    @Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
+    public String getNoticeTitle()
+    {
+        return noticeTitle;
+    }
+
+    public void setNoticeType(String noticeType)
+    {
+        this.noticeType = noticeType;
+    }
+
+    public String getNoticeType()
+    {
+        return noticeType;
+    }
+
+    public void setNoticeContent(String noticeContent)
+    {
+        this.noticeContent = noticeContent;
+    }
+
+    public String getNoticeContent()
+    {
+        return noticeContent;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("noticeId", getNoticeId())
+            .append("noticeTitle", getNoticeTitle())
+            .append("noticeType", getNoticeType())
+            .append("noticeContent", getNoticeContent())
+            .append("status", getStatus())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 271 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysOperLog.java

@@ -0,0 +1,271 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * 操作日志记录表 oper_log
+ * 
+ * @author yq
+ */
+public class SysOperLog
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 日志主键 */
+    private Long operId;
+
+    /** 操作模块 */
+    private String title;
+
+    /** 业务类型(0其它 1新增 2修改 3删除) */
+    private Integer businessType;
+
+    /** 业务类型数组 */
+    @TableField(exist = false)
+    private Integer[] businessTypes;
+
+    /** 请求方法 */
+    private String method;
+
+    /** 请求方式 */
+    private String requestMethod;
+
+    /** 操作类别(0其它 1后台用户 2手机端用户) */
+    private Integer operatorType;
+
+    /** 操作人员 */
+    private String operName;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /** 请求url */
+    private String operUrl;
+
+    /** 操作地址 */
+    private String operIp;
+
+    /** 操作地点 */
+    private String operLocation;
+
+    /** 请求参数 */
+    private String operParam;
+
+    /** 返回参数 */
+    private String jsonResult;
+
+    /** 操作状态(0正常 1异常) */
+    private Integer status;
+
+    /** 错误消息 */
+    private String errorMsg;
+
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date operTime;
+
+    public String getSearchValue() {
+        return searchValue;
+    }
+
+    public void setSearchValue(String searchValue) {
+        this.searchValue = searchValue;
+    }
+
+    public Map<String, Object> getParams() {
+        if (this.params == null) {
+            this.params = new HashMap();
+        }
+
+        return this.params;
+    }
+
+    public void setParams(Map<String, Object> params) {
+        this.params = params;
+    }
+
+    /** 搜索值 */
+    @TableField(exist = false)
+    private String searchValue;
+
+    /** 请求参数 */
+    @TableField(exist = false)
+    private Map<String, Object> params;
+
+
+    public Long getOperId()
+    {
+        return operId;
+    }
+
+    public void setOperId(Long operId)
+    {
+        this.operId = operId;
+    }
+
+    public String getTitle()
+    {
+        return title;
+    }
+
+    public void setTitle(String title)
+    {
+        this.title = title;
+    }
+
+    public Integer getBusinessType()
+    {
+        return businessType;
+    }
+
+    public void setBusinessType(Integer businessType)
+    {
+        this.businessType = businessType;
+    }
+
+    public Integer[] getBusinessTypes()
+    {
+        return businessTypes;
+    }
+
+    public void setBusinessTypes(Integer[] businessTypes)
+    {
+        this.businessTypes = businessTypes;
+    }
+
+    public String getMethod()
+    {
+        return method;
+    }
+
+    public void setMethod(String method)
+    {
+        this.method = method;
+    }
+
+    public String getRequestMethod()
+    {
+        return requestMethod;
+    }
+
+    public void setRequestMethod(String requestMethod)
+    {
+        this.requestMethod = requestMethod;
+    }
+
+    public Integer getOperatorType()
+    {
+        return operatorType;
+    }
+
+    public void setOperatorType(Integer operatorType)
+    {
+        this.operatorType = operatorType;
+    }
+
+    public String getOperName()
+    {
+        return operName;
+    }
+
+    public void setOperName(String operName)
+    {
+        this.operName = operName;
+    }
+
+    public String getDeptName()
+    {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName)
+    {
+        this.deptName = deptName;
+    }
+
+    public String getOperUrl()
+    {
+        return operUrl;
+    }
+
+    public void setOperUrl(String operUrl)
+    {
+        this.operUrl = operUrl;
+    }
+
+    public String getOperIp()
+    {
+        return operIp;
+    }
+
+    public void setOperIp(String operIp)
+    {
+        this.operIp = operIp;
+    }
+
+    public String getOperLocation()
+    {
+        return operLocation;
+    }
+
+    public void setOperLocation(String operLocation)
+    {
+        this.operLocation = operLocation;
+    }
+
+    public String getOperParam()
+    {
+        return operParam;
+    }
+
+    public void setOperParam(String operParam)
+    {
+        this.operParam = operParam;
+    }
+
+    public String getJsonResult()
+    {
+        return jsonResult;
+    }
+
+    public void setJsonResult(String jsonResult)
+    {
+        this.jsonResult = jsonResult;
+    }
+
+    public Integer getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(Integer status)
+    {
+        this.status = status;
+    }
+
+    public String getErrorMsg()
+    {
+        return errorMsg;
+    }
+
+    public void setErrorMsg(String errorMsg)
+    {
+        this.errorMsg = errorMsg;
+    }
+
+    public Date getOperTime()
+    {
+        return operTime;
+    }
+
+    public void setOperTime(Date operTime)
+    {
+        this.operTime = operTime;
+    }
+}

+ 76 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysPlatform.java

@@ -0,0 +1,76 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 平台信息表
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysPlatform implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 平台名称
+     */
+    private String platformName;
+
+    /**
+     * 平台状态(0 停用 1 启用)
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 激活码
+     */
+    @TableField("tenantKey")
+    private String tenantKey;
+
+
+}

+ 35 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysPlatformMenu.java

@@ -0,0 +1,35 @@
+package com.usky.system.domain;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 平台和菜单关联表
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysPlatformMenu implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 平台ID
+     */
+    private Long platformId;
+
+    /**
+     * 菜单ID
+     */
+    private Long menuId;
+
+
+}

+ 134 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysPost.java

@@ -0,0 +1,134 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+
+/**
+ * 岗位表 sys_post
+ * 
+ * @author yq
+ */
+public class SysPost extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 岗位序号 */
+    private Long postId;
+
+    /** 岗位编码 */
+    private String postCode;
+
+    /** 岗位名称 */
+    private String postName;
+
+    /** 岗位排序 */
+    private String postSort;
+
+    /** 状态(0正常 1停用) */
+    private String status;
+
+    /** 租户ID */
+    private Integer tenantId;
+
+    public Integer getTenantId()
+    {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId)
+    {
+        this.tenantId = tenantId;
+    }
+
+
+    /** 用户是否存在此岗位标识 默认不存在 */
+    @TableField(exist = false)
+    private boolean flag = false;
+
+    public Long getPostId()
+    {
+        return postId;
+    }
+
+    public void setPostId(Long postId)
+    {
+        this.postId = postId;
+    }
+
+    @NotBlank(message = "岗位编码不能为空")
+    @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
+    public String getPostCode()
+    {
+        return postCode;
+    }
+
+    public void setPostCode(String postCode)
+    {
+        this.postCode = postCode;
+    }
+
+    @NotBlank(message = "岗位名称不能为空")
+    @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
+    public String getPostName()
+    {
+        return postName;
+    }
+
+    public void setPostName(String postName)
+    {
+        this.postName = postName;
+    }
+
+    @NotBlank(message = "显示顺序不能为空")
+    public String getPostSort()
+    {
+        return postSort;
+    }
+
+    public void setPostSort(String postSort)
+    {
+        this.postSort = postSort;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public boolean isFlag()
+    {
+        return flag;
+    }
+
+    public void setFlag(boolean flag)
+    {
+        this.flag = flag;
+    }
+    
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("postId", getPostId())
+            .append("postCode", getPostCode())
+            .append("postName", getPostName())
+            .append("postSort", getPostSort())
+            .append("status", getStatus())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 234 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysRole.java

@@ -0,0 +1,234 @@
+package com.usky.system.domain;
+
+
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+
+/**
+ * 角色表 sys_role
+ * 
+ * @author yq
+ */
+public class SysRole extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 角色ID */
+    private Long roleId;
+
+    /** 角色名称 */
+    private String roleName;
+
+    /** 角色权限 */
+    private String roleKey;
+
+    /** 角色排序 */
+    private String roleSort;
+
+    /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */
+    private String dataScope;
+
+    /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */
+    private boolean menuCheckStrictly;
+
+    /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */
+    private boolean deptCheckStrictly;
+
+    /** 角色状态(0正常 1停用) */
+    private String status;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 用户是否存在此角色标识 默认不存在 */
+    private boolean flag = false;
+
+    /** 菜单组 */
+    private Long[] menuIds;
+
+    /** 部门组(数据权限) */
+    private Long[] deptIds;
+
+    /** 租户ID */
+    private Integer tenantId;
+
+    public SysRole()
+    {
+
+    }
+
+    public Integer getTenantId()
+    {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId)
+    {
+        this.tenantId = tenantId;
+    }
+
+    public SysRole(Long roleId)
+    {
+        this.roleId = roleId;
+    }
+
+    public Long getRoleId()
+    {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId)
+    {
+        this.roleId = roleId;
+    }
+
+    public boolean isAdmin()
+    {
+        return isAdmin(this.roleId);
+    }
+
+    public static boolean isAdmin(Long roleId)
+    {
+        return roleId != null && 1L == roleId;
+    }
+
+    @NotBlank(message = "角色名称不能为空")
+    @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
+    public String getRoleName()
+    {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName)
+    {
+        this.roleName = roleName;
+    }
+
+    @NotBlank(message = "权限字符不能为空")
+    @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
+    public String getRoleKey()
+    {
+        return roleKey;
+    }
+
+    public void setRoleKey(String roleKey)
+    {
+        this.roleKey = roleKey;
+    }
+
+    @NotBlank(message = "显示顺序不能为空")
+    public String getRoleSort()
+    {
+        return roleSort;
+    }
+
+    public void setRoleSort(String roleSort)
+    {
+        this.roleSort = roleSort;
+    }
+
+    public String getDataScope()
+    {
+        return dataScope;
+    }
+
+    public void setDataScope(String dataScope)
+    {
+        this.dataScope = dataScope;
+    }
+
+    public boolean isMenuCheckStrictly()
+    {
+        return menuCheckStrictly;
+    }
+
+    public void setMenuCheckStrictly(boolean menuCheckStrictly)
+    {
+        this.menuCheckStrictly = menuCheckStrictly;
+    }
+
+    public boolean isDeptCheckStrictly()
+    {
+        return deptCheckStrictly;
+    }
+
+    public void setDeptCheckStrictly(boolean deptCheckStrictly)
+    {
+        this.deptCheckStrictly = deptCheckStrictly;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public boolean isFlag()
+    {
+        return flag;
+    }
+
+    public void setFlag(boolean flag)
+    {
+        this.flag = flag;
+    }
+
+    public Long[] getMenuIds()
+    {
+        return menuIds;
+    }
+
+    public void setMenuIds(Long[] menuIds)
+    {
+        this.menuIds = menuIds;
+    }
+
+    public Long[] getDeptIds()
+    {
+        return deptIds;
+    }
+
+    public void setDeptIds(Long[] deptIds)
+    {
+        this.deptIds = deptIds;
+    }
+    
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("roleId", getRoleId())
+            .append("roleName", getRoleName())
+            .append("roleKey", getRoleKey())
+            .append("roleSort", getRoleSort())
+            .append("dataScope", getDataScope())
+            .append("menuCheckStrictly", isMenuCheckStrictly())
+            .append("deptCheckStrictly", isDeptCheckStrictly())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 46 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysRoleDept.java

@@ -0,0 +1,46 @@
+package com.usky.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 角色和部门关联 sys_role_dept
+ * 
+ * @author yq
+ */
+public class SysRoleDept
+{
+    /** 角色ID */
+    private Long roleId;
+    
+    /** 部门ID */
+    private Long deptId;
+
+    public Long getRoleId()
+    {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId)
+    {
+        this.roleId = roleId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("roleId", getRoleId())
+            .append("deptId", getDeptId())
+            .toString();
+    }
+}

+ 46 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysRoleMenu.java

@@ -0,0 +1,46 @@
+package com.usky.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 角色和菜单关联 sys_role_menu
+ * 
+ * @author yq
+ */
+public class SysRoleMenu
+{
+    /** 角色ID */
+    private Long roleId;
+    
+    /** 菜单ID */
+    private Long menuId;
+
+    public Long getRoleId()
+    {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId)
+    {
+        this.roleId = roleId;
+    }
+
+    public Long getMenuId()
+    {
+        return menuId;
+    }
+
+    public void setMenuId(Long menuId)
+    {
+        this.menuId = menuId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("roleId", getRoleId())
+            .append("menuId", getMenuId())
+            .toString();
+    }
+}

+ 118 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysTenant.java

@@ -0,0 +1,118 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 租户信息表
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysTenant implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 租户ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 租户编号
+     */
+    private String tenantCode;
+
+    /**
+     * 租户名称
+     */
+    private String tenantName;
+
+    /**
+     * 租户负责人
+     */
+    private String tenantManager;
+
+    /**
+     * 租户类型(0 试用租户  1 正式租户)
+     */
+    private String tenantType;
+
+    /**
+     * 租户站点域名
+     */
+    private String domain;
+
+    /**
+     * 租户邮箱
+     */
+    private String email;
+
+    /**
+     * 手机号码
+     */
+    private String phoneNumber;
+
+    /**
+     * 联系地址
+     */
+    private String address;
+
+    /**
+     * 地理位置
+     */
+    private String geoPosition;
+
+    /**
+     * 有效期限
+     */
+    private String tenantTerm;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 租户状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 系统名称
+     */
+    private String systemName;
+
+}

+ 139 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysTenantConfig.java

@@ -0,0 +1,139 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 租户配置表
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysTenantConfig implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 租户ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
+
+    /**
+     * 租户名称
+     */
+    private String loginTitle;
+
+    /**
+     * 登录页log
+     */
+    private String loginLogo;
+
+    /**
+     * 登录页背景地址
+     */
+    private String loginBackUrl;
+
+    /**
+     * 登录页底部名称
+     */
+    private String loginFooter;
+
+    /**
+     * 登录类型
+     */
+    private String loginType;
+
+    /**
+     * 中间页logo地址
+     */
+    private String middleLogo;
+
+    /**
+     * 中间页背景URL
+     */
+    private String middleBackUrl;
+
+    /**
+     * 中间页标题
+     */
+    private String middleTitle;
+
+    /**
+     * 中间页底部名称
+     */
+    private String middleFooter;
+
+    /**
+     * 主页logo地址
+     */
+    private String homeLogo;
+
+    /**
+     * 主页默认访问地址
+     */
+    private String homePageUrl;
+
+    /**
+     * 主页导航布局
+     */
+    private String homeLayout;
+
+    /**
+     * 主页主题样式
+     */
+    private String homeStyle;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 标签页图标
+     */
+    private String labelIcon;
+
+    /**
+     * 是否开启中间页:0 否 1 是
+     */
+    private Integer middleStatus;
+
+    /**
+     * 大屏路径
+     */
+    private String largeScreenUrl;
+
+
+}

+ 37 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysTenantMenu.java

@@ -0,0 +1,37 @@
+package com.usky.system.domain;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 租户和菜单关联表
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysTenantMenu implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 租户ID
+     */
+    private Long tenantId;
+
+    /**
+     * 菜单ID
+     */
+    private Long menuId;
+
+    private String menuAliasName;
+
+
+}

+ 384 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysUser.java

@@ -0,0 +1,384 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.usky.common.core.bean.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 用户对象 sys_user
+ * 
+ * @author yq
+ */
+public class SysUser extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 用户ID */
+    @TableId
+    private Long userId;
+
+    /** 部门ID */
+    private Long deptId;
+
+    /** 用户账号 */
+    private String userName;
+
+    /** 用户昵称 */
+    private String nickName;
+
+    /** 用户邮箱 */
+    private String email;
+
+    /** 手机号码 */
+    private String phonenumber;
+
+    /** 用户性别 */
+    private String sex;
+
+    /** 用户头像 */
+    private String avatar;
+
+    /** 密码 */
+    private String password;
+
+    /** 盐加密 */
+    @TableField(exist = false)
+    private String salt;
+
+    /** 帐号状态(0正常 1停用) */
+    private String status;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 最后登录IP */
+    private String loginIp;
+
+    /** 最后登录时间 */
+    private Date loginDate;
+
+    /** 部门对象 */
+    @TableField(exist = false)
+    private SysDeptVO dept;
+
+    /** 角色对象 */
+    @TableField(exist = false)
+    private List<SysRoleVO> roles;
+
+    /** 角色组 */
+    @TableField(exist = false)
+    private Long[] roleIds;
+
+    /** 岗位组 */
+    @TableField(exist = false)
+    private Long[] postIds;
+
+    /** 角色ID */
+    @TableField(exist = false)
+    private Long roleId;
+
+    /** 租户ID */
+    private Integer tenantId;
+
+    /** 地址 */
+    private String address;
+
+    /** 用户类型 */
+    private String userType;
+
+    /** 姓名 */
+    private String fullName;
+
+    public SysUser()
+    {
+
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public Integer getTenantId()
+    {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId)
+    {
+        this.tenantId = tenantId;
+    }
+
+    public SysUser(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId()
+    {
+        return userId;
+    }
+
+    public void setUserId(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public String getUserType()
+    {
+        return userType;
+    }
+
+    public void setUserType(String userType)
+    {
+        this.userType = userType;
+    }
+
+    public boolean isAdmin()
+    {
+        return isAdmin(this.userId);
+    }
+
+    public static boolean isAdmin(Long userId)
+    {
+        return userId != null && 1L == userId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
+    public String getNickName()
+    {
+        return nickName;
+    }
+
+    public void setNickName(String nickName)
+    {
+        this.nickName = nickName;
+    }
+
+    @NotBlank(message = "用户账号不能为空")
+    @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    @Email(message = "邮箱格式不正确")
+    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public void setEmail(String email)
+    {
+        this.email = email;
+    }
+
+    @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
+    public String getPhonenumber()
+    {
+        return phonenumber;
+    }
+
+    public void setPhonenumber(String phonenumber)
+    {
+        this.phonenumber = phonenumber;
+    }
+
+    public String getSex()
+    {
+        return sex;
+    }
+
+    public void setSex(String sex)
+    {
+        this.sex = sex;
+    }
+
+    public String getFullName()
+    {
+        return fullName;
+    }
+
+    public void setFullName(String fullName)
+    {
+        this.fullName = fullName;
+    }
+
+    public String getAvatar()
+    {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar)
+    {
+        this.avatar = avatar;
+    }
+
+    @JsonIgnore
+    @JsonProperty
+    public String getPassword()
+    {
+        return password;
+    }
+
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+
+    public String getSalt()
+    {
+        return salt;
+    }
+
+    public void setSalt(String salt)
+    {
+        this.salt = salt;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getLoginIp()
+    {
+        return loginIp;
+    }
+
+    public void setLoginIp(String loginIp)
+    {
+        this.loginIp = loginIp;
+    }
+
+    public Date getLoginDate()
+    {
+        return loginDate;
+    }
+
+    public void setLoginDate(Date loginDate)
+    {
+        this.loginDate = loginDate;
+    }
+
+    public SysDeptVO getDept()
+    {
+        return dept;
+    }
+
+    public void setDept(SysDeptVO dept)
+    {
+        this.dept = dept;
+    }
+
+    public List<SysRoleVO> getRoles()
+    {
+        return roles;
+    }
+
+    public void setRoles(List<SysRoleVO> roles)
+    {
+        this.roles = roles;
+    }
+
+    public Long[] getRoleIds()
+    {
+        return roleIds;
+    }
+
+    public void setRoleIds(Long[] roleIds)
+    {
+        this.roleIds = roleIds;
+    }
+
+    public Long[] getPostIds()
+    {
+        return postIds;
+    }
+
+    public void setPostIds(Long[] postIds)
+    {
+        this.postIds = postIds;
+    }
+
+    public Long getRoleId()
+    {
+        return 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("salt", getSalt())
+            .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();
+    }
+}

+ 113 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysUserOnline.java

@@ -0,0 +1,113 @@
+package com.usky.system.domain;
+
+/**
+ * 当前在线会话
+ * 
+ * @author yq
+ */
+public class SysUserOnline
+{
+    /** 会话编号 */
+    private String tokenId;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /** 用户名称 */
+    private String userName;
+
+    /** 登录IP地址 */
+    private String ipaddr;
+
+    /** 登录地址 */
+    private String loginLocation;
+
+    /** 浏览器类型 */
+    private String browser;
+
+    /** 操作系统 */
+    private String os;
+
+    /** 登录时间 */
+    private Long loginTime;
+
+    public String getTokenId()
+    {
+        return tokenId;
+    }
+
+    public void setTokenId(String tokenId)
+    {
+        this.tokenId = tokenId;
+    }
+
+    public String getDeptName()
+    {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName)
+    {
+        this.deptName = deptName;
+    }
+
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    public String getIpaddr()
+    {
+        return ipaddr;
+    }
+
+    public void setIpaddr(String ipaddr)
+    {
+        this.ipaddr = ipaddr;
+    }
+
+    public String getLoginLocation()
+    {
+        return loginLocation;
+    }
+
+    public void setLoginLocation(String loginLocation)
+    {
+        this.loginLocation = loginLocation;
+    }
+
+    public String getBrowser()
+    {
+        return browser;
+    }
+
+    public void setBrowser(String browser)
+    {
+        this.browser = browser;
+    }
+
+    public String getOs()
+    {
+        return os;
+    }
+
+    public void setOs(String os)
+    {
+        this.os = os;
+    }
+
+    public Long getLoginTime()
+    {
+        return loginTime;
+    }
+
+    public void setLoginTime(Long loginTime)
+    {
+        this.loginTime = loginTime;
+    }
+}

+ 46 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysUserPost.java

@@ -0,0 +1,46 @@
+package com.usky.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 用户和岗位关联 sys_user_post
+ * 
+ * @author yq
+ */
+public class SysUserPost
+{
+    /** 用户ID */
+    private Long userId;
+    
+    /** 岗位ID */
+    private Long postId;
+
+    public Long getUserId()
+    {
+        return userId;
+    }
+
+    public void setUserId(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public Long getPostId()
+    {
+        return postId;
+    }
+
+    public void setPostId(Long postId)
+    {
+        this.postId = postId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("userId", getUserId())
+            .append("postId", getPostId())
+            .toString();
+    }
+}

+ 46 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysUserRole.java

@@ -0,0 +1,46 @@
+package com.usky.system.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 用户和角色关联 sys_user_role
+ * 
+ * @author yq
+ */
+public class SysUserRole
+{
+    /** 用户ID */
+    private Long userId;
+    
+    /** 角色ID */
+    private Long roleId;
+
+    public Long getUserId()
+    {
+        return userId;
+    }
+
+    public void setUserId(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public Long getRoleId()
+    {
+        return 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("roleId", getRoleId())
+            .toString();
+    }
+}

+ 81 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/constants/UserConstants.java

@@ -0,0 +1,81 @@
+package com.usky.system.domain.constants;
+
+/**
+ * 用户常量信息
+ * 
+ * @author yq
+ */
+public class UserConstants
+{
+    /**
+     * 平台内系统用户的唯一标志
+     */
+    public static final String SYS_USER = "SYS_USER";
+
+    /** 正常状态 */
+    public static final String NORMAL = "0";
+
+    /** 异常状态 */
+    public static final String EXCEPTION = "1";
+
+    /** 用户封禁状态 */
+    public static final String USER_DISABLE = "1";
+
+    /** 角色封禁状态 */
+    public static final String ROLE_DISABLE = "1";
+
+    /** 部门正常状态 */
+    public static final String DEPT_NORMAL = "0";
+
+    /** 部门停用状态 */
+    public static final String DEPT_DISABLE = "1";
+
+    /** 字典正常状态 */
+    public static final String DICT_NORMAL = "0";
+
+    /** 是否为系统默认(是) */
+    public static final String YES = "Y";
+
+    /** 是否菜单外链(是) */
+    public static final String YES_FRAME = "0";
+
+    /** 是否菜单外链(否) */
+    public static final String NO_FRAME = "1";
+
+    /** 菜单类型(目录) */
+    public static final String TYPE_DIR = "M";
+
+    /** 菜单类型(菜单) */
+    public static final String TYPE_MENU = "C";
+
+    /** 菜单类型(按钮) */
+    public static final String TYPE_BUTTON = "F";
+
+    /** Layout组件标识 */
+    public final static String LAYOUT = "Layout";
+    
+    /** ParentView组件标识 */
+    public final static String PARENT_VIEW = "ParentView";
+
+    /** InnerLink组件标识 */
+    public final static String INNER_LINK = "InnerLink";
+
+    /** 校验返回结果码 */
+    public final static String UNIQUE = "0";
+    public final static String NOT_UNIQUE = "1";
+
+    /**
+     * 用户名长度限制
+     */
+    public static final int USERNAME_MIN_LENGTH = 2;
+    public static final int USERNAME_MAX_LENGTH = 20;
+
+    /**
+     * 密码长度限制
+     */
+    public static final int PASSWORD_MIN_LENGTH = 5;
+    public static final int PASSWORD_MAX_LENGTH = 20;
+
+
+    public static final String ACCOUNT_LOCK = "dm_lock_account_";
+}

+ 73 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysConfigMapper.java

@@ -0,0 +1,73 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysConfig;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 参数配置 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysConfigMapper extends CrudMapper<SysConfig>
+{
+    /**
+     * 查询参数配置信息
+     * 
+     * @param config 参数配置信息
+     * @return 参数配置信息
+     */
+    public SysConfig selectConfig(SysConfig config);
+
+    /**
+     * 查询参数配置列表
+     * 
+     * @param config 参数配置信息
+     * @return 参数配置集合
+     */
+    public List<SysConfig> selectConfigList(SysConfig config);
+
+    /**
+     * 根据键名查询参数配置信息
+     * 
+     * @param configKey 参数键名
+     * @return 参数配置信息
+     */
+    public SysConfig checkConfigKeyUnique(String configKey);
+
+    /**
+     * 新增参数配置
+     * 
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int insertConfig(SysConfig config);
+
+    /**
+     * 修改参数配置
+     * 
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int updateConfig(SysConfig config);
+
+    /**
+     * 删除参数配置
+     * 
+     * @param configId 参数ID
+     * @return 结果
+     */
+    public int deleteConfigById(Long configId);
+
+    /**
+     * 批量删除参数信息
+     * 
+     * @param configIds 需要删除的参数ID
+     * @return 结果
+     */
+    public int deleteConfigByIds(Long[] configIds);
+}

+ 125 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDeptMapper.java

@@ -0,0 +1,125 @@
+package com.usky.system.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.usky.system.domain.SysDept;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 部门管理 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysDeptMapper extends BaseMapper<SysDept>
+{
+    /**
+     * 查询部门管理数据
+     * 
+     * @param dept 部门信息
+     * @return 部门信息集合
+     */
+    public List<SysDept> selectDeptList(SysDept dept);
+
+    /**
+     * 根据角色ID查询部门树信息
+     * 
+     * @param roleId 角色ID
+     * @param deptCheckStrictly 部门树选择项是否关联显示
+     * @return 选中部门列表
+     */
+    public List<Integer> selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly);
+
+    /**
+     * 根据部门ID查询信息
+     * 
+     * @param deptId 部门ID
+     * @return 部门信息
+     */
+    public SysDept selectDeptById(Long deptId);
+
+    /**
+     * 根据ID查询所有子部门
+     * 
+     * @param deptId 部门ID
+     * @return 部门列表
+     */
+    public List<SysDept> selectChildrenDeptById(Long deptId);
+
+    /**
+     * 根据ID查询所有子部门(正常状态)
+     * 
+     * @param deptId 部门ID
+     * @return 子部门数
+     */
+    public int selectNormalChildrenDeptById(Long deptId,Integer tenantId);
+
+    /**
+     * 是否存在子节点
+     * 
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    public int hasChildByDeptId(Long deptId);
+
+    /**
+     * 查询部门是否存在用户
+     * 
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    public int checkDeptExistUser(Long deptId);
+
+    /**
+     * 校验部门名称是否唯一
+     * 
+     * @param deptName 部门名称
+     * @param parentId 父部门ID
+     * @return 结果
+     */
+    public SysDept checkDeptNameUnique(@Param("deptName") String deptName,
+                                       @Param("parentId") Long parentId,
+                                       @Param("tenantId") Integer tenantId);
+
+    /**
+     * 新增部门信息
+     * 
+     * @param dept 部门信息
+     * @return 结果
+     */
+    public int insertDept(SysDept dept);
+
+    /**
+     * 修改部门信息
+     * 
+     * @param dept 部门信息
+     * @return 结果
+     */
+    public int updateDept(SysDept dept);
+
+    /**
+     * 修改所在部门正常状态
+     * 
+     * @param deptIds 部门ID组
+     */
+    public void updateDeptStatusNormal(Long[] deptIds);
+
+    /**
+     * 修改子元素关系
+     * 
+     * @param depts 子元素
+     * @return 结果
+     */
+    public int updateDeptChildren(@Param("depts") List<SysDept> depts);
+
+    /**
+     * 删除部门管理信息
+     * 
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    public int deleteDeptById(Long deptId);
+}

+ 101 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDictDataMapper.java

@@ -0,0 +1,101 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysDictData;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+/**
+ * 字典表 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysDictDataMapper extends CrudMapper<SysDictData>
+{
+    /**
+     * 根据条件分页查询字典数据
+     * 
+     * @param dictData 字典数据信息
+     * @return 字典数据集合信息
+     */
+    public List<SysDictData> selectDictDataList(SysDictData dictData);
+
+    /**
+     * 根据字典类型查询字典数据
+     * 
+     * @param dictType 字典类型
+     * @return 字典数据集合信息
+     */
+    public List<SysDictData> selectDictDataByType(String dictType);
+
+    /**
+     * 根据字典类型和字典键值查询字典数据信息
+     * 
+     * @param dictType 字典类型
+     * @param dictValue 字典键值
+     * @return 字典标签
+     */
+    public String selectDictLabel(@Param("dictType") String dictType, @Param("dictValue") String dictValue);
+
+    /**
+     * 根据字典数据ID查询信息
+     * 
+     * @param dictCode 字典数据ID
+     * @return 字典数据
+     */
+    public SysDictData selectDictDataById(Long dictCode);
+
+    /**
+     * 查询字典数据
+     * 
+     * @param dictType 字典类型
+     * @return 字典数据
+     */
+    public int countDictDataByType(String dictType);
+
+    /**
+     * 通过字典ID删除字典数据信息
+     * 
+     * @param dictCode 字典数据ID
+     * @return 结果
+     */
+    public int deleteDictDataById(Long dictCode);
+
+    /**
+     * 批量删除字典数据信息
+     * 
+     * @param dictCodes 需要删除的字典数据ID
+     * @return 结果
+     */
+    public int deleteDictDataByIds(Long[] dictCodes);
+
+    /**
+     * 新增字典数据信息
+     * 
+     * @param dictData 字典数据信息
+     * @return 结果
+     */
+    public int insertDictData(SysDictData dictData);
+
+    /**
+     * 修改字典数据信息
+     * 
+     * @param dictData 字典数据信息
+     * @return 结果
+     */
+    public int updateDictData(SysDictData dictData);
+
+    /**
+     * 同步修改字典类型
+     * 
+     * @param oldDictType 旧字典类型
+     * @param newDictType 新旧字典类型
+     * @return 结果
+     */
+    public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType);
+}

+ 89 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDictTypeMapper.java

@@ -0,0 +1,89 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysDictType;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+/**
+ * 字典表 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysDictTypeMapper extends CrudMapper<SysDictType>
+{
+    /**
+     * 根据条件分页查询字典类型
+     * 
+     * @param dictType 字典类型信息
+     * @return 字典类型集合信息
+     */
+    public List<SysDictType> selectDictTypeList(SysDictType dictType);
+
+    /**
+     * 根据所有字典类型
+     * 
+     * @return 字典类型集合信息
+     */
+    public List<SysDictType> selectDictTypeAll();
+
+    /**
+     * 根据字典类型ID查询信息
+     * 
+     * @param dictId 字典类型ID
+     * @return 字典类型
+     */
+    public SysDictType selectDictTypeById(Long dictId);
+
+    /**
+     * 根据字典类型查询信息
+     * 
+     * @param dictType 字典类型
+     * @return 字典类型
+     */
+    public SysDictType selectDictTypeByType(String dictType);
+
+    /**
+     * 通过字典ID删除字典信息
+     * 
+     * @param dictId 字典ID
+     * @return 结果
+     */
+    public int deleteDictTypeById(Long dictId);
+
+    /**
+     * 批量删除字典类型信息
+     * 
+     * @param dictIds 需要删除的字典ID
+     * @return 结果
+     */
+    public int deleteDictTypeByIds(Long[] dictIds);
+
+    /**
+     * 新增字典类型信息
+     * 
+     * @param dictType 字典类型信息
+     * @return 结果
+     */
+    public int insertDictType(SysDictType dictType);
+
+    /**
+     * 修改字典类型信息
+     * 
+     * @param dictType 字典类型信息
+     * @return 结果
+     */
+    public int updateDictType(SysDictType dictType);
+
+    /**
+     * 校验字典类型称是否唯一
+     * 
+     * @param dictType 字典类型
+     * @return 结果
+     */
+    public SysDictType checkDictTypeUnique(String dictType,Integer tenantId);
+}

+ 48 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysLogininforMapper.java

@@ -0,0 +1,48 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysLogininfor;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+/**
+ * 系统访问日志情况信息 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysLogininforMapper extends CrudMapper<SysLogininfor>
+{
+    /**
+     * 新增系统登录日志
+     * 
+     * @param logininfor 访问日志对象
+     */
+    public void insertLogininfor(SysLogininfor logininfor);
+
+    /**
+     * 查询系统登录日志集合
+     * 
+     * @param logininfor 访问日志对象
+     * @return 登录记录集合
+     */
+    public List<SysLogininfor> selectLogininforList(SysLogininfor logininfor);
+
+    /**
+     * 批量删除系统登录日志
+     * 
+     * @param infoIds 需要删除的登录日志ID
+     * @return 结果
+     */
+    public int deleteLogininforByIds(Long[] infoIds);
+
+    /**
+     * 清空系统登录日志
+     * 
+     * @return 结果
+     */
+    public int cleanLogininfor();
+}

+ 128 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysMenuMapper.java

@@ -0,0 +1,128 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysMenu;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+/**
+ * 菜单表 数据层
+ *
+ * @author yq
+ */
+@Repository
+public interface SysMenuMapper extends CrudMapper<SysMenu>
+{
+    /**
+     * 查询系统菜单列表
+     *
+     * @param menu 菜单信息
+     * @return 菜单列表
+     */
+    public List<SysMenu> selectMenuList(SysMenu menu);
+
+    /**
+     * 根据用户所有权限
+     *
+     * @return 权限列表
+     */
+    public List<String> selectMenuPerms();
+
+    /**
+     * 根据用户查询系统菜单列表
+     *
+     * @param menu 菜单信息
+     * @return 菜单列表
+     */
+    public List<SysMenu> selectMenuListByUserId(SysMenu menu);
+
+    /**
+     * 根据用户ID查询权限
+     *
+     * @param userId 用户ID
+     * @return 权限列表
+     */
+    public List<String> selectMenuPermsByUserId(Long userId);
+
+    /**
+     * 根据用户ID查询菜单
+     *
+     * @return 菜单列表
+     */
+    public List<SysMenu> selectMenuTreeAll();
+
+    /**
+     * 根据用户ID查询菜单
+     *
+     * @param userId 用户ID
+     * @return 菜单列表
+     */
+    public List<SysMenu> selectMenuTreeByUserId(Long userId);
+
+    public List<SysMenu> selectMenuTreeByUserIdOne(Integer tenantId);
+
+    /**
+     * 根据角色ID查询菜单树信息
+     * 
+     * @param roleId 角色ID
+     * @param menuCheckStrictly 菜单树选择项是否关联显示
+     * @return 选中菜单列表
+     */
+    public List<Integer> selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly);
+
+    /**
+     * 根据菜单ID查询信息
+     *
+     * @param menuId 菜单ID
+     * @return 菜单信息
+     */
+    public SysMenu selectMenuById(Long menuId);
+
+    /**
+     * 是否存在菜单子节点
+     *
+     * @param menuId 菜单ID
+     * @return 结果
+     */
+    public int hasChildByMenuId(Long menuId);
+
+    /**
+     * 新增菜单信息
+     *
+     * @param menu 菜单信息
+     * @return 结果
+     */
+    public int insertMenu(SysMenu menu);
+
+    /**
+     * 修改菜单信息
+     *
+     * @param menu 菜单信息
+     * @return 结果
+     */
+    public int updateMenu(SysMenu menu);
+
+    /**
+     * 删除菜单管理信息
+     *
+     * @param menuId 菜单ID
+     * @return 结果
+     */
+    public int deleteMenuById(Long menuId);
+
+    /**
+     * 校验菜单名称是否唯一
+     *
+     * @param menuName 菜单名称
+     * @param parentId 父菜单ID
+     * @return 结果
+     */
+    public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId);
+
+    public List<SysMenu> getSysMenuList(String menuType);
+
+}

+ 65 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysNoticeMapper.java

@@ -0,0 +1,65 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysNotice;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 通知公告表 数据层
+ * 
+ * @author ruoyi
+ */
+@Repository
+public interface SysNoticeMapper extends CrudMapper<SysNotice>
+{
+    /**
+     * 查询公告信息
+     * 
+     * @param noticeId 公告ID
+     * @return 公告信息
+     */
+    public SysNotice selectNoticeById(Long noticeId);
+
+    /**
+     * 查询公告列表
+     * 
+     * @param notice 公告信息
+     * @return 公告集合
+     */
+    public List<SysNotice> selectNoticeList(SysNotice notice);
+
+    /**
+     * 新增公告
+     * 
+     * @param notice 公告信息
+     * @return 结果
+     */
+    public int insertNotice(SysNotice notice);
+
+    /**
+     * 修改公告
+     * 
+     * @param notice 公告信息
+     * @return 结果
+     */
+    public int updateNotice(SysNotice notice);
+
+    /**
+     * 批量删除公告
+     * 
+     * @param noticeId 公告ID
+     * @return 结果
+     */
+    public int deleteNoticeById(Long noticeId);
+
+    /**
+     * 批量删除公告信息
+     * 
+     * @param noticeIds 需要删除的公告ID
+     * @return 结果
+     */
+    public int deleteNoticeByIds(Long[] noticeIds);
+}

+ 54 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysOperLogMapper.java

@@ -0,0 +1,54 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysOperLog;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+/**
+ * 操作日志 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysOperLogMapper extends CrudMapper<SysOperLog>
+{
+    /**
+     * 新增操作日志
+     * 
+     * @param operLog 操作日志对象
+     */
+    public void insertOperlog(SysOperLog operLog);
+
+    /**
+     * 查询系统操作日志集合
+     * 
+     * @param operLog 操作日志对象
+     * @return 操作日志集合
+     */
+    public List<SysOperLog> selectOperLogList(SysOperLog operLog);
+
+    /**
+     * 批量删除系统操作日志
+     * 
+     * @param operIds 需要删除的操作日志ID
+     * @return 结果
+     */
+    public int deleteOperLogByIds(Long[] operIds);
+
+    /**
+     * 查询操作日志详细
+     * 
+     * @param operId 操作ID
+     * @return 操作日志对象
+     */
+    public SysOperLog selectOperLogById(Long operId);
+
+    /**
+     * 清空操作日志
+     */
+    public void cleanOperLog();
+}

+ 37 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysPlatformMapper.java

@@ -0,0 +1,37 @@
+package com.usky.system.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysMenu;
+import com.usky.system.domain.SysPlatform;
+import com.usky.system.domain.SysPlatformMenu;
+import com.usky.system.service.vo.SysPlatformVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平台信息表 Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-18
+ */
+public interface SysPlatformMapper extends CrudMapper<SysPlatform> {
+
+    List<SysPlatformVo> getPlatformList(@Param("platformName") String platformName,
+                                        @Param("startTime") String startTime,
+                                        @Param("endTime") String endTime,
+                                        @Param("current") Integer current,
+                                        @Param("size") Integer size,
+                                        @Param("id") Integer id);
+
+    List<SysMenu> getMenuIdListOne(@Param("menuIds") Long[] menuIds,
+                                   @Param("menuType") String menuType);
+
+    int deletePlatformMenuBy(@Param("platformId") Long platformId);
+
+
+    List<SysPlatformMenu> getMenuListOne(@Param("platformId") Long platformId,
+                                         @Param("menuType")  String menuType);
+}

+ 31 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysPlatformMenuMapper.java

@@ -0,0 +1,31 @@
+package com.usky.system.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysMenu;
+import com.usky.system.domain.SysPlatformMenu;
+import com.usky.system.domain.SysTenantMenu;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 平台和菜单关联表 Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-18
+ */
+public interface SysPlatformMenuMapper extends CrudMapper<SysPlatformMenu> {
+
+    List<SysMenu> getMenuList(@Param("platformId") Integer platformId,
+                              @Param("menuType") String menuType);
+
+    List<SysMenu> getMenuIdList(@Param("menuIds") Long[] menuIds,
+                                @Param("menuType") String menuType);
+
+    int deleteTenantMenuBy(@Param("tenantId") Long tenantId);
+
+    List<SysTenantMenu> getMenuListOne(@Param("tenantId") Integer tenantId,
+                                       @Param("menuType") String menuType);
+}

+ 104 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysPostMapper.java

@@ -0,0 +1,104 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysPost;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 岗位信息 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysPostMapper extends CrudMapper<SysPost>
+{
+    /**
+     * 查询岗位数据集合
+     * 
+     * @param post 岗位信息
+     * @return 岗位数据集合
+     */
+    public List<SysPost> selectPostList(SysPost post);
+
+    /**
+     * 查询所有岗位
+     * 
+     * @return 岗位列表
+     */
+    public List<SysPost> selectPostAll();
+
+    /**
+     * 通过岗位ID查询岗位信息
+     * 
+     * @param postId 岗位ID
+     * @return 角色对象信息
+     */
+    public SysPost selectPostById(Long postId);
+
+    /**
+     * 根据用户ID获取岗位选择框列表
+     * 
+     * @param userId 用户ID
+     * @return 选中岗位ID列表
+     */
+    public List<Integer> selectPostListByUserId(Long userId);
+
+    /**
+     * 查询用户所属岗位组
+     * 
+     * @param userName 用户名
+     * @return 结果
+     */
+    public List<SysPost> selectPostsByUserName(String userName);
+
+    /**
+     * 删除岗位信息
+     * 
+     * @param postId 岗位ID
+     * @return 结果
+     */
+    public int deletePostById(Long postId);
+
+    /**
+     * 批量删除岗位信息
+     * 
+     * @param postIds 需要删除的岗位ID
+     * @return 结果
+     */
+    public int deletePostByIds(Long[] postIds);
+
+    /**
+     * 修改岗位信息
+     * 
+     * @param post 岗位信息
+     * @return 结果
+     */
+    public int updatePost(SysPost post);
+
+    /**
+     * 新增岗位信息
+     * 
+     * @param post 岗位信息
+     * @return 结果
+     */
+    public int insertPost(SysPost post);
+
+    /**
+     * 校验岗位名称
+     * 
+     * @param postName 岗位名称
+     * @return 结果
+     */
+    public SysPost checkPostNameUnique(String postName,Integer tenantId);
+
+    /**
+     * 校验岗位编码
+     * 
+     * @param postCode 岗位编码
+     * @return 结果
+     */
+    public SysPost checkPostCodeUnique(String postCode,Integer tenantId);
+}

+ 49 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysRoleDeptMapper.java

@@ -0,0 +1,49 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysRoleDept;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 角色与部门关联表 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysRoleDeptMapper extends CrudMapper<SysRoleDept>
+{
+    /**
+     * 通过角色ID删除角色和部门关联
+     * 
+     * @param roleId 角色ID
+     * @return 结果
+     */
+    public int deleteRoleDeptByRoleId(Long roleId);
+
+    /**
+     * 批量删除角色部门关联信息
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteRoleDept(Long[] ids);
+
+    /**
+     * 查询部门使用数量
+     * 
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    public int selectCountRoleDeptByDeptId(Long deptId);
+
+    /**
+     * 批量新增角色部门信息
+     * 
+     * @param roleDeptList 角色部门列表
+     * @return 结果
+     */
+    public int batchRoleDept(List<SysRoleDept> roleDeptList);
+}

+ 112 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysRoleMapper.java

@@ -0,0 +1,112 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysRole;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 角色表 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysRoleMapper extends CrudMapper<SysRole>
+{
+    /**
+     * 根据条件分页查询角色数据
+     * 
+     * @param role 角色信息
+     * @return 角色数据集合信息
+     */
+    public List<SysRole> selectRoleList(SysRole role);
+
+    /**
+     * 根据用户ID查询角色
+     * 
+     * @param userId 用户ID
+     * @return 角色列表
+     */
+    public List<SysRole> selectRolePermissionByUserId(Long userId);
+
+    /**
+     * 查询所有角色
+     * 
+     * @return 角色列表
+     */
+    public List<SysRole> selectRoleAll();
+
+    /**
+     * 根据用户ID获取角色选择框列表
+     * 
+     * @param userId 用户ID
+     * @return 选中角色ID列表
+     */
+    public List<Integer> selectRoleListByUserId(Long userId);
+
+    /**
+     * 通过角色ID查询角色
+     * 
+     * @param roleId 角色ID
+     * @return 角色对象信息
+     */
+    public SysRole selectRoleById(Long roleId);
+
+    /**
+     * 根据用户ID查询角色
+     * 
+     * @param userName 用户名
+     * @return 角色列表
+     */
+    public List<SysRole> selectRolesByUserName(String userName);
+
+    /**
+     * 校验角色名称是否唯一
+     * 
+     * @param roleName 角色名称
+     * @return 角色信息
+     */
+    public SysRole checkRoleNameUnique(String roleName,Integer tenantId);
+
+    /**
+     * 校验角色权限是否唯一
+     * 
+     * @param roleKey 角色权限
+     * @return 角色信息
+     */
+    public SysRole checkRoleKeyUnique(String roleKey,Integer tenantId);
+
+    /**
+     * 修改角色信息
+     * 
+     * @param role 角色信息
+     * @return 结果
+     */
+    public int updateRole(SysRole role);
+
+    /**
+     * 新增角色信息
+     * 
+     * @param role 角色信息
+     * @return 结果
+     */
+    public int insertRole(SysRole role);
+
+    /**
+     * 通过角色ID删除角色
+     * 
+     * @param roleId 角色ID
+     * @return 结果
+     */
+    public int deleteRoleById(Long roleId);
+
+    /**
+     * 批量删除角色信息
+     * 
+     * @param roleIds 需要删除的角色ID
+     * @return 结果
+     */
+    public int deleteRoleByIds(Long[] roleIds);
+}

+ 49 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysRoleMenuMapper.java

@@ -0,0 +1,49 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysRoleMenu;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 角色与菜单关联表 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysRoleMenuMapper extends CrudMapper<SysRoleMenu>
+{
+    /**
+     * 查询菜单使用数量
+     * 
+     * @param menuId 菜单ID
+     * @return 结果
+     */
+    public int checkMenuExistRole(Long menuId);
+
+    /**
+     * 通过角色ID删除角色和菜单关联
+     * 
+     * @param roleId 角色ID
+     * @return 结果
+     */
+    public int deleteRoleMenuByRoleId(Long roleId);
+
+    /**
+     * 批量删除角色菜单关联信息
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteRoleMenu(Long[] ids);
+
+    /**
+     * 批量新增角色菜单信息
+     * 
+     * @param roleMenuList 角色菜单列表
+     * @return 结果
+     */
+    public int batchRoleMenu(List<SysRoleMenu> roleMenuList);
+}

+ 24 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysTenantConfigMapper.java

@@ -0,0 +1,24 @@
+package com.usky.system.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysMenu;
+import com.usky.system.domain.SysTenantConfig;
+import com.usky.system.service.vo.SysTenantConfigVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 租户配置表 Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-06
+ */
+public interface SysTenantConfigMapper extends CrudMapper<SysTenantConfig> {
+    List<SysTenantConfigVo> getTenantConfig(@Param("url") String url);
+
+    List<SysMenu> getMenuBoxList(@Param("tenantId") Integer tenantId,
+                                 @Param("menuType") String menuType);
+}

+ 38 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysTenantMapper.java

@@ -0,0 +1,38 @@
+package com.usky.system.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysTenant;
+import com.usky.system.service.vo.SysTenantTwoVo;
+import com.usky.system.service.vo.SysTenantVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 租户信息表 Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-05
+ */
+public interface SysTenantMapper extends CrudMapper<SysTenant> {
+
+    List<SysTenantVo> getUserData(@Param("userId") int userId);
+
+    List<SysTenantTwoVo> getTenantData(@Param("tenantName") String tenantName,
+                                       @Param("tenantManager") String tenantManager,
+                                       @Param("tenantType") String tenantType,
+                                       @Param("status") String status,
+                                       @Param("startTime") String startTime,
+                                       @Param("endTime") String endTime,
+                                       @Param("current") Integer current,
+                                       @Param("size") Integer size,
+                                       @Param("id") Integer id);
+
+    List<SysTenantTwoVo> getTenantDataOne(@Param("tenantName") String tenantName,
+                                          @Param("tenantManager") String tenantManager,
+                                          @Param("current") Integer current,
+                                          @Param("size") Integer size);
+
+}

+ 16 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysTenantMenuMapper.java

@@ -0,0 +1,16 @@
+package com.usky.system.mapper;
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysTenantMenu;
+
+/**
+ * <p>
+ * 租户和菜单关联表 Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2022-05-18
+ */
+public interface SysTenantMenuMapper extends CrudMapper<SysTenantMenu> {
+
+}

+ 141 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysUserMapper.java

@@ -0,0 +1,141 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysUser;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+/**
+ * 用户表 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysUserMapper extends CrudMapper<SysUser>
+{
+    /**
+     * 根据条件分页查询用户列表
+     * 
+     * @param sysUser 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectUserList(SysUser sysUser);
+
+    /**
+     * 根据条件分页查询未已配用户角色列表
+     * 
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectAllocatedList(SysUser user);
+
+    /**
+     * 根据条件分页查询未分配用户角色列表
+     * 
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectUnallocatedList(SysUser user);
+
+    /**
+     * 通过用户名查询用户
+     * 
+     * @param userName 用户名
+     * @return 用户对象信息
+     */
+    public SysUser selectUserByUserName(String userName);
+
+    /**
+     * 通过用户ID查询用户
+     * 
+     * @param userId 用户ID
+     * @return 用户对象信息
+     */
+    public SysUser selectUserById(Long userId);
+
+    /**
+     * 新增用户信息
+     * 
+     * @param user 用户信息
+     * @return 结果
+     */
+    public int insertUser(SysUser user);
+
+    /**
+     * 修改用户信息
+     * 
+     * @param user 用户信息
+     * @return 结果
+     */
+    public int updateUser(SysUser user);
+
+    /**
+     * 修改用户头像
+     * 
+     * @param userName 用户名
+     * @param avatar 头像地址
+     * @return 结果
+     */
+    public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar);
+
+    /**
+     * 重置用户密码
+     * 
+     * @param userName 用户名
+     * @param password 密码
+     * @return 结果
+     */
+    public int resetUserPwd(@Param("userName") String userName, @Param("password") String password);
+
+    /**
+     * 通过用户ID删除用户
+     * 
+     * @param userId 用户ID
+     * @return 结果
+     */
+    public int deleteUserById(Long userId);
+
+    /**
+     * 批量删除用户信息
+     * 
+     * @param userIds 需要删除的用户ID
+     * @return 结果
+     */
+    public int deleteUserByIds(Long[] userIds);
+
+    /**
+     * 校验用户名称是否唯一
+     * 
+     * @param userName 用户名称
+     * @return 结果
+     */
+    public int checkUserNameUnique(String userName,Integer tenantId);
+
+    /**
+     * 校验手机号码是否唯一
+     *
+     * @param phonenumber 手机号码
+     * @return 结果
+     */
+    public SysUser checkPhoneUnique(String phonenumber);
+
+    /**
+     * 校验email是否唯一
+     *
+     * @param email 用户邮箱
+     * @return 结果
+     */
+    public SysUser checkEmailUnique(String email);
+
+    public int resetUserPwdOne(@Param("userId") Long userId, @Param("password") String password);
+
+    public List<SysUser> getUserData(@Param("tenantId") Integer tenantId,
+                                     @Param("current") Integer current,
+                                     @Param("size") Integer size,
+                                     @Param("userId") long userId);
+}

+ 49 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysUserPostMapper.java

@@ -0,0 +1,49 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysUserPost;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 用户与岗位关联表 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysUserPostMapper extends CrudMapper<SysUserPost>
+{
+    /**
+     * 通过用户ID删除用户和岗位关联
+     * 
+     * @param userId 用户ID
+     * @return 结果
+     */
+    public int deleteUserPostByUserId(Long userId);
+
+    /**
+     * 通过岗位ID查询岗位使用数量
+     * 
+     * @param postId 岗位ID
+     * @return 结果
+     */
+    public int countUserPostById(Long postId);
+
+    /**
+     * 批量删除用户和岗位关联
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteUserPost(Long[] ids);
+
+    /**
+     * 批量新增用户岗位信息
+     * 
+     * @param userPostList 用户角色列表
+     * @return 结果
+     */
+    public int batchUserPost(List<SysUserPost> userPostList);
+}

+ 67 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysUserRoleMapper.java

@@ -0,0 +1,67 @@
+package com.usky.system.mapper;
+
+
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.system.domain.SysUserRole;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 用户与角色关联表 数据层
+ * 
+ * @author yq
+ */
+@Repository
+public interface SysUserRoleMapper extends CrudMapper<SysUserRole>
+{
+    /**
+     * 通过用户ID删除用户和角色关联
+     * 
+     * @param userId 用户ID
+     * @return 结果
+     */
+    public int deleteUserRoleByUserId(Long userId);
+
+    /**
+     * 批量删除用户和角色关联
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteUserRole(Long[] ids);
+
+    /**
+     * 通过角色ID查询角色使用数量
+     * 
+     * @param roleId 角色ID
+     * @return 结果
+     */
+    public int countUserRoleByRoleId(Long roleId);
+
+    /**
+     * 批量新增用户角色信息
+     * 
+     * @param userRoleList 用户角色列表
+     * @return 结果
+     */
+    public int batchUserRole(List<SysUserRole> userRoleList);
+
+    /**
+     * 删除用户和角色关联信息
+     * 
+     * @param userRole 用户和角色关联信息
+     * @return 结果
+     */
+    public int deleteUserRoleInfo(SysUserRole userRole);
+
+    /**
+     * 批量取消授权用户角色
+     * 
+     * @param roleId 角色ID
+     * @param userIds 需要删除的用户数据ID
+     * @return 结果
+     */
+    public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds);
+}

+ 94 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysConfigService.java

@@ -0,0 +1,94 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysConfig;
+
+import java.util.List;
+
+
+/**
+ * 参数配置 服务层
+ * 
+ * @author yq
+ */
+public interface ISysConfigService extends CrudService<SysConfig>
+{
+    /**
+     * 查询参数配置信息
+     * 
+     * @param configId 参数配置ID
+     * @return 参数配置信息
+     */
+    public SysConfig selectConfigById(Long configId);
+
+    /**
+     * 根据键名查询参数配置信息
+     * 
+     * @param configKey 参数键名
+     * @return 参数键值
+     */
+    public String selectConfigByKey(String configKey);
+
+    /**
+     * 获取验证码开关
+     * 
+     * @return true开启,false关闭
+     */
+    public boolean selectCaptchaOnOff();
+
+    /**
+     * 查询参数配置列表
+     * 
+     * @param config 参数配置信息
+     * @return 参数配置集合
+     */
+    public List<SysConfig> selectConfigList(SysConfig config);
+
+    /**
+     * 新增参数配置
+     * 
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int insertConfig(SysConfig config);
+
+    /**
+     * 修改参数配置
+     * 
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int updateConfig(SysConfig config);
+
+    /**
+     * 批量删除参数信息
+     * 
+     * @param configIds 需要删除的参数ID
+     * @return 结果
+     */
+    public void deleteConfigByIds(Long[] configIds);
+
+    /**
+     * 加载参数缓存数据
+     */
+    public void loadingConfigCache();
+
+    /**
+     * 清空参数缓存数据
+     */
+    public void clearConfigCache();
+
+    /**
+     * 重置参数缓存数据
+     */
+    public void resetConfigCache();
+
+    /**
+     * 校验参数键名是否唯一
+     * 
+     * @param config 参数信息
+     * @return 结果
+     */
+    public String checkConfigKeyUnique(SysConfig config);
+}

+ 112 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDeptService.java

@@ -0,0 +1,112 @@
+package com.usky.system.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.usky.system.domain.SysDept;
+import com.usky.system.service.vo.TreeSelect;
+
+import java.util.List;
+
+/**
+ * 部门管理 服务层
+ * 
+ * @author yq
+ */
+public interface ISysDeptService extends IService<SysDept>
+{
+    /**
+     * 查询部门管理数据
+     * 
+     * @param dept 部门信息
+     * @return 部门信息集合
+     */
+    public List<SysDept> selectDeptList(SysDept dept);
+
+    /**
+     * 构建前端所需要树结构
+     * 
+     * @param depts 部门列表
+     * @return 树结构列表
+     */
+    public List<SysDept> buildDeptTree(List<SysDept> depts);
+
+    /**
+     * 构建前端所需要下拉树结构
+     * 
+     * @param depts 部门列表
+     * @return 下拉树结构列表
+     */
+    public List<TreeSelect> buildDeptTreeSelect(List<SysDept> depts);
+
+    /**
+     * 根据角色ID查询部门树信息
+     * 
+     * @param roleId 角色ID
+     * @return 选中部门列表
+     */
+    public List<Integer> selectDeptListByRoleId(Long roleId);
+
+    /**
+     * 根据部门ID查询信息
+     * 
+     * @param deptId 部门ID
+     * @return 部门信息
+     */
+    public SysDept selectDeptById(Long deptId);
+
+    /**
+     * 根据ID查询所有子部门(正常状态)
+     * 
+     * @param deptId 部门ID
+     * @return 子部门数
+     */
+    public int selectNormalChildrenDeptById(Long deptId);
+
+    /**
+     * 是否存在部门子节点
+     * 
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    public boolean hasChildByDeptId(Long deptId);
+
+    /**
+     * 查询部门是否存在用户
+     * 
+     * @param deptId 部门ID
+     * @return 结果 true 存在 false 不存在
+     */
+    public boolean checkDeptExistUser(Long deptId);
+
+    /**
+     * 校验部门名称是否唯一
+     * 
+     * @param dept 部门信息
+     * @return 结果
+     */
+    public String checkDeptNameUnique(SysDept dept);
+
+    /**
+     * 新增保存部门信息
+     * 
+     * @param dept 部门信息
+     * @return 结果
+     */
+    public int insertDept(SysDept dept);
+
+    /**
+     * 修改保存部门信息
+     * 
+     * @param dept 部门信息
+     * @return 结果
+     */
+    public int updateDept(SysDept dept);
+
+    /**
+     * 删除部门管理信息
+     * 
+     * @param deptId 部门ID
+     * @return 结果
+     */
+    public int deleteDeptById(Long deptId);
+}

+ 64 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDictDataService.java

@@ -0,0 +1,64 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysDictData;
+
+import java.util.List;
+
+/**
+ * 字典 业务层
+ * 
+ * @author yq
+ */
+public interface ISysDictDataService extends CrudService<SysDictData>
+{
+    /**
+     * 根据条件分页查询字典数据
+     * 
+     * @param dictData 字典数据信息
+     * @return 字典数据集合信息
+     */
+    public List<SysDictData> selectDictDataList(SysDictData dictData);
+
+    /**
+     * 根据字典类型和字典键值查询字典数据信息
+     * 
+     * @param dictType 字典类型
+     * @param dictValue 字典键值
+     * @return 字典标签
+     */
+    public String selectDictLabel(String dictType, String dictValue);
+
+    /**
+     * 根据字典数据ID查询信息
+     * 
+     * @param dictCode 字典数据ID
+     * @return 字典数据
+     */
+    public SysDictData selectDictDataById(Long dictCode);
+
+    /**
+     * 批量删除字典数据信息
+     * 
+     * @param dictCodes 需要删除的字典数据ID
+     * @return 结果
+     */
+    public void deleteDictDataByIds(Long[] dictCodes);
+
+    /**
+     * 新增保存字典数据信息
+     * 
+     * @param dictData 字典数据信息
+     * @return 结果
+     */
+    public int insertDictData(SysDictData dictData);
+
+    /**
+     * 修改保存字典数据信息
+     * 
+     * @param dictData 字典数据信息
+     * @return 结果
+     */
+    public int updateDictData(SysDictData dictData);
+}

+ 103 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDictTypeService.java

@@ -0,0 +1,103 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysDictData;
+import com.usky.system.domain.SysDictType;
+
+import java.util.List;
+
+
+/**
+ * 字典 业务层
+ * 
+ * @author yq
+ */
+public interface ISysDictTypeService extends CrudService<SysDictType>
+{
+    /**
+     * 根据条件分页查询字典类型
+     * 
+     * @param dictType 字典类型信息
+     * @return 字典类型集合信息
+     */
+    public List<SysDictType> selectDictTypeList(SysDictType dictType);
+
+    /**
+     * 根据所有字典类型
+     * 
+     * @return 字典类型集合信息
+     */
+    public List<SysDictType> selectDictTypeAll();
+
+    /**
+     * 根据字典类型查询字典数据
+     * 
+     * @param dictType 字典类型
+     * @return 字典数据集合信息
+     */
+    public List<SysDictData> selectDictDataByType(String dictType);
+
+    /**
+     * 根据字典类型ID查询信息
+     * 
+     * @param dictId 字典类型ID
+     * @return 字典类型
+     */
+    public SysDictType selectDictTypeById(Long dictId);
+
+    /**
+     * 根据字典类型查询信息
+     * 
+     * @param dictType 字典类型
+     * @return 字典类型
+     */
+    public SysDictType selectDictTypeByType(String dictType);
+
+    /**
+     * 批量删除字典信息
+     * 
+     * @param dictIds 需要删除的字典ID
+     * @return 结果
+     */
+    public void deleteDictTypeByIds(Long[] dictIds);
+
+    /**
+     * 加载字典缓存数据
+     */
+    public void loadingDictCache();
+
+    /**
+     * 清空字典缓存数据
+     */
+    public void clearDictCache();
+
+    /**
+     * 重置字典缓存数据
+     */
+    public void resetDictCache();
+
+    /**
+     * 新增保存字典类型信息
+     * 
+     * @param dictType 字典类型信息
+     * @return 结果
+     */
+    public int insertDictType(SysDictType dictType);
+
+    /**
+     * 修改保存字典类型信息
+     * 
+     * @param dictType 字典类型信息
+     * @return 结果
+     */
+    public int updateDictType(SysDictType dictType);
+
+    /**
+     * 校验字典类型称是否唯一
+     * 
+     * @param dictType 字典类型
+     * @return 结果
+     */
+    public String checkDictTypeUnique(SysDictType dictType);
+}

+ 43 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysLogininforService.java

@@ -0,0 +1,43 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysLogininfor;
+
+import java.util.List;
+
+/**
+ * 系统访问日志情况信息 服务层
+ * 
+ * @author yq
+ */
+public interface ISysLogininforService extends CrudService<SysLogininfor>
+{
+    /**
+     * 新增系统登录日志
+     * 
+     * @param logininfor 访问日志对象
+     */
+    public void insertLogininfor(SysLogininfor logininfor);
+
+    /**
+     * 查询系统登录日志集合
+     * 
+     * @param logininfor 访问日志对象
+     * @return 登录记录集合
+     */
+    public List<SysLogininfor> selectLogininforList(SysLogininfor logininfor);
+
+    /**
+     * 批量删除系统登录日志
+     * 
+     * @param infoIds 需要删除的登录日志ID
+     * @return
+     */
+    public int deleteLogininforByIds(Long[] infoIds);
+
+    /**
+     * 清空系统登录日志
+     */
+    public void cleanLogininfor();
+}

+ 142 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysMenuService.java

@@ -0,0 +1,142 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysMenu;
+import com.usky.system.service.vo.RouterVo;
+import com.usky.system.service.vo.TreeSelect;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 菜单 业务层
+ * 
+ * @author yq
+ */
+public interface ISysMenuService extends CrudService<SysMenu>
+{
+    /**
+     * 根据用户查询系统菜单列表
+     * 
+     * @param userId 用户ID
+     * @return 菜单列表
+     */
+    public List<SysMenu> selectMenuList(Long userId);
+
+    /**
+     * 根据用户查询系统菜单列表
+     * 
+     * @param menu 菜单信息
+     * @param userId 用户ID
+     * @return 菜单列表
+     */
+    public List<SysMenu> selectMenuList(SysMenu menu, Long userId);
+
+    /**
+     * 根据用户ID查询权限
+     * 
+     * @param userId 用户ID
+     * @return 权限列表
+     */
+    public Set<String> selectMenuPermsByUserId(Long userId);
+
+    /**
+     * 根据用户ID查询菜单树信息
+     * 
+     * @param userId 用户ID
+     * @return 菜单列表
+     */
+    public List<SysMenu> selectMenuTreeByUserId(Long userId);
+
+    List<SysMenu> selectMenuTreeByUserIdOne(Integer tenantId);
+
+    /**
+     * 根据角色ID查询菜单树信息
+     * 
+     * @param roleId 角色ID
+     * @return 选中菜单列表
+     */
+    public List<Integer> selectMenuListByRoleId(Long roleId);
+
+    /**
+     * 构建前端路由所需要的菜单
+     * 
+     * @param menus 菜单列表
+     * @return 路由列表
+     */
+    public List<RouterVo> buildMenus(List<SysMenu> menus);
+
+
+    /**
+     * 构建前端所需要树结构
+     * 
+     * @param menus 菜单列表
+     * @return 树结构列表
+     */
+    public List<SysMenu> buildMenuTree(List<SysMenu> menus);
+
+    /**
+     * 构建前端所需要下拉树结构
+     * 
+     * @param menus 菜单列表
+     * @return 下拉树结构列表
+     */
+    public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus);
+
+    /**
+     * 根据菜单ID查询信息
+     * 
+     * @param menuId 菜单ID
+     * @return 菜单信息
+     */
+    public SysMenu selectMenuById(Long menuId);
+
+    /**
+     * 是否存在菜单子节点
+     * 
+     * @param menuId 菜单ID
+     * @return 结果 true 存在 false 不存在
+     */
+    public boolean hasChildByMenuId(Long menuId);
+
+    /**
+     * 查询菜单是否存在角色
+     * 
+     * @param menuId 菜单ID
+     * @return 结果 true 存在 false 不存在
+     */
+    public boolean checkMenuExistRole(Long menuId);
+
+    /**
+     * 新增保存菜单信息
+     * 
+     * @param menu 菜单信息
+     * @return 结果
+     */
+    public int insertMenu(SysMenu menu);
+
+    /**
+     * 修改保存菜单信息
+     * 
+     * @param menu 菜单信息
+     * @return 结果
+     */
+    public int updateMenu(SysMenu menu);
+
+    /**
+     * 删除菜单管理信息
+     * 
+     * @param menuId 菜单ID
+     * @return 结果
+     */
+    public int deleteMenuById(Long menuId);
+
+    /**
+     * 校验菜单名称是否唯一
+     * 
+     * @param menu 菜单信息
+     * @return 结果
+     */
+    public String checkMenuNameUnique(SysMenu menu);
+}

+ 63 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysNoticeService.java

@@ -0,0 +1,63 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysNotice;
+
+import java.util.List;
+
+/**
+ * 公告 服务层
+ * 
+ * @author ruoyi
+ */
+public interface ISysNoticeService extends CrudService<SysNotice>
+{
+    /**
+     * 查询公告信息
+     * 
+     * @param noticeId 公告ID
+     * @return 公告信息
+     */
+    public SysNotice selectNoticeById(Long noticeId);
+
+    /**
+     * 查询公告列表
+     * 
+     * @param notice 公告信息
+     * @return 公告集合
+     */
+    public List<SysNotice> selectNoticeList(SysNotice notice);
+
+    /**
+     * 新增公告
+     * 
+     * @param notice 公告信息
+     * @return 结果
+     */
+    public int insertNotice(SysNotice notice);
+
+    /**
+     * 修改公告
+     * 
+     * @param notice 公告信息
+     * @return 结果
+     */
+    public int updateNotice(SysNotice notice);
+
+    /**
+     * 删除公告信息
+     * 
+     * @param noticeId 公告ID
+     * @return 结果
+     */
+    public int deleteNoticeById(Long noticeId);
+    
+    /**
+     * 批量删除公告信息
+     * 
+     * @param noticeIds 需要删除的公告ID
+     * @return 结果
+     */
+    public int deleteNoticeByIds(Long[] noticeIds);
+}

+ 51 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysOperLogService.java

@@ -0,0 +1,51 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysOperLog;
+
+import java.util.List;
+
+/**
+ * 操作日志 服务层
+ * 
+ * @author yq
+ */
+public interface ISysOperLogService extends CrudService<SysOperLog>
+{
+    /**
+     * 新增操作日志
+     * 
+     * @param operLog 操作日志对象
+     */
+    public void insertOperlog(SysOperLog operLog);
+
+    /**
+     * 查询系统操作日志集合
+     * 
+     * @param operLog 操作日志对象
+     * @return 操作日志集合
+     */
+    public List<SysOperLog> selectOperLogList(SysOperLog operLog);
+
+    /**
+     * 批量删除系统操作日志
+     * 
+     * @param operIds 需要删除的操作日志ID
+     * @return 结果
+     */
+    public int deleteOperLogByIds(Long[] operIds);
+
+    /**
+     * 查询操作日志详细
+     * 
+     * @param operId 操作ID
+     * @return 操作日志对象
+     */
+    public SysOperLog selectOperLogById(Long operId);
+
+    /**
+     * 清空操作日志
+     */
+    public void cleanOperLog();
+}

+ 22 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysPermissionService.java

@@ -0,0 +1,22 @@
+package com.usky.system.service;
+
+import java.util.Set;
+
+public interface ISysPermissionService
+{
+    /**
+     * 获取角色数据权限
+     * 
+     * @param userId 用户Id
+     * @return 角色权限信息
+     */
+    public Set<String> getRolePermission(Long userId);
+
+    /**
+     * 获取菜单数据权限
+     * 
+     * @param userId 用户Id
+     * @return 菜单权限信息
+     */
+    public Set<String> getMenuPermission(Long userId);
+}

+ 103 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysPostService.java

@@ -0,0 +1,103 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysPost;
+
+import java.util.List;
+
+/**
+ * 岗位信息 服务层
+ * 
+ * @author yq
+ */
+public interface ISysPostService extends CrudService<SysPost>
+{
+    /**
+     * 查询岗位信息集合
+     * 
+     * @param post 岗位信息
+     * @return 岗位列表
+     */
+    public List<SysPost> selectPostList(SysPost post);
+
+    /**
+     * 查询所有岗位
+     * 
+     * @return 岗位列表
+     */
+    public List<SysPost> selectPostAll();
+
+    /**
+     * 通过岗位ID查询岗位信息
+     * 
+     * @param postId 岗位ID
+     * @return 角色对象信息
+     */
+    public SysPost selectPostById(Long postId);
+
+    /**
+     * 根据用户ID获取岗位选择框列表
+     * 
+     * @param userId 用户ID
+     * @return 选中岗位ID列表
+     */
+    public List<Integer> selectPostListByUserId(Long userId);
+
+    /**
+     * 校验岗位名称
+     * 
+     * @param post 岗位信息
+     * @return 结果
+     */
+    public String checkPostNameUnique(SysPost post);
+
+    /**
+     * 校验岗位编码
+     * 
+     * @param post 岗位信息
+     * @return 结果
+     */
+    public String checkPostCodeUnique(SysPost post);
+
+    /**
+     * 通过岗位ID查询岗位使用数量
+     * 
+     * @param postId 岗位ID
+     * @return 结果
+     */
+    public int countUserPostById(Long postId);
+
+    /**
+     * 删除岗位信息
+     * 
+     * @param postId 岗位ID
+     * @return 结果
+     */
+    public int deletePostById(Long postId);
+
+    /**
+     * 批量删除岗位信息
+     * 
+     * @param postIds 需要删除的岗位ID
+     * @return 结果
+     * @throws Exception 异常
+     */
+    public int deletePostByIds(Long[] postIds);
+
+    /**
+     * 新增保存岗位信息
+     * 
+     * @param post 岗位信息
+     * @return 结果
+     */
+    public int insertPost(SysPost post);
+
+    /**
+     * 修改保存岗位信息
+     * 
+     * @param post 岗位信息
+     * @return 结果
+     */
+    public int updatePost(SysPost post);
+}

+ 169 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysRoleService.java

@@ -0,0 +1,169 @@
+package com.usky.system.service;
+
+
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysRole;
+import com.usky.system.domain.SysUserRole;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 角色业务层
+ * 
+ * @author yq
+ */
+public interface ISysRoleService extends CrudService<SysRole>
+{
+    /**
+     * 根据条件分页查询角色数据
+     * 
+     * @param role 角色信息
+     * @return 角色数据集合信息
+     */
+    public List<SysRole> selectRoleList(SysRole role);
+
+    /**
+     * 根据用户ID查询角色列表
+     * 
+     * @param userId 用户ID
+     * @return 角色列表
+     */
+    public List<SysRole> selectRolesByUserId(Long userId);
+
+    /**
+     * 根据用户ID查询角色权限
+     * 
+     * @param userId 用户ID
+     * @return 权限列表
+     */
+    public Set<String> selectRolePermissionByUserId(Long userId);
+
+    /**
+     * 查询所有角色
+     * 
+     * @return 角色列表
+     */
+    public List<SysRole> selectRoleAll();
+
+    /**
+     * 根据用户ID获取角色选择框列表
+     * 
+     * @param userId 用户ID
+     * @return 选中角色ID列表
+     */
+    public List<Integer> selectRoleListByUserId(Long userId);
+
+    /**
+     * 通过角色ID查询角色
+     * 
+     * @param roleId 角色ID
+     * @return 角色对象信息
+     */
+    public SysRole selectRoleById(Long roleId);
+
+    /**
+     * 校验角色名称是否唯一
+     * 
+     * @param role 角色信息
+     * @return 结果
+     */
+    public String checkRoleNameUnique(SysRole role);
+
+    /**
+     * 校验角色权限是否唯一
+     * 
+     * @param role 角色信息
+     * @return 结果
+     */
+    public String checkRoleKeyUnique(SysRole role);
+
+    /**
+     * 校验角色是否允许操作
+     * 
+     * @param role 角色信息
+     */
+    public void checkRoleAllowed(SysRole role);
+
+    /**
+     * 通过角色ID查询角色使用数量
+     * 
+     * @param roleId 角色ID
+     * @return 结果
+     */
+    public int countUserRoleByRoleId(Long roleId);
+
+    /**
+     * 新增保存角色信息
+     * 
+     * @param role 角色信息
+     * @return 结果
+     */
+    public int insertRole(SysRole role);
+
+    /**
+     * 修改保存角色信息
+     * 
+     * @param role 角色信息
+     * @return 结果
+     */
+    public int updateRole(SysRole role);
+
+    /**
+     * 修改角色状态
+     * 
+     * @param role 角色信息
+     * @return 结果
+     */
+    public int updateRoleStatus(SysRole role);
+
+    /**
+     * 修改数据权限信息
+     * 
+     * @param role 角色信息
+     * @return 结果
+     */
+    public int authDataScope(SysRole role);
+
+    /**
+     * 通过角色ID删除角色
+     * 
+     * @param roleId 角色ID
+     * @return 结果
+     */
+    public int deleteRoleById(Long roleId);
+
+    /**
+     * 批量删除角色信息
+     * 
+     * @param roleIds 需要删除的角色ID
+     * @return 结果
+     */
+    public int deleteRoleByIds(Long[] roleIds);
+
+    /**
+     * 取消授权用户角色
+     * 
+     * @param userRole 用户和角色关联信息
+     * @return 结果
+     */
+    public int deleteAuthUser(SysUserRole userRole);
+
+    /**
+     * 批量取消授权用户角色
+     * 
+     * @param roleId 角色ID
+     * @param userIds 需要取消授权的用户数据ID
+     * @return 结果
+     */
+    public int deleteAuthUsers(Long roleId, Long[] userIds);
+
+    /**
+     * 批量选择授权用户角色
+     * 
+     * @param roleId 角色ID
+     * @param userIds 需要删除的用户数据ID
+     * @return 结果
+     */
+    public int insertAuthUsers(Long roleId, Long[] userIds);
+}

+ 49 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysUserOnlineService.java

@@ -0,0 +1,49 @@
+package com.usky.system.service;
+
+
+import com.usky.system.domain.SysUserOnline;
+import com.usky.system.model.LoginUser;
+
+/**
+ * 在线用户 服务层
+ * 
+ * @author yq
+ */
+public interface ISysUserOnlineService
+{
+    /**
+     * 通过登录地址查询信息
+     * 
+     * @param ipaddr 登录地址
+     * @param user 用户信息
+     * @return 在线用户信息
+     */
+    public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user);
+
+    /**
+     * 通过用户名称查询信息
+     * 
+     * @param userName 用户名称
+     * @param user 用户信息
+     * @return 在线用户信息
+     */
+    public SysUserOnline selectOnlineByUserName(String userName, LoginUser user);
+
+    /**
+     * 通过登录地址/用户名称查询信息
+     * 
+     * @param ipaddr 登录地址
+     * @param userName 用户名称
+     * @param user 用户信息
+     * @return 在线用户信息
+     */
+    public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user);
+
+    /**
+     * 设置在线用户信息
+     * 
+     * @param user 用户信息
+     * @return 在线用户
+     */
+    public SysUserOnline loginUserToUserOnline(LoginUser user);
+}

+ 213 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysUserService.java

@@ -0,0 +1,213 @@
+package com.usky.system.service;
+
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.domain.SysUser;
+import com.usky.system.model.LoginUser;
+
+import java.util.List;
+
+/**
+ * 用户 业务层
+ *
+ * @author yq
+ */
+public interface ISysUserService extends CrudService<SysUser> {
+    /**
+     * 根据条件分页查询用户列表
+     *
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectUserList(SysUser user);
+
+    /**
+     * 根据条件分页查询已分配用户角色列表
+     *
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectAllocatedList(SysUser user);
+
+    /**
+     * 根据条件分页查询未分配用户角色列表
+     *
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectUnallocatedList(SysUser user);
+
+    /**
+     * 通过用户名查询用户
+     *
+     * @param userName 用户名
+     * @return 用户对象信息
+     */
+    public SysUser selectUserByUserName(String userName);
+
+    /**
+     * 通过用户ID查询用户
+     *
+     * @param userId 用户ID
+     * @return 用户对象信息
+     */
+    public SysUser selectUserById(Long userId);
+
+
+
+    /**
+     * 根据用户ID查询用户所属角色组
+     *
+     * @param userName 用户名
+     * @return 结果
+     */
+    public String selectUserRoleGroup(String userName);
+
+    /**
+     * 根据用户ID查询用户所属岗位组
+     *
+     * @param userName 用户名
+     * @return 结果
+     */
+    public String selectUserPostGroup(String userName);
+
+    /**
+     * 校验用户名称是否唯一
+     *
+     * @param userName 用户名称
+     * @return 结果
+     */
+    public String checkUserNameUnique(String userName);
+
+    /**
+     * 校验手机号码是否唯一
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public String checkPhoneUnique(SysUser user);
+
+    /**
+     * 校验email是否唯一
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public String checkEmailUnique(SysUser user);
+
+    /**
+     * 校验用户是否允许操作
+     *
+     * @param user 用户信息
+     */
+    public void checkUserAllowed(SysUser user);
+
+    /**
+     * 新增用户信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public int insertUser(SysUser user);
+
+
+
+    /**
+     * 注册用户信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public boolean registerUser(SysUser user);
+
+    /**
+     * 修改用户信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public int updateUser(SysUser user);
+
+    /**
+     * 用户授权角色
+     *
+     * @param userId  用户ID
+     * @param roleIds 角色组
+     */
+    public void insertUserAuth(Long userId, Long[] roleIds);
+
+    /**
+     * 修改用户状态
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public int updateUserStatus(SysUser user);
+
+    /**
+     * 修改用户基本信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public int updateUserProfile(SysUser user);
+
+    /**
+     * 修改用户头像
+     *
+     * @param userName 用户名
+     * @param avatar   头像地址
+     * @return 结果
+     */
+    public boolean updateUserAvatar(String userName, String avatar);
+
+    /**
+     * 重置用户密码
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    public int resetPwd(SysUser user);
+
+    /**
+     * 重置用户密码
+     *
+     * @param userName 用户名
+     * @param password 密码
+     * @return 结果
+     */
+    public int resetUserPwd(String userName, String password);
+
+    /**
+     * 通过用户ID删除用户
+     *
+     * @param userId 用户ID
+     * @return 结果
+     */
+    public int deleteUserById(Long userId);
+
+    /**
+     * 批量删除用户信息
+     *
+     * @param userIds 需要删除的用户ID
+     * @return 结果
+     */
+    public int deleteUserByIds(Long[] userIds);
+
+    public LoginUser getUserInfo(String username);
+
+
+    public Boolean register(SysUser sysUser);
+
+    public int addUser(SysUser user);
+
+
+    public int updateUserData(SysUser user);
+
+    public int resetUserPwdOne(Long userId, String password);
+
+    public CommonPage<SysUser> userList(Integer tenantId, Integer page, Integer size, long userId);
+
+
+
+}

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików