From e30011cee26a7ac8b541a5b4fd3f63e7dd746172 Mon Sep 17 00:00:00 2001 From: ikmkj <1@qq,com> Date: Sun, 10 Aug 2025 14:42:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor(time):=20=E4=BC=98=E5=8C=96=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=A0=BC=E5=BC=8F=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96?= =?UTF-8?q?=E5=B9=B6=E7=BB=9F=E4=B8=80=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?-=20=E6=96=B0=E5=A2=9E=20LocalDateTimeDeserializer=20=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E4=BA=8E=E8=87=AA=E5=AE=9A=E4=B9=89=20LocalD?= =?UTF-8?q?ateTime=20=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=8F=8D=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E9=80=BB=E8=BE=91=20-=20=E5=9C=A8=20MusicDTO?= =?UTF-8?q?=E3=80=81PlaylistDTO=E3=80=81SingerDTO=20=E5=92=8C=20UserDTO=20?= =?UTF-8?q?=E4=B8=AD=E4=BD=BF=E7=94=A8=20LocalDateTimeDeserializer=20-?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F=E4=B8=BA?= =?UTF-8?q?=20"yyyy-MM-dd=20HH:mm:ss"=20-=20=E7=A7=BB=E9=99=A4=E4=BA=86=20?= =?UTF-8?q?SaTokenConfig=20=E5=92=8C=20StpInterfaceImpl=20=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E8=B0=83=E8=AF=95=E4=BF=A1=E6=81=AF=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/LocalDateTimeDeserializer.java | 38 +++++++++++++++++++ .../musichouduan/config/SaTokenConfig.java | 6 --- .../musichouduan/config/StpInterfaceImpl.java | 3 -- .../com/test/musichouduan/dto/MusicDTO.java | 5 +++ .../test/musichouduan/dto/PlaylistDTO.java | 7 ++++ .../com/test/musichouduan/dto/SingerDTO.java | 5 +++ .../com/test/musichouduan/dto/UserDTO.java | 5 +++ 7 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 music-houduan/src/main/java/com/test/musichouduan/config/LocalDateTimeDeserializer.java diff --git a/music-houduan/src/main/java/com/test/musichouduan/config/LocalDateTimeDeserializer.java b/music-houduan/src/main/java/com/test/musichouduan/config/LocalDateTimeDeserializer.java new file mode 100644 index 0000000..202f63b --- /dev/null +++ b/music-houduan/src/main/java/com/test/musichouduan/config/LocalDateTimeDeserializer.java @@ -0,0 +1,38 @@ +package com.test.musichouduan.config; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; + +public class LocalDateTimeDeserializer extends JsonDeserializer { + + private static final DateTimeFormatter FORMATTER_DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + private static final DateTimeFormatter FORMATTER_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + @Override + public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String str = p.getText().trim(); + if (str.isEmpty()) { + return null; + } + + try { + // 尝试解析 "yyyy-MM-dd HH:mm:ss" 格式 + return LocalDateTime.parse(str, FORMATTER_DATETIME); + } catch (DateTimeParseException e) { + // 如果失败,尝试解析 "yyyy-MM-dd" 格式 + try { + LocalDate date = LocalDate.parse(str, FORMATTER_DATE); + return date.atStartOfDay(); + } catch (DateTimeParseException e2) { + throw new IOException(e2); + } + } + } +} \ No newline at end of file diff --git a/music-houduan/src/main/java/com/test/musichouduan/config/SaTokenConfig.java b/music-houduan/src/main/java/com/test/musichouduan/config/SaTokenConfig.java index 782c369..34b98b1 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/config/SaTokenConfig.java +++ b/music-houduan/src/main/java/com/test/musichouduan/config/SaTokenConfig.java @@ -19,16 +19,10 @@ public class SaTokenConfig implements WebMvcConfigurer { // 注册Sa-Token拦截器,打开注解式鉴权功能 registry.addInterceptor(new SaInterceptor(handle -> { // 打印调试信息 - System.out.println("\n=== Sa-Token 拦截器检查登录状态 ===\n"); - // 获取当前登录用户ID Object loginId = StpUtil.getLoginIdDefaultNull(); - System.out.println("当前登录用户ID: " + loginId); - // 获取当前用户角色 List roleList = StpUtil.getRoleList(); - System.out.println("当前用户角色: " + roleList); - // 检查登录状态 StpUtil.checkLogin(); })) diff --git a/music-houduan/src/main/java/com/test/musichouduan/config/StpInterfaceImpl.java b/music-houduan/src/main/java/com/test/musichouduan/config/StpInterfaceImpl.java index 44d3b7c..b9fd668 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/config/StpInterfaceImpl.java +++ b/music-houduan/src/main/java/com/test/musichouduan/config/StpInterfaceImpl.java @@ -45,9 +45,6 @@ public class StpInterfaceImpl implements StpInterface { } else { roles.add("user"); } - - // 打印调试信息 - System.out.println("用户ID: " + userId + ", 角色: " + roles); }); return roles; diff --git a/music-houduan/src/main/java/com/test/musichouduan/dto/MusicDTO.java b/music-houduan/src/main/java/com/test/musichouduan/dto/MusicDTO.java index 25e3582..43d0e07 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/dto/MusicDTO.java +++ b/music-houduan/src/main/java/com/test/musichouduan/dto/MusicDTO.java @@ -1,6 +1,8 @@ package com.test.musichouduan.dto; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.test.musichouduan.config.LocalDateTimeDeserializer; import lombok.Data; import java.time.LocalDateTime; @@ -101,6 +103,7 @@ public class MusicDTO { * 发行日期 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime releaseDate; /** @@ -117,12 +120,14 @@ public class MusicDTO { * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime createTime; /** * 收藏时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime collectTime; /** diff --git a/music-houduan/src/main/java/com/test/musichouduan/dto/PlaylistDTO.java b/music-houduan/src/main/java/com/test/musichouduan/dto/PlaylistDTO.java index 28f58f7..f556593 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/dto/PlaylistDTO.java +++ b/music-houduan/src/main/java/com/test/musichouduan/dto/PlaylistDTO.java @@ -1,5 +1,8 @@ package com.test.musichouduan.dto; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.test.musichouduan.config.LocalDateTimeDeserializer; import jakarta.persistence.Column; import lombok.Data; @@ -92,6 +95,8 @@ public class PlaylistDTO { /** * 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime createTime; /** @@ -102,5 +107,7 @@ public class PlaylistDTO { /** * 收藏时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime collectTime; } diff --git a/music-houduan/src/main/java/com/test/musichouduan/dto/SingerDTO.java b/music-houduan/src/main/java/com/test/musichouduan/dto/SingerDTO.java index d13c330..bdb9815 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/dto/SingerDTO.java +++ b/music-houduan/src/main/java/com/test/musichouduan/dto/SingerDTO.java @@ -1,5 +1,8 @@ package com.test.musichouduan.dto; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.test.musichouduan.config.LocalDateTimeDeserializer; import jakarta.persistence.Column; import lombok.Data; @@ -70,6 +73,8 @@ public class SingerDTO { /** * 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime createTime; /** diff --git a/music-houduan/src/main/java/com/test/musichouduan/dto/UserDTO.java b/music-houduan/src/main/java/com/test/musichouduan/dto/UserDTO.java index d873dcd..b671c49 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/dto/UserDTO.java +++ b/music-houduan/src/main/java/com/test/musichouduan/dto/UserDTO.java @@ -1,5 +1,8 @@ package com.test.musichouduan.dto; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.test.musichouduan.config.LocalDateTimeDeserializer; import lombok.Data; import java.time.LocalDateTime; @@ -63,6 +66,8 @@ public class UserDTO { /** * 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime createTime; /**