@ApiOperation("分页查询文档")
@GetMapping("page")
public Response<PageInfo<DocumentInfoQueryDto>> documentList(@RequestParam Integer pageNum,
@RequestParam Integer size, @RequestParam(required = false) String documentTitle,
@RequestParam(required = false) Integer documentType, @RequestParam(required = false) String creatorName,
@RequestParam(required = false) LocalDate createTimeStart,
@RequestParam(required = false) LocalDate createTimeEnd) {
}
@ApiOperation("分页查询文档")
@GetMapping("pages")
public Response<Void> documentLisst(@RequestParam Integer pageNum,
@RequestParam Integer size, @RequestParam(required = false) String documentTitle,
@RequestParam(required = false) Integer documentType, @RequestParam(required = false) String creatorName,
@RequestParam(required = false) LocalDateTime createTimeStart,
@RequestParam(required = false) LocalDateTime createTimeEnd) {
return Response.success();
}
@ApiOperation("分页查询文档")
@GetMapping("pagess")
public Response<Void> documentLisst(@RequestParam Integer pageNum,
@RequestParam Integer size, @RequestParam(required = false) String documentTitle,
@RequestParam(required = false) Integer documentType, @RequestParam(required = false) String creatorName,
@RequestParam(required = false) LocalTime createTimeStart,
@RequestParam(required = false) LocalTime createTimeEnd) {
return Response.success();
}
配置类
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import javax.annotation.Nonnull;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
@Configuration
public class DateTimeConfiguration {
/**
* 默认日期时间格式
*/
public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
/**
* 默认日期格式
*/
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
/**
* 默认时间格式
*/
public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
/**
* LocalDate转换器,用于转换RequestParam和PathVariable参数
*/
@Bean
public Converter<String, LocalDate> localDateConverter() {
return new StringToLocalDateConverter();
}
/**
* LocalDateTime转换器,用于转换RequestParam和PathVariable参数
*/
@Bean
public Converter<String, LocalDateTime> localDateTimeConverter() {
return new StringToLocalDateTimeConverter();
}
/**
* LocalTime转换器,用于转换RequestParam和PathVariable参数
*/
@Bean
public Converter<String, LocalTime> localTimeConverter() {
return new StringToLocalTimeConverter();
}
/**
* Date转换器,用于转换RequestParam和PathVariable参数
*/
@Bean
public Converter<String, Date> dateConverter() {
return new StringToDateConverter();
}
/**
* Json序列化和反序列化转换器,用于转换Post请求体中的json以及将我们的对象序列化为返回响应的json
*/
@Bean
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
return builder -> {
builder.simpleDateFormat(DEFAULT_DATE_TIME_FORMAT);
builder.serializers(new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)));
builder.serializers(new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)));
builder.serializers(new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));
builder.deserializers(new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)));
builder.deserializers(new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)));
builder.deserializers(new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));
};
}
public static class StringToLocalDateConverter implements Converter<String, LocalDate> {
@Override
public LocalDate convert(@Nonnull String source) {
return StringUtils.isEmpty(source) ? null : LocalDate.parse(source,
DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT));
// DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT));
}
}
public static class StringToLocalDateTimeConverter implements Converter<String, LocalDateTime> {
@Override
public LocalDateTime convert(@Nonnull String source) {
return StringUtils.isEmpty(source) ? null : LocalDateTime.parse(source,
DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT));
}
}
public static class StringToLocalTimeConverter implements Converter<String, LocalTime> {
@Override
public LocalTime convert(@Nonnull String source) {
return StringUtils.isEmpty(source) ? null : LocalTime.parse(source,
DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT));
}
}
public static class StringToDateConverter implements Converter<String, Date> {
@Override
public Date convert(@Nonnull String source) {
SimpleDateFormat format = new SimpleDateFormat(DEFAULT_DATE_TIME_FORMAT);
try {
return format.parse(source);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
}
值的注意的是,不管是LocalDate LocalDateTime还是LocalTime类型
传入的都是String类型。