From 50599487f894ed3bf0297a2906f172e91f3ffba2 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 17 九月 2021 14:48:36 +0800
Subject: [PATCH] update [重大改动] 将 framework 与 system 模块 解耦
---
ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java | 7
ruoyi-framework/pom.xml | 2
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java | 2
ruoyi-admin/pom.xml | 5
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java | 7
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java | 65 ++++++++
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/OperLogDTO.java | 107 +++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/PermissionService.java | 2
/dev/null | 97 ------------
ruoyi-common/src/main/java/com/ruoyi/common/core/service/OperLogService.java | 9 +
ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java | 8
ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java | 11
ruoyi-common/src/main/java/com/ruoyi/common/core/service/TokenService.java | 69 ++++++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java | 4
ruoyi-common/src/main/java/com/ruoyi/common/properties/TokenProperties.java | 2
ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java | 6
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java | 23 ++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java | 2
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java | 17 +-
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserDetailsServiceImpl.java | 18 +-
ruoyi-common/src/main/java/com/ruoyi/common/core/service/LogininforService.java | 9 +
24 files changed, 331 insertions(+), 149 deletions(-)
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index f3d9ca9..37cc33b 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -36,6 +36,11 @@
<artifactId>ruoyi-framework</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>ruoyi-system</artifactId>
+ </dependency>
+
<!-- 瀹氭椂浠诲姟-->
<dependency>
<groupId>com.ruoyi</groupId>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 76141b9..287d4c5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -6,8 +6,8 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.framework.web.service.SysLoginService;
-import com.ruoyi.framework.web.service.SysPermissionService;
+import com.ruoyi.system.service.SysLoginService;
+import com.ruoyi.system.service.SysPermissionService;
import com.ruoyi.system.service.ISysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
index 422355d..66dfd07 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
@@ -7,9 +7,9 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.service.TokenService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.domain.SysOss;
import com.ruoyi.system.service.ISysOssService;
import com.ruoyi.system.service.ISysUserService;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
index 4c2cc7c..64904a0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
@@ -4,7 +4,7 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.RegisterBody;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.web.service.SysRegisterService;
+import com.ruoyi.system.service.SysRegisterService;
import com.ruoyi.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
index b1cd263..e5f4032 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -9,13 +9,13 @@
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.service.TokenService;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.service.SysPermissionService;
-import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.SysPermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/OperLogDTO.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/OperLogDTO.java
new file mode 100644
index 0000000..f5132ef
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/OperLogDTO.java
@@ -0,0 +1,107 @@
+package com.ruoyi.common.core.domain.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 鎿嶄綔鏃ュ織璁板綍琛� oper_log
+ *
+ * @author ruoyi
+ */
+
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class OperLogDTO implements Serializable {
+ 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 operLocation;
+
+ /**
+ * 璇锋眰鍙傛暟
+ */
+ private String operParam;
+
+ /**
+ * 杩斿洖鍙傛暟
+ */
+ private String jsonResult;
+
+ /**
+ * 鎿嶄綔鐘舵�侊紙0姝e父 1寮傚父锛�
+ */
+ private Integer status;
+
+ /**
+ * 閿欒娑堟伅
+ */
+ private String errorMsg;
+
+ /**
+ * 鎿嶄綔鏃堕棿
+ */
+ private Date operTime;
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/LogininforService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/LogininforService.java
new file mode 100644
index 0000000..1bf34d5
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/LogininforService.java
@@ -0,0 +1,9 @@
+package com.ruoyi.common.core.service;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface LogininforService {
+
+ void recordLogininfor(String username, String status, String message,
+ HttpServletRequest request, Object... args);
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/OperLogService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/OperLogService.java
new file mode 100644
index 0000000..71e5647
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/OperLogService.java
@@ -0,0 +1,9 @@
+package com.ruoyi.common.core.service;
+
+import com.ruoyi.common.core.domain.dto.OperLogDTO;
+import org.springframework.scheduling.annotation.Async;
+
+public interface OperLogService {
+ @Async
+ void recordOper(OperLogDTO operLogDTO);
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/TokenService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/TokenService.java
new file mode 100644
index 0000000..d9a9f0a
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/TokenService.java
@@ -0,0 +1,69 @@
+package com.ruoyi.common.core.service;
+
+import com.ruoyi.common.core.domain.model.LoginUser;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * token楠岃瘉澶勭悊
+ *
+ * @author Lion Li
+ */
+public interface TokenService {
+
+ /**
+ * 鑾峰彇鐢ㄦ埛韬唤淇℃伅
+ *
+ * @return 鐢ㄦ埛淇℃伅
+ */
+ LoginUser getLoginUser(HttpServletRequest request);
+
+ /**
+ * 璁剧疆鐢ㄦ埛韬唤淇℃伅
+ */
+ void setLoginUser(LoginUser loginUser);
+
+ /**
+ * 鍒犻櫎鐢ㄦ埛韬唤淇℃伅
+ */
+ void delLoginUser(String token);
+
+ /**
+ * 鍒涘缓浠ょ墝
+ *
+ * @param loginUser 鐢ㄦ埛淇℃伅
+ * @return 浠ょ墝
+ */
+ String createToken(LoginUser loginUser);
+
+ /**
+ * 楠岃瘉浠ょ墝鏈夋晥鏈燂紝鐩稿樊涓嶈冻20鍒嗛挓锛岃嚜鍔ㄥ埛鏂扮紦瀛�
+ *
+ * @param loginUser
+ * @return 浠ょ墝
+ */
+ void verifyToken(LoginUser loginUser);
+
+ /**
+ * 鍒锋柊浠ょ墝鏈夋晥鏈�
+ *
+ * @param loginUser 鐧诲綍淇℃伅
+ */
+ void refreshToken(LoginUser loginUser);
+
+ /**
+ * 璁剧疆鐢ㄦ埛浠g悊淇℃伅
+ *
+ * @param loginUser 鐧诲綍淇℃伅
+ */
+ void setUserAgent(LoginUser loginUser);
+
+ /**
+ * 浠庝护鐗屼腑鑾峰彇鐢ㄦ埛鍚�
+ *
+ * @param token 浠ょ墝
+ * @return 鐢ㄦ埛鍚�
+ */
+ String getUsernameFromToken(String token);
+
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/TokenProperties.java b/ruoyi-common/src/main/java/com/ruoyi/common/properties/TokenProperties.java
similarity index 91%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/TokenProperties.java
rename to ruoyi-common/src/main/java/com/ruoyi/common/properties/TokenProperties.java
index f695c1c..927a941 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/TokenProperties.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/properties/TokenProperties.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.config.properties;
+package com.ruoyi.common.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml
index 680e6ec..0a147a8 100644
--- a/ruoyi-framework/pom.xml
+++ b/ruoyi-framework/pom.xml
@@ -64,7 +64,7 @@
<!-- 绯荤粺妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
- <artifactId>ruoyi-system</artifactId>
+ <artifactId>ruoyi-common</artifactId>
</dependency>
</dependencies>
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
index 78a7b3a..246e428 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
@@ -4,13 +4,14 @@
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessStatus;
import com.ruoyi.common.enums.HttpMethod;
+import com.ruoyi.common.core.service.OperLogService;
+import com.ruoyi.common.core.domain.dto.OperLogDTO;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
-import com.ruoyi.framework.web.service.AsyncService;
-import com.ruoyi.system.domain.SysOperLog;
+import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.AfterReturning;
@@ -18,8 +19,6 @@
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.validation.BindingResult;
import org.springframework.web.multipart.MultipartFile;
@@ -36,11 +35,11 @@
*
* @author ruoyi
*/
+@Slf4j
@Aspect
@Component
public class LogAspect
{
- private static final Logger log = LoggerFactory.getLogger(LogAspect.class);
// 閰嶇疆缁囧叆鐐�
@Pointcut("@annotation(com.ruoyi.common.annotation.Log)")
@@ -86,7 +85,7 @@
LoginUser loginUser = SecurityUtils.getLoginUser();
// *========鏁版嵁搴撴棩蹇�=========*//
- SysOperLog operLog = new SysOperLog();
+ OperLogDTO operLog = new OperLogDTO();
operLog.setStatus(BusinessStatus.SUCCESS.ordinal());
// 璇锋眰鐨勫湴鍧�
String ip = ServletUtils.getClientIP();
@@ -111,7 +110,7 @@
// 澶勭悊璁剧疆娉ㄨВ涓婄殑鍙傛暟
getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult);
// 淇濆瓨鏁版嵁搴�
- SpringUtils.getBean(AsyncService.class).recordOper(operLog);
+ SpringUtils.getBean(OperLogService.class).recordOper(operLog);
}
catch (Exception exp)
{
@@ -129,7 +128,7 @@
* @param operLog 鎿嶄綔鏃ュ織
* @throws Exception
*/
- public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception
+ public void getControllerMethodDescription(JoinPoint joinPoint, Log log, OperLogDTO operLog, Object jsonResult) throws Exception
{
// 璁剧疆action鍔ㄤ綔
operLog.setBusinessType(log.businessType().ordinal());
@@ -156,7 +155,7 @@
* @param operLog 鎿嶄綔鏃ュ織
* @throws Exception 寮傚父
*/
- private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog) throws Exception
+ private void setRequestValue(JoinPoint joinPoint, OperLogDTO operLog) throws Exception
{
String requestMethod = operLog.getRequestMethod();
if (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod))
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java
index b2256c9..47b7fbb 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java
@@ -9,7 +9,7 @@
import com.ruoyi.common.utils.RedisUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.config.properties.RepeatSubmitProperties;
-import com.ruoyi.framework.config.properties.TokenProperties;
+import com.ruoyi.common.properties.TokenProperties;
import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
index 188e24f..5439a97 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
@@ -1,9 +1,9 @@
package com.ruoyi.framework.security.filter;
import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.service.TokenService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.web.service.TokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
index 371a661..857cbe3 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
@@ -4,11 +4,11 @@
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.service.LogininforService;
+import com.ruoyi.common.core.service.TokenService;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.web.service.AsyncService;
-import com.ruoyi.framework.web.service.TokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.Authentication;
@@ -31,7 +31,7 @@
private TokenService tokenService;
@Autowired
- private AsyncService asyncService;
+ private LogininforService asyncService;
/**
* 閫�鍑哄鐞�
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/AsyncService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/AsyncService.java
deleted file mode 100644
index 3199cdd..0000000
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/AsyncService.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.ruoyi.framework.web.service;
-
-import com.ruoyi.common.utils.StringUtils;
-import cn.hutool.http.useragent.UserAgent;
-import cn.hutool.http.useragent.UserAgentUtil;
-import com.ruoyi.common.constant.Constants;
-import com.ruoyi.common.utils.ServletUtils;
-import com.ruoyi.common.utils.ip.AddressUtils;
-import com.ruoyi.system.domain.SysLogininfor;
-import com.ruoyi.system.domain.SysOperLog;
-import com.ruoyi.system.service.ISysLogininforService;
-import com.ruoyi.system.service.ISysOperLogService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Component;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * 寮傛宸ュ巶锛堜骇鐢熶换鍔$敤锛�
- *
- * @author Lion Li
- */
-@Slf4j(topic = "sys-user")
-@Async
-@Component
-public class AsyncService {
-
- @Autowired
- private ISysLogininforService iSysLogininforService;
-
- @Autowired
- private ISysOperLogService iSysOperLogService;
-
- /**
- * 璁板綍鐧诲綍淇℃伅
- *
- * @param username 鐢ㄦ埛鍚�
- * @param status 鐘舵��
- * @param message 娑堟伅
- * @param args 鍒楄〃
- */
- public void recordLogininfor(final String username, final String status, final String message,
- HttpServletRequest request, final Object... args) {
- final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
- final String ip = ServletUtils.getClientIP(request);
-
- String address = AddressUtils.getRealAddressByIP(ip);
- StringBuilder s = new StringBuilder();
- s.append(getBlock(ip));
- s.append(address);
- s.append(getBlock(username));
- s.append(getBlock(status));
- s.append(getBlock(message));
- // 鎵撳嵃淇℃伅鍒版棩蹇�
- log.info(s.toString(), args);
- // 鑾峰彇瀹㈡埛绔搷浣滅郴缁�
- String os = userAgent.getOs().getName();
- // 鑾峰彇瀹㈡埛绔祻瑙堝櫒
- String browser = userAgent.getBrowser().getName();
- // 灏佽瀵硅薄
- SysLogininfor logininfor = new SysLogininfor();
- logininfor.setUserName(username);
- logininfor.setIpaddr(ip);
- logininfor.setLoginLocation(address);
- logininfor.setBrowser(browser);
- logininfor.setOs(os);
- logininfor.setMsg(message);
- // 鏃ュ織鐘舵��
- if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) {
- logininfor.setStatus(Constants.SUCCESS);
- } else if (Constants.LOGIN_FAIL.equals(status)) {
- logininfor.setStatus(Constants.FAIL);
- }
- // 鎻掑叆鏁版嵁
- iSysLogininforService.insertLogininfor(logininfor);
- }
-
- /**
- * 鎿嶄綔鏃ュ織璁板綍
- *
- * @param operLog 鎿嶄綔鏃ュ織淇℃伅
- */
- public void recordOper(final SysOperLog operLog) {
- // 杩滅▼鏌ヨ鎿嶄綔鍦扮偣
- operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp()));
- iSysOperLogService.insertOperlog(operLog);
- }
-
- private String getBlock(Object msg) {
- if (msg == null) {
- msg = "";
- }
- return "[" + msg.toString() + "]";
- }
-}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/PermissionService.java
similarity index 98%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
rename to ruoyi-system/src/main/java/com/ruoyi/system/service/PermissionService.java
index 080177f..fe735b0 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/PermissionService.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.web.service;
+package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.model.LoginUser;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
similarity index 95%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
rename to ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
index 7df8c26..886537f 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
@@ -1,8 +1,10 @@
-package com.ruoyi.framework.web.service;
+package com.ruoyi.system.service;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.service.LogininforService;
+import com.ruoyi.common.core.service.TokenService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.exception.user.CaptchaException;
import com.ruoyi.common.exception.user.CaptchaExpireException;
@@ -11,8 +13,6 @@
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.RedisUtils;
import com.ruoyi.common.utils.ServletUtils;
-import com.ruoyi.system.service.ISysConfigService;
-import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
@@ -44,7 +44,7 @@
private ISysConfigService configService;
@Autowired
- private AsyncService asyncService;
+ private LogininforService asyncService;
/**
* 鐧诲綍楠岃瘉
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java
similarity index 90%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java
rename to ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java
index feb8038..d8c657b 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java
@@ -1,12 +1,11 @@
-package com.ruoyi.framework.web.service;
+package com.ruoyi.system.service;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.Set;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.system.service.ISysMenuService;
-import com.ruoyi.system.service.ISysRoleService;
/**
* 鐢ㄦ埛鏉冮檺澶勭悊
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java
similarity index 94%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java
rename to ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java
index 149392f..8171cb0 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java
@@ -1,14 +1,13 @@
-package com.ruoyi.framework.web.service;
+package com.ruoyi.system.service;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.RegisterBody;
+import com.ruoyi.common.core.service.LogininforService;
import com.ruoyi.common.exception.user.CaptchaException;
import com.ruoyi.common.exception.user.CaptchaExpireException;
import com.ruoyi.common.utils.*;
-import com.ruoyi.system.service.ISysConfigService;
-import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -27,7 +26,7 @@
private ISysConfigService configService;
@Autowired
- private AsyncService asyncService;
+ private LogininforService asyncService;
/**
* 娉ㄥ唽
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java
index 8b56619..ede2271 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java
@@ -1,15 +1,24 @@
package com.ruoyi.system.service.impl;
+import cn.hutool.http.useragent.UserAgent;
+import cn.hutool.http.useragent.UserAgentUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.service.LogininforService;
import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.ip.AddressUtils;
import com.ruoyi.system.domain.SysLogininfor;
import com.ruoyi.system.mapper.SysLogininforMapper;
import com.ruoyi.system.service.ISysLogininforService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
+import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -20,8 +29,62 @@
*
* @author ruoyi
*/
+@Slf4j
@Service
-public class SysLogininforServiceImpl extends ServicePlusImpl<SysLogininforMapper, SysLogininfor, SysLogininfor> implements ISysLogininforService {
+public class SysLogininforServiceImpl extends ServicePlusImpl<SysLogininforMapper, SysLogininfor, SysLogininfor> implements ISysLogininforService, LogininforService {
+
+ /**
+ * 璁板綍鐧诲綍淇℃伅
+ *
+ * @param username 鐢ㄦ埛鍚�
+ * @param status 鐘舵��
+ * @param message 娑堟伅
+ * @param args 鍒楄〃
+ */
+ @Async
+ @Override
+ public void recordLogininfor(final String username, final String status, final String message,
+ HttpServletRequest request, final Object... args) {
+ final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
+ final String ip = ServletUtils.getClientIP(request);
+
+ String address = AddressUtils.getRealAddressByIP(ip);
+ StringBuilder s = new StringBuilder();
+ s.append(getBlock(ip));
+ s.append(address);
+ s.append(getBlock(username));
+ s.append(getBlock(status));
+ s.append(getBlock(message));
+ // 鎵撳嵃淇℃伅鍒版棩蹇�
+ log.info(s.toString(), args);
+ // 鑾峰彇瀹㈡埛绔搷浣滅郴缁�
+ String os = userAgent.getOs().getName();
+ // 鑾峰彇瀹㈡埛绔祻瑙堝櫒
+ String browser = userAgent.getBrowser().getName();
+ // 灏佽瀵硅薄
+ SysLogininfor logininfor = new SysLogininfor();
+ logininfor.setUserName(username);
+ logininfor.setIpaddr(ip);
+ logininfor.setLoginLocation(address);
+ logininfor.setBrowser(browser);
+ logininfor.setOs(os);
+ logininfor.setMsg(message);
+ // 鏃ュ織鐘舵��
+ if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) {
+ logininfor.setStatus(Constants.SUCCESS);
+ } else if (Constants.LOGIN_FAIL.equals(status)) {
+ logininfor.setStatus(Constants.FAIL);
+ }
+ // 鎻掑叆鏁版嵁
+ insertLogininfor(logininfor);
+ }
+
+ private String getBlock(Object msg) {
+ if (msg == null) {
+ msg = "";
+ }
+ return "[" + msg.toString() + "]";
+ }
@Override
public TableDataInfo<SysLogininfor> selectPageLogininforList(SysLogininfor logininfor) {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java
index ff518bd..f4c39f4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java
@@ -1,14 +1,19 @@
package com.ruoyi.system.service.impl;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
-import com.ruoyi.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.service.OperLogService;
+import com.ruoyi.common.core.domain.dto.OperLogDTO;
import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.ip.AddressUtils;
import com.ruoyi.system.domain.SysOperLog;
import com.ruoyi.system.mapper.SysOperLogMapper;
import com.ruoyi.system.service.ISysOperLogService;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.Arrays;
@@ -22,7 +27,21 @@
* @author ruoyi
*/
@Service
-public class SysOperLogServiceImpl extends ServicePlusImpl<SysOperLogMapper, SysOperLog, SysOperLog> implements ISysOperLogService {
+public class SysOperLogServiceImpl extends ServicePlusImpl<SysOperLogMapper, SysOperLog, SysOperLog> implements ISysOperLogService, OperLogService {
+
+ /**
+ * 鎿嶄綔鏃ュ織璁板綍
+ *
+ * @param operLogDTO 鎿嶄綔鏃ュ織淇℃伅
+ */
+ @Async
+ @Override
+ public void recordOper(final OperLogDTO operLogDTO) {
+ SysOperLog operLog = BeanUtil.toBean(operLogDTO, SysOperLog.class);
+ // 杩滅▼鏌ヨ鎿嶄綔鍦扮偣
+ operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp()));
+ insertOperlog(operLog);
+ }
@Override
public TableDataInfo<SysOperLog> selectPageOperLogList(SysOperLog operLog) {
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java
similarity index 95%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java
index cb8878e..ae95660 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java
@@ -1,15 +1,16 @@
-package com.ruoyi.framework.web.service;
+package com.ruoyi.system.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.http.useragent.UserAgent;
import cn.hutool.http.useragent.UserAgentUtil;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.service.TokenService;
+import com.ruoyi.common.properties.TokenProperties;
import com.ruoyi.common.utils.RedisUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.ip.AddressUtils;
-import com.ruoyi.framework.config.properties.TokenProperties;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
@@ -27,7 +28,7 @@
* @author Lion Li
*/
@Component
-public class TokenService {
+public class TokenServiceImpl implements TokenService {
protected static final long MILLIS_SECOND = 1000;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserDetailsServiceImpl.java
similarity index 90%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserDetailsServiceImpl.java
index c8b1c7b..5d104f6 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserDetailsServiceImpl.java
@@ -1,28 +1,28 @@
-package com.ruoyi.framework.web.service;
+package com.ruoyi.system.service.impl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UserDetailsService;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Service;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.UserStatus;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.SysPermissionService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
/**
* 鐢ㄦ埛楠岃瘉澶勭悊
*
* @author ruoyi
*/
+@Slf4j
@Service
public class UserDetailsServiceImpl implements UserDetailsService
{
- private static final Logger log = LoggerFactory.getLogger(UserDetailsServiceImpl.class);
@Autowired
private ISysUserService userService;
--
Gitblit v1.9.3