diff --git a/cutejava/cutejava-common/src/main/java/cn/odboy/base/MyEntity.java b/cutejava/cutejava-common/src/main/java/cn/odboy/base/MyEntity.java index d3ea9d3c..72c56501 100644 --- a/cutejava/cutejava-common/src/main/java/cn/odboy/base/MyEntity.java +++ b/cutejava/cutejava-common/src/main/java/cn/odboy/base/MyEntity.java @@ -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; /* 分组校验 */ diff --git a/cutejava/cutejava-common/src/main/java/cn/odboy/base/MyLogicEntity.java b/cutejava/cutejava-common/src/main/java/cn/odboy/base/MyLogicEntity.java index c857dda7..448bd73e 100644 --- a/cutejava/cutejava-common/src/main/java/cn/odboy/base/MyLogicEntity.java +++ b/cutejava/cutejava-common/src/main/java/cn/odboy/base/MyLogicEntity.java @@ -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 diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/dataobject/job/QuartzLog.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/dataobject/job/QuartzLog.java index 7bc6f80c..afffb2be 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/dataobject/job/QuartzLog.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/dataobject/job/QuartzLog.java @@ -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; } diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/dataobject/tools/QiniuContent.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/dataobject/tools/QiniuContent.java index 49de535e..7ffa3826 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/dataobject/tools/QiniuContent.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/dataobject/tools/QiniuContent.java @@ -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; } diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/MultipartConfig.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/config/MultipartConfig.java similarity index 95% rename from cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/MultipartConfig.java rename to cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/config/MultipartConfig.java index aed36691..0d36c8dd 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/MultipartConfig.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/config/MultipartConfig.java @@ -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; diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/converters/DateStringArraysToListDateConverter.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/converters/DateStringArraysToListDateConverter.java new file mode 100644 index 00000000..582e0ccc --- /dev/null +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/converters/DateStringArraysToListDateConverter.java @@ -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> { + private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Override + public List 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()); + } +} diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/converters/DateStringToDateConverter.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/converters/DateStringToDateConverter.java new file mode 100644 index 00000000..174aa03a --- /dev/null +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/converters/DateStringToDateConverter.java @@ -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 { + 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); + } + } +} diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/ConfigurerAdapter.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/core/ConfigurerAdapter.java similarity index 82% rename from cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/ConfigurerAdapter.java rename to cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/core/ConfigurerAdapter.java index be0dc3b2..cab8b3c8 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/ConfigurerAdapter.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/web/core/ConfigurerAdapter.java @@ -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); + } } diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryDeptRequest.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryDeptRequest.java index 6f358817..d86134fc 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryDeptRequest.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryDeptRequest.java @@ -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 createTime; } diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryJobRequest.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryJobRequest.java index 98c802bb..c3a98ca2 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryJobRequest.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryJobRequest.java @@ -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 createTime; @ApiModelProperty(value = "页码", example = "1") diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryMenuRequest.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryMenuRequest.java index 5bcf3934..9037e790 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryMenuRequest.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryMenuRequest.java @@ -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 createTime; @ApiModelProperty(value = "PID为空查询") diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryQuartzJobRequest.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryQuartzJobRequest.java index 34c684fe..53269305 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryQuartzJobRequest.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryQuartzJobRequest.java @@ -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 createTime; @ApiModelProperty(value = "页码", example = "1") diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryRoleRequest.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryRoleRequest.java index 5d9db664..000cefb8 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryRoleRequest.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryRoleRequest.java @@ -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 createTime; @ApiModelProperty(value = "页码", example = "1") diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryUserRequest.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryUserRequest.java index 355aca7b..8c7f07a8 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryUserRequest.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/system/dto/QueryUserRequest.java @@ -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 createTime; @ApiModelProperty(value = "页码", example = "1") diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/tools/dto/QueryLocalStorageRequest.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/tools/dto/QueryLocalStorageRequest.java index d1297022..990d5248 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/tools/dto/QueryLocalStorageRequest.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/tools/dto/QueryLocalStorageRequest.java @@ -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 createTime; @ApiModelProperty(value = "页码", example = "1") diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/tools/dto/QueryQiniuRequest.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/tools/dto/QueryQiniuRequest.java index 4d223c44..c184d847 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/tools/dto/QueryQiniuRequest.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/service/tools/dto/QueryQiniuRequest.java @@ -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 createTime; @ApiModelProperty(value = "页码", example = "1")