From 9fe6d40d35068e62df4f69f9eed86ab1bc738b00 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 25 八月 2026 18:08:21 +0800
Subject: [PATCH] fix: 时区错误

---
 src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java    |    4 ++--
 src/main/resources/mapper/monitor/SysOperLogMapper.xml          |   18 +++++++++---------
 src/main/java/com/ruoyi/framework/config/ApplicationConfig.java |    5 ++++-
 src/main/java/com/ruoyi/project/system/domain/SysUser.java      |    2 ++
 4 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java b/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
index 2cc50ba..ecca849 100644
--- a/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
+++ b/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
@@ -16,6 +16,7 @@
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.text.SimpleDateFormat;
 import java.util.TimeZone;
 
 /**
@@ -34,7 +35,7 @@
      */
     @Bean
     public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() {
-        return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
+        return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getTimeZone("GMT+8"));
     }
 
     @Bean
@@ -59,6 +60,8 @@
                 new LocalDateSerializer(dateFormatter));
         mapper.registerModule(module);
         mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
+        mapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
+        mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
         return mapper;
     }
 }
diff --git a/src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java b/src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java
index 8874722..3fefc07 100644
--- a/src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java
+++ b/src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java
@@ -28,14 +28,14 @@
     private String createBy;
 
     /** 鍒涘缓鏃堕棿 */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /** 鏇存柊鑰� */
     private String updateBy;
 
     /** 鏇存柊鏃堕棿 */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
     /** 澶囨敞 */
diff --git a/src/main/java/com/ruoyi/project/system/domain/SysUser.java b/src/main/java/com/ruoyi/project/system/domain/SysUser.java
index 39050e5..a88c7fc 100644
--- a/src/main/java/com/ruoyi/project/system/domain/SysUser.java
+++ b/src/main/java/com/ruoyi/project/system/domain/SysUser.java
@@ -1,6 +1,7 @@
 package com.ruoyi.project.system.domain;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.ruoyi.common.xss.Xss;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
@@ -73,6 +74,7 @@
 
     /** 鏈�鍚庣櫥褰曟椂闂� */
     @Excel(name = "鏈�鍚庣櫥褰曟椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date loginDate;
 
     /** 閮ㄩ棬瀵硅薄 */
diff --git a/src/main/resources/mapper/monitor/SysOperLogMapper.xml b/src/main/resources/mapper/monitor/SysOperLogMapper.xml
index 6bb7e8f..4c504a3 100644
--- a/src/main/resources/mapper/monitor/SysOperLogMapper.xml
+++ b/src/main/resources/mapper/monitor/SysOperLogMapper.xml
@@ -28,12 +28,12 @@
         select oper_id, title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg, oper_time, cost_time
         from sys_oper_log
     </sql>
-    
+
 	<insert id="insertOperlog" parameterType="com.ruoyi.project.monitor.domain.SysOperLog">
 		insert into sys_oper_log(title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg, cost_time, oper_time)
         values (#{title}, #{businessType}, #{method}, #{requestMethod}, #{operatorType}, #{operName}, #{deptName}, #{operUrl}, #{operIp}, #{operLocation}, #{operParam}, #{jsonResult}, #{status}, #{errorMsg}, #{costTime}, sysdate())
 	</insert>
-	
+
 	<select id="selectOperLogList" parameterType="com.ruoyi.project.monitor.domain.SysOperLog" resultMap="SysOperLogResult">
 		<include refid="selectOperLogVo"/>
 		<where>
@@ -50,7 +50,7 @@
 			    AND business_type in
 			    <foreach collection="businessTypes" item="businessType" open="(" separator="," close=")">
 		 			#{businessType}
-		        </foreach> 
+		        </foreach>
 			</if>
 			<if test="status != null">
 				AND status = #{status}
@@ -65,23 +65,23 @@
 				AND oper_time &lt;= #{params.endTime}
 			</if>
 		</where>
-		order by oper_id desc
+		order by oper_time desc
 	</select>
-	
+
 	<delete id="deleteOperLogByIds" parameterType="Long">
  		delete from sys_oper_log where oper_id in
  		<foreach collection="array" item="operId" open="(" separator="," close=")">
  			#{operId}
-        </foreach> 
+        </foreach>
  	</delete>
- 	
+
  	<select id="selectOperLogById" parameterType="Long" resultMap="SysOperLogResult">
 		<include refid="selectOperLogVo"/>
 		where oper_id = #{operId}
 	</select>
-	
+
 	<update id="cleanOperLog">
         truncate table sys_oper_log
     </update>
 
-</mapper> 
\ No newline at end of file
+</mapper>

--
Gitblit v1.9.3