Browse Source

解决冲突

guoenzhou 2 years ago
parent
commit
c30bc9508a
38 changed files with 1340 additions and 223 deletions
  1. 11 1
      base-components/gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
  2. 44 0
      base-components/gateway/src/main/java/com/ruoyi/gateway/filter/CrosFilter.java
  3. 1 2
      base-components/gateway/src/main/resources/bootstrap.yml
  4. 8 6
      base-components/gateway/src/main/resources/logback.xml
  5. 2 2
      base-modules/service-file/src/main/resources/logback.xml
  6. 10 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/RemoteUserService.java
  7. 323 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysUser.java
  8. 160 122
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysUserVO.java
  9. 8 0
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/factory/RemoteUserFallbackFactory.java
  10. 20 7
      base-modules/service-system/service-system-api/src/main/java/com/usky/system/model/LoginUser.java
  11. 6 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/api/SysUserControllerApi.java
  12. 7 1
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysMenuController.java
  13. 1 1
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysPlatformController.java
  14. 132 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysProfileController.java
  15. 1 1
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysUserController.java
  16. 91 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysUserOnlineController.java
  17. 0 1
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TenantConfigController.java
  18. 1 9
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TokenController.java
  19. 1 1
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/UserConfigController.java
  20. 5 1
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysMenuMapper.java
  21. 23 17
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysUserMapper.java
  22. 5 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysMenuService.java
  23. 8 2
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysUserService.java
  24. 8 2
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SysLoginService.java
  25. 30 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysMenuServiceImpl.java
  26. 30 23
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysPermissionServiceImpl.java
  27. 4 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysPlatformServiceImpl.java
  28. 5 5
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysTenantConfigServiceImpl.java
  29. 53 3
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysUserServiceImpl.java
  30. 15 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/LoginBody.java
  31. 0 1
      base-modules/service-system/service-system-biz/src/main/resources/bootstrap.yml
  32. 24 6
      base-modules/service-system/service-system-biz/src/main/resources/logback.xml
  33. 18 1
      base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysMenuMapper.xml
  34. 28 5
      base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysUserMapper.xml
  35. 1 1
      usky-common/usky-common-core/src/main/java/com/usky/common/core/constants/CacheConstants.java
  36. 0 1
      usky-common/usky-common-log/src/main/java/com/usky/common/log/service/AsyncLogService.java
  37. 253 0
      usky-common/usky-common-redis/src/main/java/com/usky/common/redis/core/RedisService.java
  38. 3 1
      usky-common/usky-common-security/src/main/java/com/usky/common/security/interceptor/HeaderInterceptor.java

+ 11 - 1
base-components/gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java

@@ -21,6 +21,8 @@ import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties;
 import io.jsonwebtoken.Claims;
 import reactor.core.publisher.Mono;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 网关鉴权
  * 
@@ -72,6 +74,7 @@ public class AuthFilter implements GlobalFilter, Ordered
         {
             return unauthorizedResponse(exchange, "令牌验证失败");
         }
+        log.info("{} access {}, userId:{},userName:{},userKey:{},",request.getRemoteAddress(),request.getMethod(),userid,username,userkey);
 
         // 设置用户信息到请求
         String tenantId = JwtUtils.getTenantId(claims);
@@ -84,7 +87,14 @@ public class AuthFilter implements GlobalFilter, Ordered
         return chain.filter(exchange.mutate().request(mutate.build()).build());
     }
 
-    private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value)
+    private String buildAccessInfo(HttpServletRequest request, String token) {
+        String servletPath = request.getServletPath();
+        String method = request.getMethod();
+        String remoteHost = request.getRemoteHost();
+        return "[" + remoteHost + "]" + " access '" + method + " " + servletPath + "' with token: " + token;
+    }
+
+        private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value)
     {
         if (value == null)
         {

+ 44 - 0
base-components/gateway/src/main/java/com/ruoyi/gateway/filter/CrosFilter.java

@@ -0,0 +1,44 @@
+package com.ruoyi.gateway.filter;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.stereotype.Component;
+import org.springframework.web.cors.reactive.CorsUtils;
+import org.springframework.web.server.ServerWebExchange;
+import org.springframework.web.server.WebFilter;
+import org.springframework.web.server.WebFilterChain;
+import reactor.core.publisher.Mono;
+
+@Component
+public class CrosFilter {
+    private static final String ALLOWED_HEADERS = "x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN,token,username,client, ETag,If-None-Match";
+    private static final String ALLOWED_METHODS = "GET, PUT, POST, DELETE, OPTIONS";
+    private static final String ALLOWED_ORIGIN = "*";
+    private static final String MAX_AGE = "18000L";
+
+    @Bean
+    public WebFilter corsFilter() {
+        return (ServerWebExchange ctx, WebFilterChain chain) -> {
+            ServerHttpRequest request = ctx.getRequest();
+            //允许所有请求跨域
+//            if (CorsUtils.isCorsRequest(request)) {
+                ServerHttpResponse response = ctx.getResponse();
+                HttpHeaders headers = response.getHeaders();
+                headers.add("Access-Control-Allow-Origin", "*");
+                headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS);
+                headers.add("Access-Control-Max-Age", MAX_AGE);
+                headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS);
+                headers.add("Access-Control-Expose-Headers", "ETag");
+                headers.add("Access-Control-Allow-Credentials", "true");
+                if (request.getMethod() == HttpMethod.OPTIONS) {
+                    response.setStatusCode(HttpStatus.OK);
+                    return Mono.empty();
+                }
+//            }
+            return chain.filter(ctx);
+        };
+    }
+}

+ 1 - 2
base-components/gateway/src/main/resources/bootstrap.yml

@@ -1,12 +1,11 @@
 # Tomcat
 server:
   port: 9150 
-
 # Spring
 spring: 
   application:
     # 应用名称
-    name: ruoyi-gateway
+    name: gateway
   profiles:
     # 环境配置
     active: dev

+ 8 - 6
base-components/gateway/src/main/resources/logback.xml

@@ -59,16 +59,18 @@
     </appender>
 
     <!-- 系统模块日志级别控制  -->
-	<logger name="com.ruoyi" level="info" />
+<!--	<logger name="com.ruoyi" level="info" />-->
 	<!-- Spring日志级别控制  -->
-	<logger name="org.springframework" level="warn" />
+<!--	<logger name="org.springframework" level="warn" />-->
+
+
+    <root level="debug">
+        <appender-ref ref="console"/>
+    </root>
 
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
-	
 	<!--系统操作日志-->
     <root level="info">
+        <appender-ref ref="console"/>
         <appender-ref ref="file_info" />
         <appender-ref ref="file_error" />
     </root>

+ 2 - 2
base-modules/service-file/src/main/resources/logback.xml

@@ -58,9 +58,9 @@
     </appender>
 
     <!-- 系统模块日志级别控制  -->
-	<logger name="com.ruoyi" level="info" />
+<!--	<logger name="com.ruoyi" level="info" />-->
 	<!-- Spring日志级别控制  -->
-	<logger name="org.springframework" level="warn" />
+<!--	<logger name="org.springframework" level="warn" />-->
 
 	<root level="info">
 		<appender-ref ref="console" />

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

@@ -2,6 +2,7 @@ package com.usky.system;
 
 
 import com.usky.common.core.bean.ApiResult;
+import com.usky.system.domain.SysUser;
 import com.usky.system.domain.SysUserVO;
 import com.usky.system.factory.RemoteUserFallbackFactory;
 import com.usky.system.model.LoginUser;
@@ -11,6 +12,8 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 /**
  * 用户服务
  * 
@@ -36,4 +39,11 @@ public interface RemoteUserService
      */
     @PostMapping("/user/register")
     public ApiResult<Boolean> registerUserInfo(@RequestBody SysUserVO sysUser);
+
+    /**
+     * 用户列表查询
+     * @return
+     */
+    @GetMapping("/user/userList")
+    public ApiResult<List<SysUser>> userList();
 }

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

@@ -0,0 +1,323 @@
+package com.usky.system.domain;
+
+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 java.util.Date;
+
+
+/**
+ * 用户对象 sys_user
+ *
+ * @author yq
+ */
+public class SysUser 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;
+
+    /**
+     * 盐加密
+     */
+    private String salt;
+
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    private String delFlag;
+
+    /**
+     * 最后登录IP
+     */
+    private String loginIp;
+
+    /**
+     * 最后登录时间
+     */
+    private Date loginDate;
+
+    /**
+     * 部门对象
+     */
+    private SysDeptVO dept;
+
+    /**
+     * 角色ID
+     */
+    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;
+    }
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    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 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();
+    }
+}

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

@@ -13,71 +13,134 @@ import java.util.List;
 
 /**
  * 用户对象 sys_user
- * 
+ *
  * @author ruoyi
  */
-public class SysUserVO extends BaseEntity
-{
+public class SysUserVO extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 用户ID */
+    /**
+     * 用户ID
+     */
     private Long userId;
 
-    /** 部门ID */
+    /**
+     * 部门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 salt;
+
+    /**
+     * 帐号状态(0正常 1停用)
+     */
     private String status;
 
-    /** 删除标志(0代表存在 2代表删除) */
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
     private String delFlag;
 
-    /** 最后登录IP */
+    /**
+     * 最后登录IP
+     */
     private String loginIp;
 
-    /** 最后登录时间 */
+    /**
+     * 最后登录时间
+     */
     private Date loginDate;
 
-    /** 部门对象 */
+    /**
+     * 部门对象
+     */
     private SysDeptVO dept;
 
-    /** 角色对象 */
+    /**
+     * 角色对象
+     */
     private List<SysRoleVO> roles;
 
-    /** 角色组 */
+    /**
+     * 角色组
+     */
     private Long[] roleIds;
 
-    /** 岗位组 */
+    /**
+     * 岗位组
+     */
     private Long[] postIds;
 
-    /** 角色ID */
+    /**
+     * 角色ID
+     */
     private Long roleId;
     /**
      * 租户id
      */
     private Integer tenantId;
 
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 用户类型
+     */
+    private String userType;
+
+    /**
+     * 姓名
+     */
+    private String fullName;
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
     public Integer getTenantId() {
         return tenantId;
     }
@@ -86,236 +149,211 @@ public class SysUserVO extends BaseEntity
         this.tenantId = tenantId;
     }
 
+    public String getUserType() {
+        return userType;
+    }
 
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
 
-    public SysUserVO()
-    {
+    public String getFullName() {
+        return fullName;
+    }
 
+    public void setFullName(String fullName) {
+        this.fullName = fullName;
     }
 
-    public SysUserVO(Long userId)
-    {
+    public SysUserVO() {
+
+    }
+
+    public SysUserVO(Long userId) {
         this.userId = userId;
     }
 
-    public Long getUserId()
-    {
+    public Long getUserId() {
         return userId;
     }
 
-    public void setUserId(Long userId)
-    {
+    public void setUserId(Long userId) {
         this.userId = userId;
     }
 
-    public boolean isAdmin()
-    {
+    public boolean isAdmin() {
         return isAdmin(this.userId);
     }
 
-    public static boolean isAdmin(Long userId)
-    {
+    public static boolean isAdmin(Long userId) {
         return userId != null && 1L == userId;
     }
 
-    public Long getDeptId()
-    {
+    public Long getDeptId() {
         return deptId;
     }
 
-    public void setDeptId(Long deptId)
-    {
+    public void setDeptId(Long deptId) {
         this.deptId = deptId;
     }
 
     @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
-    public String getNickName()
-    {
+    public String getNickName() {
         return nickName;
     }
 
-    public void setNickName(String nickName)
-    {
+    public void setNickName(String nickName) {
         this.nickName = nickName;
     }
 
     @NotBlank(message = "用户账号不能为空")
     @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
-    public String getUserName()
-    {
+    public String getUserName() {
         return userName;
     }
 
-    public void setUserName(String userName)
-    {
+    public void setUserName(String userName) {
         this.userName = userName;
     }
 
     @Email(message = "邮箱格式不正确")
     @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
-    public String getEmail()
-    {
+    public String getEmail() {
         return email;
     }
 
-    public void setEmail(String email)
-    {
+    public void setEmail(String email) {
         this.email = email;
     }
 
     @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
-    public String getPhonenumber()
-    {
+    public String getPhonenumber() {
         return phonenumber;
     }
 
-    public void setPhonenumber(String phonenumber)
-    {
+    public void setPhonenumber(String phonenumber) {
         this.phonenumber = phonenumber;
     }
 
-    public String getSex()
-    {
+    public String getSex() {
         return sex;
     }
 
-    public void setSex(String sex)
-    {
+    public void setSex(String sex) {
         this.sex = sex;
     }
 
-    public String getAvatar()
-    {
+    public String getAvatar() {
         return avatar;
     }
 
-    public void setAvatar(String avatar)
-    {
+    public void setAvatar(String avatar) {
         this.avatar = avatar;
     }
 
     @JsonProperty
-    public String getPassword()
-    {
+    public String getPassword() {
         return password;
     }
 
-    public void setPassword(String password)
-    {
+    public void setPassword(String password) {
         this.password = password;
     }
 
-    public String getStatus()
-    {
+    public String getStatus() {
         return status;
     }
 
-    public void setStatus(String status)
-    {
+    public void setStatus(String status) {
         this.status = status;
     }
 
-    public String getDelFlag()
-    {
+    public String getDelFlag() {
         return delFlag;
     }
 
-    public void setDelFlag(String delFlag)
-    {
+    public void setDelFlag(String delFlag) {
         this.delFlag = delFlag;
     }
 
-    public String getLoginIp()
-    {
+    public String getLoginIp() {
         return loginIp;
     }
 
-    public void setLoginIp(String loginIp)
-    {
+    public void setLoginIp(String loginIp) {
         this.loginIp = loginIp;
     }
 
-    public Date getLoginDate()
-    {
+    public Date getLoginDate() {
         return loginDate;
     }
 
-    public void setLoginDate(Date loginDate)
-    {
+    public void setLoginDate(Date loginDate) {
         this.loginDate = loginDate;
     }
 
-    public SysDeptVO getDept()
-    {
+    public SysDeptVO getDept() {
         return dept;
     }
 
-    public void setDept(SysDeptVO dept)
-    {
+    public void setDept(SysDeptVO dept) {
         this.dept = dept;
     }
 
-    public List<SysRoleVO> getRoles()
-    {
+    public List<SysRoleVO> getRoles() {
         return roles;
     }
 
-    public void setRoles(List<SysRoleVO> roles)
-    {
+    public void setRoles(List<SysRoleVO> roles) {
         this.roles = roles;
     }
 
-    public Long[] getRoleIds()
-    {
+    public Long[] getRoleIds() {
         return roleIds;
     }
 
-    public void setRoleIds(Long[] roleIds)
-    {
+    public void setRoleIds(Long[] roleIds) {
         this.roleIds = roleIds;
     }
 
-    public Long[] getPostIds()
-    {
+    public Long[] getPostIds() {
         return postIds;
     }
 
-    public void setPostIds(Long[] postIds)
-    {
+    public void setPostIds(Long[] postIds) {
         this.postIds = postIds;
     }
 
-    public Long getRoleId()
-    {
+    public Long getRoleId() {
         return roleId;
     }
 
-    public void setRoleId(Long roleId)
-    {
+    public void setRoleId(Long roleId) {
         this.roleId = roleId;
     }
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("userId", getUserId())
-            .append("deptId", getDeptId())
-            .append("userName", getUserName())
-            .append("nickName", getNickName())
-            .append("email", getEmail())
-            .append("phonenumber", getPhonenumber())
-            .append("sex", getSex())
-            .append("avatar", getAvatar())
-            .append("password", getPassword())
-            .append("status", getStatus())
-            .append("delFlag", getDelFlag())
-            .append("loginIp", getLoginIp())
-            .append("loginDate", getLoginDate())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .append("dept", getDept())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("userId", getUserId())
+                .append("deptId", getDeptId())
+                .append("userName", getUserName())
+                .append("nickName", getNickName())
+                .append("email", getEmail())
+                .append("phonenumber", getPhonenumber())
+                .append("sex", getSex())
+                .append("avatar", getAvatar())
+                .append("password", getPassword())
+                .append("status", getStatus())
+                .append("delFlag", getDelFlag())
+                .append("loginIp", getLoginIp())
+                .append("loginDate", getLoginDate())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .append("dept", getDept())
+                .toString();
     }
 }

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

@@ -3,6 +3,7 @@ package com.usky.system.factory;
 
 import com.usky.common.core.bean.ApiResult;
 import com.usky.system.RemoteUserService;
+import com.usky.system.domain.SysUser;
 import com.usky.system.domain.SysUserVO;
 import com.usky.system.model.LoginUser;
 import org.slf4j.Logger;
@@ -10,6 +11,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * 用户服务降级处理
  * 
@@ -37,6 +40,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
             {
                 return ApiResult.error("500","注册用户失败:" + throwable.getMessage());
             }
+
+            @Override
+            public ApiResult<List<SysUser>> userList() {
+                return ApiResult.error("500","获取用户信息:" + throwable.getMessage());
+            }
         };
     }
 }

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

@@ -60,19 +60,32 @@ public class LoginUser implements Serializable
      */
     private SysUserVO sysUser;
 
-    public Integer getTenantId() {
+    /** 租户ID */
+    private Integer tenantId;
+
+    /** 用户类型 */
+    private String userType;
+
+    public String getUserType()
+    {
+        return userType;
+    }
+
+    public void setUserType(String userType)
+    {
+        this.userType = userType;
+    }
+
+    public Integer getTenantId()
+    {
         return tenantId;
     }
 
-    public void setTenantId(Integer tenantId) {
+    public void setTenantId(Integer tenantId)
+    {
         this.tenantId = tenantId;
     }
 
-    /**
-     * 租户编号
-     */
-    private Integer tenantId;
-
     public String getToken()
     {
         return token;

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

@@ -10,6 +10,8 @@ import com.usky.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @RestController
 public class SysUserControllerApi implements RemoteUserService {
 
@@ -26,4 +28,8 @@ public class SysUserControllerApi implements RemoteUserService {
     public ApiResult<Boolean> registerUserInfo(SysUserVO sysUser) {
         return ApiResult.success(iSysUserService.register(BeanMapperUtils.map(sysUser, SysUser.class)));
     }
+
+    public ApiResult<List<SysUser>>userList(){
+        return ApiResult.success(iSysUserService.userList());
+    }
 }

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

@@ -158,7 +158,13 @@ public class SysMenuController extends BaseController
     {
         Long userId = SecurityUtils.getUserId();
 
-        SysUser sysUser = userService.selectUserById(userId);
+//        LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery();
+//        queryWrapper.eq(SysUser::getDelFlag, 0).eq(SysUser::getStatus,0);
+//        List<SysUser> sysUserList = userService.list(queryWrapper);
+//        if (sysUserList.size()<=0){
+//            throw new BusinessException("用户相关配置未完成配置,请联系管理员");
+//        }
+        SysUser sysUser = userService.selectUserByIdOne(userId);
         List<SysMenu> menus = new ArrayList<>();
         if ("01".equals(sysUser.getUserType())){
             menus = menuService.selectMenuTreeByUserIdOne(SecurityUtils.getTenantId());

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

@@ -62,7 +62,7 @@ public class SysPlatformController {
     public ApiResult<Map<String, Object>> getPlatformMenu(@RequestParam Long platformId) {
 
         Long userId = SecurityUtils.getUserId();
-        List<SysMenu> menus = menuService.selectMenuList(userId);
+        List<SysMenu> menus = menuService.selectMenuListOne(userId);
         Map<String,Object> ajax = new HashMap<>();
         ajax.put("checkedKeys", sysPlatformService.getPlatformMenu(platformId));
         ajax.put("menus", menuService.buildMenuTreeSelect(menus));

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

@@ -0,0 +1,132 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.core.util.StringUtils;
+import com.usky.common.security.service.TokenService;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.system.domain.SysUser;
+import com.usky.system.domain.SysUserVO;
+import com.usky.system.domain.constants.UserConstants;
+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.*;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * 个人信息 业务处理
+ * 
+ * @author yq
+ */
+@RestController
+@RequestMapping("/user/profile")
+public class SysProfileController extends BaseController
+{
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    /**
+     * 个人信息
+     */
+    @GetMapping
+    public ApiResult profile()
+    {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        SysUserVO user = loginUser.getSysUser();
+        Map<String,Object> map = new HashMap<>();
+        map.put("user",user);
+        map.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
+        map.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
+        return ApiResult.success(map);
+    }
+
+    /**
+     * 修改用户
+     */
+    @PutMapping
+    public ApiResult updateProfile(@RequestBody SysUser user)
+    {
+        if (StringUtils.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+        {
+            throw new BusinessException("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        if (StringUtils.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+        {
+            throw new BusinessException("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        SysUserVO sysUser = loginUser.getSysUser();
+        user.setUserId(sysUser.getUserId());
+        user.setPassword(null);
+        if (userService.updateUserProfile(user) > 0)
+        {
+            // 更新缓存用户信息
+            sysUser.setNickName(user.getNickName());
+            sysUser.setPhonenumber(user.getPhonenumber());
+            sysUser.setEmail(user.getEmail());
+            sysUser.setSex(user.getSex());
+            tokenService.setLoginUser(loginUser);
+            return ApiResult.success();
+        }
+        throw new BusinessException("修改个人信息异常,请联系管理员");
+    }
+
+    /**
+     * 重置密码
+     */
+    @PutMapping("/updatePwd")
+    public ApiResult updatePwd(String oldPassword, String newPassword)
+    {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        SysUserVO sysUser = loginUser.getSysUser();
+        String userName = sysUser.getUserName();
+        String password = sysUser.getPassword();
+        if (!SecurityUtils.matchesPassword(oldPassword, password))
+        {
+            throw new BusinessException("修改密码失败,旧密码错误");
+        }
+        if (SecurityUtils.matchesPassword(newPassword, password))
+        {
+            throw new BusinessException("新密码不能与旧密码相同");
+        }
+        if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
+        {
+            // 更新缓存用户密码
+            sysUser.setPassword(SecurityUtils.encryptPassword(newPassword));
+            tokenService.setLoginUser(loginUser);
+            return ApiResult.success();
+        }
+        throw new BusinessException("修改密码异常,请联系管理员");
+    }
+
+    /**
+     * 头像上传
+     */
+    @PostMapping("/avatar")
+    public ApiResult avatar(@RequestParam String filePath) throws IOException
+    {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        SysUserVO sysUser = loginUser.getSysUser();
+        if (userService.updateUserAvatar(loginUser.getUsername(), filePath))
+        {
+            Map<String,Object> map = new HashMap<>();
+            map.put("imgUrl", filePath);
+            // 更新缓存用户头像
+            sysUser.setAvatar(filePath);
+            tokenService.setLoginUser(loginUser);
+            return ApiResult.success(map);
+        }
+        return ApiResult.success();
+    }
+}

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

@@ -79,7 +79,7 @@ public class SysUserController extends BaseController
     @PostMapping
     public ApiResult<Void> add(@Validated @RequestBody SysUser user)
     {
-        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName(),SecurityUtils.getTenantId())))
         {
             return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增用户'" + user.getUserName() + "'失败,登录账号已存在");
         }

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

@@ -0,0 +1,91 @@
+package com.usky.system.controller.web;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.constants.CacheConstants;
+import com.usky.common.log.annotation.Log;
+import com.usky.common.log.enums.BusinessType;
+import com.usky.common.redis.core.RedisService;
+import com.usky.common.security.annotation.RequiresPermissions;
+import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysUserOnline;
+import com.usky.system.model.LoginUser;
+import com.usky.system.service.ISysUserOnlineService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 在线用户监控
+ *
+ */
+@RestController
+@RequestMapping("/online")
+public class SysUserOnlineController extends BaseController
+{
+    @Autowired
+    private ISysUserOnlineService userOnlineService;
+
+    @Autowired
+    private RedisService redisService;
+
+    @RequiresPermissions("monitor:online:list")
+    @GetMapping("/list")
+    public ApiResult<TableDataInfo> list(String ipaddr, String userName)
+    {
+        Collection<String> keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
+        List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
+        for (String key : keys)
+        {
+            LoginUser user = redisService.getCacheObject(key);
+            if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
+            {
+                if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
+                }
+            }
+            else if (StringUtils.isNotEmpty(ipaddr))
+            {
+                if (StringUtils.equals(ipaddr, user.getIpaddr()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
+                }
+            }
+            else if (StringUtils.isNotEmpty(userName))
+            {
+                if (StringUtils.equals(userName, user.getUsername()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
+                }
+            }
+            else
+            {
+                userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
+            }
+        }
+        Collections.reverse(userOnlineList);
+        userOnlineList.removeAll(Collections.singleton(null));
+        return ApiResult.success(getDataTable(userOnlineList));
+    }
+
+    /**
+     * 强退用户
+     */
+    @RequiresPermissions("monitor:online:forceLogout")
+    @Log(title = "在线用户", businessType = BusinessType.FORCE)
+    @DeleteMapping("/{tokenId}")
+    public ApiResult forceLogout(@PathVariable String tokenId)
+    {
+        redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId);
+        return ApiResult.success();
+    }
+}

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

@@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.*;
 import java.util.List;
 
 /**
- * 个人中心
  *
  * @author ya
  * @since 2022-05-05

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

@@ -44,19 +44,11 @@ public class TokenController
     public ApiResult<?> login(@RequestBody LoginBody form)
     {
         // 用户登录
-        LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
+        LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(), form.getTenantId());
         // 获取登录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)

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

@@ -41,7 +41,7 @@ public class UserConfigController extends BaseController {
     @Transactional
     @PostMapping("/addUserData")
     public ApiResult<Void> addUserData(@Validated @RequestBody SysUser user) {
-        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) {
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName(),user.getTenantId()))) {
             return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增用户'" + user.getUserName() + "'失败,登录账号已存在");
         }
         user.setCreateBy(SecurityUtils.getUsername());

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

@@ -40,6 +40,8 @@ public interface SysMenuMapper extends CrudMapper<SysMenu>
      */
     public List<SysMenu> selectMenuListByUserId(SysMenu menu);
 
+    public List<SysMenu> selectMenuListByUserIdOne(Long userId);
+
     /**
      * 根据用户ID查询权限
      *
@@ -48,6 +50,8 @@ public interface SysMenuMapper extends CrudMapper<SysMenu>
      */
     public List<String> selectMenuPermsByUserId(Long userId);
 
+    public List<String> selectMenuPermsByUserIdOne(Integer tenantId);
+
     /**
      * 根据用户ID查询菜单
      *
@@ -63,7 +67,7 @@ public interface SysMenuMapper extends CrudMapper<SysMenu>
      */
     public List<SysMenu> selectMenuTreeByUserId(Long userId);
 
-    public List<SysMenu> selectMenuTreeByUserIdOne(Integer tenantId);
+    public List<SysMenu> selectMenuTreeByUserIdOne(@Param("tenantId") Integer tenantId);
 
     /**
      * 根据角色ID查询菜单树信息

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

@@ -12,15 +12,14 @@ import java.util.List;
 
 /**
  * 用户表 数据层
- * 
+ *
  * @author yq
  */
 @Repository
-public interface SysUserMapper extends CrudMapper<SysUser>
-{
+public interface SysUserMapper extends CrudMapper<SysUser> {
     /**
      * 根据条件分页查询用户列表
-     * 
+     *
      * @param sysUser 用户信息
      * @return 用户信息集合信息
      */
@@ -28,7 +27,7 @@ public interface SysUserMapper extends CrudMapper<SysUser>
 
     /**
      * 根据条件分页查询未已配用户角色列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -36,7 +35,7 @@ public interface SysUserMapper extends CrudMapper<SysUser>
 
     /**
      * 根据条件分页查询未分配用户角色列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -44,23 +43,27 @@ public interface SysUserMapper extends CrudMapper<SysUser>
 
     /**
      * 通过用户名查询用户
-     * 
+     *
      * @param userName 用户名
      * @return 用户对象信息
      */
     public SysUser selectUserByUserName(String userName);
 
+    public SysUser selectUserByUserNameOne(@Param("userName") String userName, @Param("tenantId") Integer tenantId);
+
     /**
      * 通过用户ID查询用户
-     * 
+     *
      * @param userId 用户ID
      * @return 用户对象信息
      */
     public SysUser selectUserById(Long userId);
 
+    public SysUser selectUserByIdOne(Long userId);
+
     /**
      * 新增用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -68,7 +71,7 @@ public interface SysUserMapper extends CrudMapper<SysUser>
 
     /**
      * 修改用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -76,16 +79,16 @@ public interface SysUserMapper extends CrudMapper<SysUser>
 
     /**
      * 修改用户头像
-     * 
+     *
      * @param userName 用户名
-     * @param avatar 头像地址
+     * @param avatar   头像地址
      * @return 结果
      */
     public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar);
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param userName 用户名
      * @param password 密码
      * @return 结果
@@ -94,7 +97,7 @@ public interface SysUserMapper extends CrudMapper<SysUser>
 
     /**
      * 通过用户ID删除用户
-     * 
+     *
      * @param userId 用户ID
      * @return 结果
      */
@@ -102,7 +105,7 @@ public interface SysUserMapper extends CrudMapper<SysUser>
 
     /**
      * 批量删除用户信息
-     * 
+     *
      * @param userIds 需要删除的用户ID
      * @return 结果
      */
@@ -110,11 +113,11 @@ public interface SysUserMapper extends CrudMapper<SysUser>
 
     /**
      * 校验用户名称是否唯一
-     * 
+     *
      * @param userName 用户名称
      * @return 结果
      */
-    public int checkUserNameUnique(String userName,Integer tenantId);
+    public int checkUserNameUnique(@Param("userName") String userName, @Param("tenantId") Integer tenantId);
 
     /**
      * 校验手机号码是否唯一
@@ -138,4 +141,7 @@ public interface SysUserMapper extends CrudMapper<SysUser>
                                      @Param("current") Integer current,
                                      @Param("size") Integer size,
                                      @Param("userId") long userId);
+
+    public List<SysUser> userList(@Param("tenantId") Integer tenantId,
+                                  @Param("createBy") String createBy);
 }

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

@@ -33,6 +33,9 @@ public interface ISysMenuService extends CrudService<SysMenu>
      */
     public List<SysMenu> selectMenuList(SysMenu menu, Long userId);
 
+
+    List<SysMenu> selectMenuListOne(Long userId);
+
     /**
      * 根据用户ID查询权限
      * 
@@ -41,6 +44,8 @@ public interface ISysMenuService extends CrudService<SysMenu>
      */
     public Set<String> selectMenuPermsByUserId(Long userId);
 
+    public Set<String> selectMenuPermsByUserIdOne(Integer tenantId);
+
     /**
      * 根据用户ID查询菜单树信息
      * 

+ 8 - 2
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysUserService.java

@@ -45,6 +45,8 @@ public interface ISysUserService extends CrudService<SysUser> {
      */
     public SysUser selectUserByUserName(String userName);
 
+    public SysUser selectUserByUserNameOne(String userName,Integer tenantId);
+
     /**
      * 通过用户ID查询用户
      *
@@ -53,7 +55,7 @@ public interface ISysUserService extends CrudService<SysUser> {
      */
     public SysUser selectUserById(Long userId);
 
-
+    public SysUser selectUserByIdOne(Long userId);
 
     /**
      * 根据用户ID查询用户所属角色组
@@ -77,7 +79,7 @@ public interface ISysUserService extends CrudService<SysUser> {
      * @param userName 用户名称
      * @return 结果
      */
-    public String checkUserNameUnique(String userName);
+    public String checkUserNameUnique(String userName,Integer tenantId);
 
     /**
      * 校验手机号码是否唯一
@@ -196,6 +198,8 @@ public interface ISysUserService extends CrudService<SysUser> {
 
     public LoginUser getUserInfo(String username);
 
+    public LoginUser getUserInfoOne(String username,Integer tenantId);
+
 
     public Boolean register(SysUser sysUser);
 
@@ -208,6 +212,8 @@ public interface ISysUserService extends CrudService<SysUser> {
 
     public CommonPage<SysUser> userList(Integer tenantId, Integer page, Integer size, long userId);
 
+    public List<SysUser> userList();
+
 
 
 }

+ 8 - 2
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SysLoginService.java

@@ -35,7 +35,7 @@ public class SysLoginService
     /**
      * 登录
      */
-    public LoginUser login(String username, String password)
+    public LoginUser login(String username, String password,Integer tenantId)
     {
         // 用户名或密码为空 错误
         if (StringUtils.isAnyBlank(username, password))
@@ -59,7 +59,13 @@ public class SysLoginService
         }
 
         // 查询用户信息
-        LoginUser loginUser = sysUserService.getUserInfo(username);
+        LoginUser loginUser = new LoginUser();
+        if (tenantId!=null&&tenantId!=0){
+            loginUser = sysUserService.getUserInfoOne(username,tenantId);
+        }else {
+            loginUser = sysUserService.getUserInfo(username);
+        }
+
         SysUserVO user = loginUser.getSysUser();
         if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
         {

+ 30 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysMenuServiceImpl.java

@@ -75,6 +75,14 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
         return menuList;
     }
 
+
+    @Override
+    public List<SysMenu> selectMenuListOne(Long userId)
+    {
+        List<SysMenu> menuList = menuMapper.selectMenuListByUserIdOne(userId);
+        return menuList;
+    }
+
     /**
      * 根据用户ID查询权限
      *
@@ -96,6 +104,28 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
         return permsSet;
     }
 
+    /**
+     * 根据租戶ID查询权限
+     *
+     * @param tenantId 租戶ID
+     * @return 权限列表
+     */
+    @Override
+    public Set<String> selectMenuPermsByUserIdOne(Integer tenantId)
+    {
+        List<String> perms = menuMapper.selectMenuPermsByUserIdOne(tenantId);
+        Set<String> permsSet = new HashSet<>();
+        for (String perm : perms)
+        {
+            if (StringUtils.isNotEmpty(perm))
+            {
+                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
+            }
+        }
+        return permsSet;
+    }
+
+
     /**
      * 根据用户ID查询菜单
      *

+ 30 - 23
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysPermissionServiceImpl.java

@@ -1,65 +1,72 @@
 package com.usky.system.service.impl;
 
-import java.util.HashSet;
-import java.util.Set;
-
+import com.usky.system.domain.SysUser;
 import com.usky.system.domain.SysUserVO;
 import com.usky.system.service.ISysMenuService;
 import com.usky.system.service.ISysPermissionService;
 import com.usky.system.service.ISysRoleService;
+import com.usky.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashSet;
+import java.util.Set;
+
 
 @Service
-public class SysPermissionServiceImpl implements ISysPermissionService
-{
+public class SysPermissionServiceImpl implements ISysPermissionService {
     @Autowired
     private ISysRoleService roleService;
 
     @Autowired
     private ISysMenuService menuService;
 
+    @Autowired
+    private ISysUserService userService;
+
     /**
      * 获取角色数据权限
-     * 
+     *
      * @param userId 用户Id
      * @return 角色权限信息
      */
     @Override
-    public Set<String> getRolePermission(Long userId)
-    {
+    public Set<String> getRolePermission(Long userId) {
         Set<String> roles = new HashSet<String>();
         // 管理员拥有所有权限
-        if (SysUserVO.isAdmin(userId))
-        {
+        SysUser sysUser = userService.selectUserByIdOne(userId);
+        if ("01".equals(sysUser.getUserType())) {
             roles.add("admin");
-        }
-        else
-        {
-            roles.addAll(roleService.selectRolePermissionByUserId(userId));
+        } else {
+            if (SysUserVO.isAdmin(userId)) {
+                roles.add("admin");
+            } else {
+                roles.addAll(roleService.selectRolePermissionByUserId(userId));
+            }
         }
         return roles;
     }
 
     /**
      * 获取菜单数据权限
-     * 
+     *
      * @param userId 用户Id
      * @return 菜单权限信息
      */
     @Override
-    public Set<String> getMenuPermission(Long userId)
-    {
+    public Set<String> getMenuPermission(Long userId) {
         Set<String> perms = new HashSet<String>();
         // 管理员拥有所有权限
-        if (SysUserVO.isAdmin(userId))
-        {
+        SysUser sysUser = userService.selectUserByIdOne(userId);
+        if ("01".equals(sysUser.getUserType())) {
             perms.add("*:*:*");
-        }
-        else
-        {
-            perms.addAll(menuService.selectMenuPermsByUserId(userId));
+//                perms.addAll(menuService.selectMenuPermsByUserIdOne(SecurityUtils.getTenantId()));
+        } else {
+            if (SysUserVO.isAdmin(userId)) {
+                perms.add("*:*:*");
+            } else {
+                perms.addAll(menuService.selectMenuPermsByUserId(userId));
+            }
         }
         return perms;
     }

+ 4 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysPlatformServiceImpl.java

@@ -87,6 +87,10 @@ public class SysPlatformServiceImpl extends AbstractCrudService<SysPlatformMappe
             this.save(sysPlatform);
             Integer fid = sysPlatform.getId();
             platformMenuVo.setPlatformId(fid.longValue());
+        }else {
+            sysPlatform.setId(platformMenuVo.getPlatformId().intValue());
+            sysPlatform.setPlatformName(platformMenuVo.getPlatformName());
+            this.updateById(sysPlatform);
         }
 
         Long[] arr = platformMenuVo.getMenuIds();

+ 5 - 5
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysTenantConfigServiceImpl.java

@@ -51,12 +51,12 @@ public class SysTenantConfigServiceImpl extends AbstractCrudService<SysTenantCon
 
     @Override
     public List<SysTenantConfig> getMiddleConfig() {
-        SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
-        if ("".equals(sysUser) && sysUser == null) {
-            throw new BusinessException("无此租户,请联系管理员");
-        }
+//        SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+//        if ("".equals(sysUser) && sysUser == null) {
+//            throw new BusinessException("无此租户,请联系管理员");
+//        }
         LambdaQueryWrapper<SysTenantConfig> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(SysTenantConfig::getTenantId, sysUser.getTenantId());
+        queryWrapper.eq(SysTenantConfig::getTenantId, SecurityUtils.getTenantId());
         List<SysTenantConfig> list = this.list(queryWrapper);
         return list;
     }

+ 53 - 3
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysUserServiceImpl.java

@@ -103,6 +103,11 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
         return userMapper.selectUserByUserName(userName);
     }
 
+    @Override
+    public SysUser selectUserByUserNameOne(String userName,Integer tenantId) {
+        return userMapper.selectUserByUserNameOne(userName,tenantId);
+    }
+
     /**
      * 通过用户ID查询用户
      *
@@ -114,6 +119,16 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
         return userMapper.selectUserById(userId);
     }
 
+    /**
+     * 通过用户ID查询用户
+     *
+     * @param userId 用户ID
+     * @return 用户对象信息
+     */
+    @Override
+    public SysUser selectUserByIdOne(Long userId) {
+        return userMapper.selectUserByIdOne(userId);
+    }
 
     /**
      * 查询用户所属角色组
@@ -160,8 +175,8 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
      * @return 结果
      */
     @Override
-    public String checkUserNameUnique(String userName) {
-        int count = userMapper.checkUserNameUnique(userName,SecurityUtils.getTenantId());
+    public String checkUserNameUnique(String userName,Integer tenantId) {
+        int count = userMapper.checkUserNameUnique(userName,tenantId);
         if (count > 0) {
             return UserConstants.NOT_UNIQUE;
         }
@@ -454,6 +469,26 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
         return SysUser;
     }
 
+    @Override
+    public LoginUser getUserInfoOne(String username,Integer tenantId)
+    {
+        SysUser sysUser = this.selectUserByUserNameOne(username,tenantId);
+        if (Objects.isNull(sysUser))
+        {
+            throw new BusinessException("用户信息/密码不存在");
+        }
+        // 角色集合
+        Set<String> roles = sysPermissionService.getRolePermission(sysUser);
+        // 权限集合
+        Set<String> permissions = sysPermissionService.getMenuPermission(sysUser);
+        LoginUser SysUser = new LoginUser();
+        SysUserVO sysUserVO = BeanMapperUtils.map(sysUser, SysUserVO.class);
+        SysUser.setSysUser(sysUserVO);
+        SysUser.setRoles(roles);
+        SysUser.setPermissions(permissions);
+        return SysUser;
+    }
+
     @Override
     public Boolean register(SysUser sysUser)
     {
@@ -462,7 +497,7 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
         {
             throw new BusinessException("当前系统没有开启注册功能!");
         }
-        if (UserConstants.NOT_UNIQUE.equals(this.checkUserNameUnique(username)))
+        if (UserConstants.NOT_UNIQUE.equals(this.checkUserNameUnique(username,SecurityUtils.getTenantId())))
         {
             throw new BusinessException("保存用户'" + username + "'失败,注册账号已存在");
         }
@@ -508,4 +543,19 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
         List<SysUser> list = userMapper.getUserData(tenantId, current, size,userId);
         return new CommonPage<>(list, total, size, page);
     }
+
+
+    public List<SysUser> userList(){
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        String userType = null;
+        if (loginUser != null && !"".equals(loginUser)) {
+            userType = loginUser.getUserType();
+        }
+        String userName = null;
+        if ("00".equals(userType)){
+            userName = SecurityUtils.getUsername();
+        }
+        List<SysUser> list = userMapper.userList(SecurityUtils.getTenantId(),userName);
+        return list;
+    }
 }

+ 15 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/LoginBody.java

@@ -17,6 +17,11 @@ public class LoginBody
      */
     private String password;
 
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
+    
     public String getUsername()
     {
         return username;
@@ -36,4 +41,14 @@ public class LoginBody
     {
         this.password = password;
     }
+
+    public Integer getTenantId()
+    {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId)
+    {
+        this.tenantId = tenantId;
+    }
 }

+ 0 - 1
base-modules/service-system/service-system-biz/src/main/resources/bootstrap.yml

@@ -1,7 +1,6 @@
 # Tomcat
 server:
   port: 9886
-
 # Spring
 spring:
   application:

+ 24 - 6
base-modules/service-system/service-system-biz/src/main/resources/logback.xml

@@ -1,10 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
     <!-- 日志存放路径 -->
-	<property name="log.path" value="/var/log/uskycloud/usky-system" />
+	<property name="log.path" value="/var/log/uskycloud/service-system" />
    <!-- 日志输出格式 -->
 	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
+    <property name="SQL_PACKAGE" value="com.usky.system.mapper"/>
+
     <!-- 控制台输出 -->
 	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
 		<encoder>
@@ -12,6 +14,20 @@
 		</encoder>
 	</appender>
 
+    <appender name="file_sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>${log.path}/sql.log</File>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <maxIndex>10</maxIndex>
+            <fileNamePattern>${log.path}/sql.log.%i</fileNamePattern>
+        </rollingPolicy>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>100MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
     <!-- 系统日志输出 -->
 	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
 	    <file>${log.path}/info.log</file>
@@ -58,17 +74,19 @@
     </appender>
 
     <!-- 系统模块日志级别控制  -->
-	<logger name="com.usky" level="info" />
+<!--	<logger name="com.usky" level="info" />-->
 	<!-- Spring日志级别控制  -->
-	<logger name="org.springframework" level="warn" />
+<!--	<logger name="org.springframework" level="warn" />-->
 
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
+    <logger name="${SQL_PACKAGE}" additivity="false" level="DEBUG">
+        <appender-ref ref="console"/>
+        <appender-ref ref="file_sql"/>
+    </logger>
 	
 	<!--系统操作日志-->
     <root level="info">
         <appender-ref ref="file_info" />
         <appender-ref ref="file_error" />
+        <appender-ref ref="console" />
     </root>
 </configuration>

+ 18 - 1
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -101,6 +101,14 @@
         order by m.parent_id, m.order_num
     </select>
 
+    <select id="selectMenuListByUserIdOne" resultMap="SysMenuResult">
+        select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.visible, m.status,
+        ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
+        from sys_menu m
+        order by m.parent_id, m.order_num
+    </select>
+
+
     <select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
         select distinct m.menu_id,
                         m.parent_id,
@@ -128,7 +136,7 @@
         order by m.parent_id, m.order_num
     </select>
 
-    <select id="selectMenuTreeByUserIdOne" parameterType="Long" resultMap="SysMenuResult">
+    <select id="selectMenuTreeByUserIdOne" resultMap="SysMenuResult">
         SELECT
             m.menu_id,
             m.parent_id,
@@ -187,6 +195,15 @@
           and ur.user_id = #{userId}
     </select>
 
+    <select id="selectMenuPermsByUserIdOne" resultType="String">
+        select distinct m.perms
+        from sys_menu m
+                join sys_tenant_menu t on m.menu_id = t.menu_id
+        where m.status = '0'
+          and t.tenant_id = #{tenantId}
+    </select>
+
+
     <select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult">
         <include refid="selectMenuVo"/>
         where menu_id = #{menuId}

+ 28 - 5
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysUserMapper.xml

@@ -53,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<sql id="selectUserVo">
         select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
         d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
-        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
+        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.tenant_id as tenant_id
         from sys_user u
 		    left join sys_dept d on u.dept_id = d.dept_id
 		    left join sys_user_role ur on u.user_id = ur.user_id
@@ -135,13 +135,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	    <include refid="selectUserVo"/>
 		where u.user_name = #{userName}
 	</select>
+
+	<select id="selectUserByUserNameOne" resultMap="SysUserResult">
+		<include refid="selectUserVo"/>
+		where u.user_name = #{userName} and u.tenant_id = #{tenantId}
+	</select>
 	
 	<select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
 		<include refid="selectUserVo"/>
 		where u.user_id = #{userId}
 	</select>
+
+	<select id="selectUserByIdOne" parameterType="Long" resultMap="SysUserResult">
+		select * from sys_user as u
+		where u.user_id = #{userId}
+	</select>
 	
-	<select id="checkUserNameUnique" parameterType="String" resultType="int">
+	<select id="checkUserNameUnique" resultType="int">
 		select count(1) from sys_user where user_name = #{userName} and del_flag != '2'
 		 <if test="tenantId != null and tenantId != 0">
 			 and tenant_id = #{tenantId}
@@ -246,15 +256,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		where
 		del_flag=0 and user_type='01'
 		<if test="tenantId != null and tenantId != 0">
-			and 	tenant_id = #{tenantId}
+			and tenant_id = #{tenantId}
 		</if>
 		<if test="userId != null and userId != 0">
-			and 	user_id = #{userId}
+			and user_id = #{userId}
 		</if>
 		order by user_id
 		<if test="current != null and size != null and size != 0">
 			limit #{current},#{size}
 		</if>
 	</select>
-	
+
+
+	<select id="userList" resultType="com.usky.system.domain.SysUser">
+		SELECT * FROM sys_user
+		where
+		del_flag=0 and status=0
+		<if test="tenantId != null and tenantId != 0">
+			and tenant_id = #{tenantId}
+		</if>
+		<if test="createBy != null and createBy != ''">
+			and create_by = #{createBy}
+		</if>
+		order by user_id desc
+	</select>
 </mapper> 

+ 1 - 1
usky-common/usky-common-core/src/main/java/com/usky/common/core/constants/CacheConstants.java

@@ -10,7 +10,7 @@ public class CacheConstants
     /**
      * 缓存有效期,默认720(分钟)
      */
-    public final static long EXPIRATION = 7200;
+    public final static long EXPIRATION = 720;
 
     /**
      * 缓存刷新时间,默认120(分钟)

+ 0 - 1
usky-common/usky-common-log/src/main/java/com/usky/common/log/service/AsyncLogService.java

@@ -5,7 +5,6 @@ import com.usky.system.domain.SysOperLogVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
-import sun.security.util.SecurityConstants;
 
 /**
  * 异步调用日志服务

+ 253 - 0
usky-common/usky-common-redis/src/main/java/com/usky/common/redis/core/RedisService.java

@@ -0,0 +1,253 @@
+package com.usky.common.redis.core;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.BoundSetOperations;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * spring redis 工具类
+ *
+ * @author ruoyi
+ **/
+@SuppressWarnings(value = { "unchecked", "rawtypes" })
+@Component
+public class RedisService
+{
+    @Autowired
+    public RedisTemplate redisTemplate;
+
+    /**
+     * 缓存基本的对象,Integer、String、实体类等
+     *
+     * @param key 缓存的键值
+     * @param value 缓存的值
+     */
+    public <T> void setCacheObject(final String key, final T value)
+    {
+        redisTemplate.opsForValue().set(key, value);
+    }
+
+    /**
+     * 缓存基本的对象,Integer、String、实体类等
+     *
+     * @param key 缓存的键值
+     * @param value 缓存的值
+     * @param timeout 时间
+     * @param timeUnit 时间颗粒度
+     */
+    public <T> void setCacheObject(final String key, final T value, final Long timeout, final TimeUnit timeUnit)
+    {
+        redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
+    }
+
+    /**
+     * 设置有效时间
+     *
+     * @param key Redis键
+     * @param timeout 超时时间
+     * @return true=设置成功;false=设置失败
+     */
+    public boolean expire(final String key, final long timeout)
+    {
+        return expire(key, timeout, TimeUnit.SECONDS);
+    }
+
+    /**
+     * 设置有效时间
+     *
+     * @param key Redis键
+     * @param timeout 超时时间
+     * @param unit 时间单位
+     * @return true=设置成功;false=设置失败
+     */
+    public boolean expire(final String key, final long timeout, final TimeUnit unit)
+    {
+        return redisTemplate.expire(key, timeout, unit);
+    }
+
+    /**
+     * 获取有效时间
+     *
+     * @param key Redis键
+     * @return 有效时间
+     */
+    public long getExpire(final String key)
+    {
+        return redisTemplate.getExpire(key);
+    }
+
+    /**
+     * 判断 key是否存在
+     *
+     * @param key 键
+     * @return true 存在 false不存在
+     */
+    public Boolean hasKey(String key)
+    {
+        return redisTemplate.hasKey(key);
+    }
+
+    /**
+     * 获得缓存的基本对象。
+     *
+     * @param key 缓存键值
+     * @return 缓存键值对应的数据
+     */
+    public <T> T getCacheObject(final String key)
+    {
+        ValueOperations<String, T> operation = redisTemplate.opsForValue();
+        return operation.get(key);
+    }
+
+    /**
+     * 删除单个对象
+     *
+     * @param key
+     */
+    public boolean deleteObject(final String key)
+    {
+        return redisTemplate.delete(key);
+    }
+
+    /**
+     * 删除集合对象
+     *
+     * @param collection 多个对象
+     * @return
+     */
+    public long deleteObject(final Collection collection)
+    {
+        return redisTemplate.delete(collection);
+    }
+
+    /**
+     * 缓存List数据
+     *
+     * @param key 缓存的键值
+     * @param dataList 待缓存的List数据
+     * @return 缓存的对象
+     */
+    public <T> long setCacheList(final String key, final List<T> dataList)
+    {
+        Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
+        return count == null ? 0 : count;
+    }
+
+    /**
+     * 获得缓存的list对象
+     *
+     * @param key 缓存的键值
+     * @return 缓存键值对应的数据
+     */
+    public <T> List<T> getCacheList(final String key)
+    {
+        return redisTemplate.opsForList().range(key, 0, -1);
+    }
+
+    /**
+     * 缓存Set
+     *
+     * @param key 缓存键值
+     * @param dataSet 缓存的数据
+     * @return 缓存数据的对象
+     */
+    public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet)
+    {
+        BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);
+        Iterator<T> it = dataSet.iterator();
+        while (it.hasNext())
+        {
+            setOperation.add(it.next());
+        }
+        return setOperation;
+    }
+
+    /**
+     * 获得缓存的set
+     *
+     * @param key
+     * @return
+     */
+    public <T> Set<T> getCacheSet(final String key)
+    {
+        return redisTemplate.opsForSet().members(key);
+    }
+
+    /**
+     * 缓存Map
+     *
+     * @param key
+     * @param dataMap
+     */
+    public <T> void setCacheMap(final String key, final Map<String, T> dataMap)
+    {
+        if (dataMap != null) {
+            redisTemplate.opsForHash().putAll(key, dataMap);
+        }
+    }
+
+    /**
+     * 获得缓存的Map
+     *
+     * @param key
+     * @return
+     */
+    public <T> Map<String, T> getCacheMap(final String key)
+    {
+        return redisTemplate.opsForHash().entries(key);
+    }
+
+    /**
+     * 往Hash中存入数据
+     *
+     * @param key Redis键
+     * @param hKey Hash键
+     * @param value 值
+     */
+    public <T> void setCacheMapValue(final String key, final String hKey, final T value)
+    {
+        redisTemplate.opsForHash().put(key, hKey, value);
+    }
+
+    /**
+     * 获取Hash中的数据
+     *
+     * @param key Redis键
+     * @param hKey Hash键
+     * @return Hash中的对象
+     */
+    public <T> T getCacheMapValue(final String key, final String hKey)
+    {
+        HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();
+        return opsForHash.get(key, hKey);
+    }
+
+    /**
+     * 获取多个Hash中的数据
+     *
+     * @param key Redis键
+     * @param hKeys Hash键集合
+     * @return Hash对象集合
+     */
+    public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys)
+    {
+        return redisTemplate.opsForHash().multiGet(key, hKeys);
+    }
+
+    /**
+     * 获得缓存的基本对象列表
+     *
+     * @param pattern 字符串前缀
+     * @return 对象列表
+     */
+    public Collection<String> keys(final String pattern)
+    {
+        return redisTemplate.keys(pattern);
+    }
+}

+ 3 - 1
usky-common/usky-common-security/src/main/java/com/usky/common/security/interceptor/HeaderInterceptor.java

@@ -9,6 +9,7 @@ import com.usky.common.security.auth.AuthUtil;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.system.model.LoginUser;
 import io.jsonwebtoken.Claims;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.AsyncHandlerInterceptor;
 
@@ -22,6 +23,7 @@ import java.util.Objects;
  *
  * @author ruoyi
  */
+@Slf4j
 public class HeaderInterceptor implements AsyncHandlerInterceptor
 {
     @Override
@@ -31,7 +33,7 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
         {
             return true;
         }
-
+        log.info("uri:{}",request.getRequestURL());
         SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID));
         SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME));
         SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY));