From 44424d98fc4aa3bd4d4a177935b8908f01e27a23 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 02 十一月 2026 17:41:17 +0800
Subject: [PATCH] fix: Jackson 时区固定为 GMT+8,避免时间字段早 8 小时
---
src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java | 42 +++++++++++++++++++++++++++++++++++++-----
1 files changed, 37 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java b/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
index 92b6187..281769e 100644
--- a/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
+++ b/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
@@ -6,6 +6,7 @@
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.LogUtils;
import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.ip.AddressUtils;
import com.ruoyi.common.utils.ip.IpUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
@@ -13,6 +14,8 @@
import com.ruoyi.project.monitor.domain.SysOperLog;
import com.ruoyi.project.monitor.service.ISysLogininforService;
import com.ruoyi.project.monitor.service.ISysOperLogService;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
import eu.bitwalker.useragentutils.UserAgent;
/**
@@ -37,17 +40,19 @@
final Object... args)
{
final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
- final String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
+ final String ip = IpUtils.getIpAddr();
return new TimerTask()
{
@Override
public void run()
{
+ // 鐧诲綍鏃ュ織鐢ㄦ埛鍚嶇О璁板綍鏄电О锛屾樀绉颁负绌烘椂鍥為��鐧诲綍璐﹀彿
+ String displayName = resolveNickName(username);
String address = AddressUtils.getRealAddressByIP(ip);
StringBuilder s = new StringBuilder();
s.append(LogUtils.getBlock(ip));
s.append(address);
- s.append(LogUtils.getBlock(username));
+ s.append(LogUtils.getBlock(displayName));
s.append(LogUtils.getBlock(status));
s.append(LogUtils.getBlock(message));
// 鎵撳嵃淇℃伅鍒版棩蹇�
@@ -58,14 +63,14 @@
String browser = userAgent.getBrowser().getName();
// 灏佽瀵硅薄
SysLogininfor logininfor = new SysLogininfor();
- logininfor.setUserName(username);
+ logininfor.setUserName(displayName);
logininfor.setIpaddr(ip);
logininfor.setLoginLocation(address);
logininfor.setBrowser(browser);
logininfor.setOs(os);
logininfor.setMsg(message);
// 鏃ュ織鐘舵��
- if (Constants.LOGIN_SUCCESS.equals(status) || Constants.LOGOUT.equals(status))
+ if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER))
{
logininfor.setStatus(Constants.SUCCESS);
}
@@ -80,8 +85,35 @@
}
/**
+ * 鎸夌櫥褰曡处鍙锋煡璇㈡樀绉帮紝鏌ヨ涓嶅埌鏃跺洖閫�涓哄師璐﹀彿
+ *
+ * @param username 鐧诲綍璐﹀彿
+ * @return 鏄电О
+ */
+ private static String resolveNickName(String username)
+ {
+ if (StringUtils.isEmpty(username))
+ {
+ return username;
+ }
+ try
+ {
+ SysUser user = SpringUtils.getBean(ISysUserService.class).selectUserByUserName(username);
+ if (user != null && StringUtils.isNotEmpty(user.getNickName()))
+ {
+ return user.getNickName();
+ }
+ }
+ catch (Exception e)
+ {
+ // 鏌ヨ鏄电О澶辫触涓嶅奖鍝嶇櫥褰曟棩蹇楀啓鍏ワ紝鍥為��涓虹櫥褰曡处鍙�
+ }
+ return username;
+ }
+
+ /**
* 鎿嶄綔鏃ュ織璁板綍
- *
+ *
* @param operLog 鎿嶄綔鏃ュ織淇℃伅
* @return 浠诲姟task
*/
--
Gitblit v1.9.3