Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
yangxiujun
/
paidan_demo
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit d89318cd
authored
Sep 21, 2023
by
刘鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 回退
1 parent
d1a70903
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
3 additions
and
164 deletions
project-order/src/main/java/com/dituhui/pea/order/config/ParamConverterConfig.java
project-order/src/main/java/com/dituhui/pea/order/controller/PeaApiController.java
project-order/src/main/java/com/dituhui/pea/order/config/ParamConverterConfig.java
deleted
100644 → 0
View file @
d1a7090
package
com
.
dituhui
.
pea
.
order
.
config
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
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
;
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
java.text.DateFormat
;
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
;
/**
* 日期参数转换器 兼容JSON方式和GET请求及POST表单方式
*/
@Configuration
public
class
ParamConverterConfig
{
/**
* 日期正则表达式
*/
private
static
final
String
DATE_REGEX
=
"[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])"
;
/**
* 时间正则表达式
*/
private
static
final
String
TIME_REGEX
=
"(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d"
;
/**
* 日期和时间正则表达式
*/
private
static
final
String
DATE_TIME_REGEX
=
DATE_REGEX
+
"\\s"
+
TIME_REGEX
;
/**
* 13位时间戳正则表达式
*/
private
static
final
String
TIME_STAMP_REGEX
=
"1\\d{12}"
;
/**
* 年和月正则表达式
*/
private
static
final
String
YEAR_MONTH_REGEX
=
"[1-9]\\d{3}-(0[1-9]|1[0-2])"
;
/**
* 年和月格式
*/
private
static
final
String
YEAR_MONTH_PATTERN
=
"yyyy-MM"
;
/**
* DateTime格式化字符串
*/
private
static
final
String
DEFAULT_DATETIME_PATTERN
=
"yyyy-MM-dd HH:mm:ss"
;
/**
* Date格式化字符串
*/
private
static
final
String
DEFAULT_DATE_FORMAT
=
"yyyy-MM-dd"
;
/**
* Time格式化字符串
*/
private
static
final
String
DEFAULT_TIME_FORMAT
=
"HH:mm:ss"
;
/**
* LocalDate转换器,用于转换RequestParam和PathVariable参数
*/
@Bean
public
Converter
<
String
,
LocalDate
>
localDateConverter
()
{
return
source
->
{
if
(
StringUtils
.
isEmpty
(
source
))
{
return
null
;
}
return
LocalDate
.
parse
(
source
,
DateTimeFormatter
.
ofPattern
(
DEFAULT_DATE_FORMAT
));
};
}
/**
* LocalDateTime转换器,用于转换RequestParam和PathVariable参数
*/
@Bean
public
Converter
<
String
,
LocalDateTime
>
localDateTimeConverter
()
{
return
source
->
{
if
(
StringUtils
.
isEmpty
(
source
))
{
return
null
;
}
return
LocalDateTime
.
parse
(
source
,
DateTimeFormatter
.
ofPattern
(
DEFAULT_DATETIME_PATTERN
));
};
}
/**
* LocalDate转换器,用于转换RequestParam和PathVariable参数
*/
@Bean
public
Converter
<
String
,
LocalTime
>
localTimeConverter
()
{
return
source
->
{
if
(
StringUtils
.
isEmpty
(
source
))
{
return
null
;
}
return
LocalTime
.
parse
(
source
,
DateTimeFormatter
.
ofPattern
(
DEFAULT_TIME_FORMAT
));
};
}
/**
* Date转换器,用于转换RequestParam和PathVariable参数
*/
@Bean
public
Converter
<
String
,
Date
>
dateConverter
()
{
return
new
Converter
<
String
,
Date
>()
{
@SuppressWarnings
(
"NullableProblems"
)
@Override
public
Date
convert
(
String
source
)
{
if
(
StringUtils
.
isEmpty
(
source
))
{
return
null
;
}
if
(
source
.
matches
(
TIME_STAMP_REGEX
))
{
return
new
Date
(
Long
.
parseLong
(
source
));
}
DateFormat
format
;
if
(
source
.
matches
(
DATE_TIME_REGEX
))
{
format
=
new
SimpleDateFormat
(
DEFAULT_DATETIME_PATTERN
);
}
else
if
(
source
.
matches
(
DATE_REGEX
))
{
format
=
new
SimpleDateFormat
(
DEFAULT_DATE_FORMAT
);
}
else
if
(
source
.
matches
(
YEAR_MONTH_REGEX
))
{
format
=
new
SimpleDateFormat
(
YEAR_MONTH_PATTERN
);
}
else
{
throw
new
IllegalArgumentException
();
}
try
{
return
format
.
parse
(
source
);
}
catch
(
ParseException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
};
}
/**
* Json序列化和反序列化转换器,用于转换Post请求体中的json以及将我们的对象序列化为返回响应的json
*/
@Bean
public
Jackson2ObjectMapperBuilderCustomizer
jackson2ObjectMapperBuilderCustomizer
()
{
return
builder
->
builder
.
serializerByType
(
LocalDateTime
.
class
,
new
LocalDateTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
DEFAULT_DATETIME_PATTERN
)))
.
serializerByType
(
LocalDate
.
class
,
new
LocalDateSerializer
(
DateTimeFormatter
.
ofPattern
(
DEFAULT_DATE_FORMAT
)))
.
serializerByType
(
LocalTime
.
class
,
new
LocalTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
DEFAULT_TIME_FORMAT
)))
.
serializerByType
(
Long
.
class
,
ToStringSerializer
.
instance
)
.
deserializerByType
(
LocalDateTime
.
class
,
new
LocalDateTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
DEFAULT_DATETIME_PATTERN
)))
.
deserializerByType
(
LocalDate
.
class
,
new
LocalDateDeserializer
(
DateTimeFormatter
.
ofPattern
(
DEFAULT_DATE_FORMAT
)))
.
deserializerByType
(
LocalTime
.
class
,
new
LocalTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
DEFAULT_TIME_FORMAT
)));
}
}
project-order/src/main/java/com/dituhui/pea/order/controller/PeaApiController.java
View file @
d89318c
...
...
@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.
time.Local
Date
;
import
java.
util.
Date
;
/**
* PEA 调用API
...
...
@@ -98,10 +98,10 @@ public class PeaApiController {
public
Result
<
CapacityQueryDTO
.
PersonalResult
>
capacityEngineer
(
@NotBlank
@RequestParam
(
"engineerCode"
)
String
engineerCode
,
@NotNull
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@RequestParam
(
"beginDate"
)
Local
Date
beginDate
,
@RequestParam
(
"beginDate"
)
Date
beginDate
,
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@RequestParam
(
"endDate"
)
Local
Date
endDate
)
{
@RequestParam
(
"endDate"
)
Date
endDate
)
{
return
Result
.
success
(
null
);
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment