refactor(time): 优化时间格式反序列化并统一时间格式- 新增 LocalDateTimeDeserializer 类,用于自定义 LocalDateTime 类型的反序列化逻辑
- 在 MusicDTO、PlaylistDTO、SingerDTO 和 UserDTO 中使用 LocalDateTimeDeserializer -统一时间格式为 "yyyy-MM-dd HH:mm:ss" - 移除了 SaTokenConfig 和 StpInterfaceImpl 中的调试信息打印
This commit is contained in:
@@ -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<LocalDateTime> {
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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<String> roleList = StpUtil.getRoleList();
|
||||
System.out.println("当前用户角色: " + roleList);
|
||||
|
||||
// 检查登录状态
|
||||
StpUtil.checkLogin();
|
||||
}))
|
||||
|
||||
@@ -45,9 +45,6 @@ public class StpInterfaceImpl implements StpInterface {
|
||||
} else {
|
||||
roles.add("user");
|
||||
}
|
||||
|
||||
// 打印调试信息
|
||||
System.out.println("用户ID: " + userId + ", 角色: " + roles);
|
||||
});
|
||||
|
||||
return roles;
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user