diff --git a/src/main/java/com/gxwebsoft/WebSoftApplication.java b/src/main/java/com/gxwebsoft/WebSoftApplication.java
index 0baf59a..f60bc53 100644
--- a/src/main/java/com/gxwebsoft/WebSoftApplication.java
+++ b/src/main/java/com/gxwebsoft/WebSoftApplication.java
@@ -30,8 +30,15 @@ import java.util.TimeZone;
@EnableWebSocket
public class WebSoftApplication {
+ static {
+ // 必须在任何 LocalDateTime.now() / JDBC 初始化之前生效。
+ // 注意:1Panel 启动命令里 -Duser.timezone 必须写在 -jar 前面,写在后面会被当成程序参数忽略。
+ System.setProperty("user.timezone", "Asia/Shanghai");
+ TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
+ }
+
public static void main(String[] args) {
- // Docker 默认 UTC,未设置 TZ 时 LocalDateTime.now() 会比北京时间慢 8 小时
+ System.setProperty("user.timezone", "Asia/Shanghai");
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
SpringApplication.run(WebSoftApplication.class, args);
}
diff --git a/src/main/java/com/gxwebsoft/gxmu/controller/DeclareController.java b/src/main/java/com/gxwebsoft/gxmu/controller/DeclareController.java
index f7f0ce7..de9bfae 100644
--- a/src/main/java/com/gxwebsoft/gxmu/controller/DeclareController.java
+++ b/src/main/java/com/gxwebsoft/gxmu/controller/DeclareController.java
@@ -17,6 +17,8 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
import java.util.List;
/**
@@ -30,6 +32,7 @@ import java.util.List;
@RequestMapping("/api/gxmu/declare")
public class DeclareController extends BaseController {
private static final String TZBCY_MODULE = "gxmu_tzbcy_form";
+ private static final ZoneId BEIJING = ZoneId.of("Asia/Shanghai");
@Resource
private DeclareService declareService;
@@ -75,6 +78,10 @@ public class DeclareController extends BaseController {
if (validateMessage != null) {
return fail(validateMessage);
}
+ // 显式写北京时间,避免容器 JVM/库会话仍为 UTC 时 DEFAULT CURRENT_TIMESTAMP 偏 8 小时
+ LocalDateTime now = LocalDateTime.now(BEIJING);
+ declare.setCreateTime(now);
+ declare.setUpdateTime(now);
if (declareService.save(declare)) {
return success("添加成功");
}
@@ -88,6 +95,7 @@ public class DeclareController extends BaseController {
if (validateMessage != null) {
return fail(validateMessage);
}
+ declare.setUpdateTime(LocalDateTime.now(BEIJING));
if (declareService.updateById(declare)) {
return success("修改成功");
}
diff --git a/src/main/java/com/gxwebsoft/gxmu/mapper/xml/DeclareMapper.xml b/src/main/java/com/gxwebsoft/gxmu/mapper/xml/DeclareMapper.xml
index 4fa4817..5187878 100644
--- a/src/main/java/com/gxwebsoft/gxmu/mapper/xml/DeclareMapper.xml
+++ b/src/main/java/com/gxwebsoft/gxmu/mapper/xml/DeclareMapper.xml
@@ -52,8 +52,10 @@
AND a.create_time <= #{param.createTimeEnd}
-
- AND a.start_time <= now() AND a.end_time >= now()
+
+
+ AND a.start_time <= DATE_FORMAT(CONVERT_TZ(UTC_TIMESTAMP(), '+00:00', '+08:00'), '%Y-%m-%d %H:%i:%s')
+ AND a.end_time >= DATE_FORMAT(CONVERT_TZ(UTC_TIMESTAMP(), '+00:00', '+08:00'), '%Y-%m-%d %H:%i:%s')
AND a.deleted = #{param.deleted}