refactor(date): 重构日期处理方式
- 移除实体类中的 @JSONField 和 @DateTimeFormat 注解 - 新增自定义日期转换器 DateStringArraysToListDateConverter 和 DateStringToDateConverter - 在 ConfigurerAdapter 中注册自定义转换器 - 更新相关 DTO 类,移除冗余注解
This commit is contained in:
@@ -32,14 +32,10 @@ public class MyEntity extends MyObject {
|
||||
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true)
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@ApiModelProperty(value = "更新时间: yyyy-MM-dd HH:mm:ss", hidden = true)
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
/* 分组校验 */
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.springframework.data.annotation.CreatedBy;
|
||||
import org.springframework.data.annotation.LastModifiedBy;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.lang.reflect.Field;
|
||||
import java.sql.Date;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 逻辑删除通用模型
|
||||
@@ -33,13 +33,9 @@ public class MyLogicEntity extends MyObject {
|
||||
private String updateBy;
|
||||
@TableField(value = "create_time", fill = FieldFill.INSERT)
|
||||
@ApiModelProperty(value = "创建时间", hidden = true)
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
|
||||
@ApiModelProperty(value = "更新时间", hidden = true)
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
@ApiModelProperty(value = "数据有效性", hidden = true)
|
||||
@TableLogic
|
||||
|
||||
@@ -48,7 +48,5 @@ public class QuartzLog extends MyObject {
|
||||
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@ApiModelProperty(value = "创建时间", hidden = true)
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
}
|
||||
|
||||
-2
@@ -46,7 +46,5 @@ public class QiniuContent extends MyObject {
|
||||
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@ApiModelProperty(value = "创建或更新时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cn.odboy.core.framework.web;
|
||||
package cn.odboy.core.framework.web.config;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package cn.odboy.core.framework.web.converters;
|
||||
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.stereotype.Component;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class DateStringArraysToListDateConverter implements Converter<String[], List<Date>> {
|
||||
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@Override
|
||||
public List<Date> convert(String[] source) {
|
||||
if (source.length == 0) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return Arrays.stream(source)
|
||||
.map(s -> {
|
||||
try {
|
||||
return sdf.parse(s);
|
||||
} catch (ParseException e) {
|
||||
throw new IllegalArgumentException("Invalid date string: " + s);
|
||||
}
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package cn.odboy.core.framework.web.converters;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.stereotype.Component;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
@Component
|
||||
public class DateStringToDateConverter implements Converter<String, Date> {
|
||||
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@Override
|
||||
public Date convert(String source) {
|
||||
if (StrUtil.isBlank(source)) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return sdf.parse(source);
|
||||
} catch (ParseException e) {
|
||||
throw new IllegalArgumentException("Invalid date string: " + source);
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
-8
@@ -1,12 +1,16 @@
|
||||
package cn.odboy.core.framework.web;
|
||||
package cn.odboy.core.framework.web.core;
|
||||
|
||||
import cn.odboy.core.framework.properties.AppProperties;
|
||||
import cn.odboy.core.framework.properties.dto.FileUploadSettingModel;
|
||||
import cn.odboy.core.framework.web.converters.DateStringArraysToListDateConverter;
|
||||
import cn.odboy.core.framework.web.converters.DateStringToDateConverter;
|
||||
import com.alibaba.fastjson2.JSONWriter;
|
||||
import com.alibaba.fastjson2.support.config.FastJsonConfig;
|
||||
import com.alibaba.fastjson2.support.spring.http.converter.FastJsonHttpMessageConverter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.format.FormatterRegistry;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||
@@ -22,16 +26,14 @@ import java.util.List;
|
||||
|
||||
@Configuration
|
||||
@EnableWebMvc
|
||||
@RequiredArgsConstructor
|
||||
public class ConfigurerAdapter implements WebMvcConfigurer {
|
||||
|
||||
/**
|
||||
* 文件配置
|
||||
*/
|
||||
private final AppProperties properties;
|
||||
|
||||
public ConfigurerAdapter(AppProperties properties) {
|
||||
this.properties = properties;
|
||||
}
|
||||
private final AppProperties appProperties;
|
||||
private final DateStringArraysToListDateConverter dateStringArraysToListDateConverter;
|
||||
private final DateStringToDateConverter dateStringToDateConverter;
|
||||
|
||||
@Bean
|
||||
public CorsFilter corsFilter() {
|
||||
@@ -47,7 +49,7 @@ public class ConfigurerAdapter implements WebMvcConfigurer {
|
||||
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
FileUploadSettingModel.ElPath path = properties.getFile().getPath();
|
||||
FileUploadSettingModel.ElPath path = appProperties.getFile().getPath();
|
||||
String avatarUtl = "file:" + path.getAvatar().replace("\\", "/");
|
||||
String pathUtl = "file:" + path.getPath().replace("\\", "/");
|
||||
registry.addResourceHandler("/avatar/**").addResourceLocations(avatarUtl).setCachePeriod(0);
|
||||
@@ -87,4 +89,13 @@ public class ConfigurerAdapter implements WebMvcConfigurer {
|
||||
// 将 FastJsonHttpMessageConverter 添加到列表末尾
|
||||
converters.add(fastJsonConverter);
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义时间转换器
|
||||
*/
|
||||
@Override
|
||||
public void addFormatters(FormatterRegistry registry) {
|
||||
registry.addConverter(dateStringArraysToListDateConverter);
|
||||
registry.addConverter(dateStringToDateConverter);
|
||||
}
|
||||
}
|
||||
-2
@@ -26,7 +26,5 @@ public class QueryDeptRequest {
|
||||
private Boolean pidIsNull;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private List<Date> createTime;
|
||||
}
|
||||
|
||||
-2
@@ -20,8 +20,6 @@ public class QueryJobRequest {
|
||||
private Boolean enabled;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private List<Date> createTime;
|
||||
|
||||
@ApiModelProperty(value = "页码", example = "1")
|
||||
|
||||
-2
@@ -15,8 +15,6 @@ public class QueryMenuRequest {
|
||||
private String blurry;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private List<Date> createTime;
|
||||
|
||||
@ApiModelProperty(value = "PID为空查询")
|
||||
|
||||
-2
@@ -18,8 +18,6 @@ public class QueryQuartzJobRequest {
|
||||
private Boolean isSuccess;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private List<Date> createTime;
|
||||
|
||||
@ApiModelProperty(value = "页码", example = "1")
|
||||
|
||||
-2
@@ -15,8 +15,6 @@ public class QueryRoleRequest {
|
||||
private String blurry;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private List<Date> createTime;
|
||||
|
||||
@ApiModelProperty(value = "页码", example = "1")
|
||||
|
||||
-2
@@ -31,8 +31,6 @@ public class QueryUserRequest extends MyObject {
|
||||
private Long deptId;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private List<Date> createTime;
|
||||
|
||||
@ApiModelProperty(value = "页码", example = "1")
|
||||
|
||||
-2
@@ -15,8 +15,6 @@ public class QueryLocalStorageRequest {
|
||||
private String blurry;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private List<Date> createTime;
|
||||
|
||||
@ApiModelProperty(value = "页码", example = "1")
|
||||
|
||||
-2
@@ -15,8 +15,6 @@ public class QueryQiniuRequest {
|
||||
private String key;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private List<Date> createTime;
|
||||
|
||||
@ApiModelProperty(value = "页码", example = "1")
|
||||
|
||||
Reference in New Issue
Block a user