Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
device-new-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
device-new-platform
Commits
7f9e4ebb
Commit
7f9e4ebb
authored
Sep 23, 2024
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加巴中经开区windows shell
parent
c5377899
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
125 additions
and
28 deletions
+125
-28
device-manager/src/main/java/com/mortals/xhx/base/framework/DateJacksonConverter.java
.../com/mortals/xhx/base/framework/DateJacksonConverter.java
+46
-0
device-manager/src/main/java/com/mortals/xhx/base/framework/config/ConverterConfig.java
...om/mortals/xhx/base/framework/config/ConverterConfig.java
+36
-0
device-manager/src/main/java/com/mortals/xhx/base/framework/config/CrossInterceptor.java
...m/mortals/xhx/base/framework/config/CrossInterceptor.java
+1
-2
device-manager/src/main/java/com/mortals/xhx/base/framework/exception/ExceptionHandle.java
...mortals/xhx/base/framework/exception/ExceptionHandle.java
+42
-26
No files found.
device-manager/src/main/java/com/mortals/xhx/base/framework/DateJacksonConverter.java
0 → 100644
View file @
7f9e4ebb
package
com.mortals.xhx.base.framework
;
import
com.fasterxml.jackson.core.JsonParser
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.DeserializationContext
;
import
com.fasterxml.jackson.databind.JsonDeserializer
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.time.DateUtils
;
import
java.io.IOException
;
import
java.text.ParseException
;
import
java.util.Date
;
/**
* 自定义Jackson反序列化日期类型时应用的类型转换器,一般用于@RequestBody接受参数时使用
*/
public
class
DateJacksonConverter
extends
JsonDeserializer
{
private
static
String
[]
pattern
=
new
String
[]{
"yyyy-MM-dd"
,
"yyyy-MM-dd HH:mm"
,
"yyyy-MM-dd HH:mm:ss"
,
"yyyy-MM-dd HH:mm:ss.S"
,
"yyyy.MM.dd"
,
"yyyy.MM.dd HH:mm"
,
"yyyy.MM.dd HH:mm:ss"
,
"yyyy.MM.dd HH:mm:ss.S"
,
"yyyy/MM/dd"
,
"yyyy/MM/dd HH:mm"
,
"yyyy/MM/dd HH:mm:ss"
,
"yyyy/MM/dd HH:mm:ss.S"
};
@Override
public
Date
deserialize
(
JsonParser
p
,
DeserializationContext
ctxt
)
throws
IOException
,
JsonProcessingException
{
Date
targetDate
=
null
;
String
originDate
=
p
.
getText
();
if
(
StringUtils
.
isNotEmpty
(
originDate
))
{
try
{
long
longDate
=
Long
.
valueOf
(
originDate
.
trim
());
targetDate
=
new
Date
(
longDate
);
}
catch
(
NumberFormatException
e
)
{
try
{
targetDate
=
DateUtils
.
parseDate
(
originDate
,
DateJacksonConverter
.
pattern
);
}
catch
(
ParseException
pe
)
{
throw
new
IOException
(
String
.
format
(
"'%s' can not convert to type 'java.util.Date',just support timestamp(type of long) and following date format(%s)"
,
originDate
,
StringUtils
.
join
(
pattern
,
","
)));
}
}
}
return
targetDate
;
}
@Override
public
Class
handledType
()
{
return
Date
.
class
;
}
}
device-manager/src/main/java/com/mortals/xhx/base/framework/config/ConverterConfig.java
0 → 100644
View file @
7f9e4ebb
package
com.mortals.xhx.base.framework.config
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.mortals.xhx.base.framework.DateJacksonConverter
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean
;
import
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
;
@Configuration
public
class
ConverterConfig
{
@Bean
public
DateJacksonConverter
dateJacksonConverter
()
{
return
new
DateJacksonConverter
();
}
@Bean
public
Jackson2ObjectMapperFactoryBean
jackson2ObjectMapperFactoryBean
(
DateJacksonConverter
dateJacksonConverter
)
{
Jackson2ObjectMapperFactoryBean
jackson2ObjectMapperFactoryBean
=
new
Jackson2ObjectMapperFactoryBean
();
jackson2ObjectMapperFactoryBean
.
setDeserializers
(
dateJacksonConverter
);
return
jackson2ObjectMapperFactoryBean
;
}
@Bean
public
MappingJackson2HttpMessageConverter
mappingJackson2HttpMessageConverter
(
ObjectMapper
objectMapper
)
{
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
true
);
MappingJackson2HttpMessageConverter
mappingJackson2HttpMessageConverter
=
new
MappingJackson2HttpMessageConverter
();
mappingJackson2HttpMessageConverter
.
setObjectMapper
(
objectMapper
);
return
mappingJackson2HttpMessageConverter
;
}
}
device-manager/src/main/java/com/mortals/xhx/base/framework/config/CrossInterceptor.java
View file @
7f9e4ebb
package
com.mortals.xhx.base.framework.config
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -11,7 +10,7 @@ import javax.servlet.http.HttpServletResponse;
* @date: 2022/6/6 15:05
* @description:添加跨域响应
**/
@Component
//
@Component
public
class
CrossInterceptor
extends
HandlerInterceptorAdapter
{
@Override
...
...
device-manager/src/main/java/com/mortals/xhx/base/framework/exception/ExceptionHandle.java
View file @
7f9e4ebb
package
com.mortals.xhx.base.framework.exception
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpStatus
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.exception.AppException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.converter.HttpMessageNotReadableException
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
com.alibaba.fastjson.JSONObjec
t
;
import
com.mortals.framework.exception.AppException
;
import
javax.servlet.http.HttpServletReques
t
;
import
javax.servlet.http.HttpServletResponse
;
/**
* 统一异常处理
*/
@ControllerAdvice
@Slf4j
public
class
ExceptionHandle
{
private
final
static
Logger
log
=
LoggerFactory
.
getLogger
(
ExceptionHandle
.
class
);
@Autowired
private
HttpServletRequest
request
;
@Autowired
private
HttpServletResponse
response
;
public
static
final
String
KEY_RESULT_CODE
=
"code"
;
public
static
final
String
KEY_RESULT_MSG
=
"msg"
;
public
static
final
String
KEY_RESULT_DATA
=
"data"
;
public
static
final
int
VALUE_RESULT_FAILURE
=
-
1
;
public
static
final
String
KEY_RESULT_CODE
=
"code"
;
public
static
final
String
KEY_RESULT_MSG
=
"msg"
;
public
static
final
String
KEY_RESULT_DATA
=
"data"
;
public
static
final
int
VALUE_RESULT_FAILURE
=
-
1
;
@ExceptionHandler
(
value
=
Exception
.
class
)
@ResponseBody
public
String
handle
(
Exception
e
)
{
JSONObject
ret
=
new
JSONObject
();
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
if
(
e
instanceof
AppException
)
{
StackTraceElement
stack
=
e
.
getStackTrace
()[
0
];
log
.
error
(
"[business error]=========stack message[{}],[{},method:{},line{}][{}]"
,
e
.
getMessage
(),
stack
.
getClassName
(),
stack
.
getMethodName
(),
stack
.
getLineNumber
(),
e
.
getClass
().
getName
());
AppException
ex
=
(
AppException
)
e
;
ret
.
put
(
KEY_RESULT_MSG
,
ex
.
getMessage
());
}
else
{
log
.
error
(
"[system error]"
,
e
);
ret
.
put
(
KEY_RESULT_MSG
,
"unknown exception!"
);
}
return
ret
.
toJSONString
();
}
@ExceptionHandler
(
value
=
Exception
.
class
)
@ResponseBody
public
String
handle
(
Exception
e
)
{
JSONObject
ret
=
new
JSONObject
();
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
if
(
e
instanceof
AppException
)
{
StackTraceElement
stack
=
e
.
getStackTrace
()[
0
];
log
.
error
(
"[business error]=========stack message[{}],[{},method:{},line{}][{}]"
,
e
.
getMessage
(),
stack
.
getClassName
(),
stack
.
getMethodName
(),
stack
.
getLineNumber
(),
e
.
getClass
().
getName
());
AppException
ex
=
(
AppException
)
e
;
ret
.
put
(
KEY_RESULT_MSG
,
ex
.
getMessage
());
}
if
(
e
instanceof
HttpMessageNotReadableException
)
{
log
.
error
(
"[system error]"
,
e
);
response
.
setStatus
(
HttpStatus
.
HTTP_BAD_REQUEST
);
ret
.
put
(
KEY_RESULT_MSG
,
"参数错误,"
+
StrUtil
.
subBefore
(
e
.
getMessage
(),
";"
,
false
));
}
else
{
log
.
error
(
"[system error]"
,
e
);
response
.
setStatus
(
HttpStatus
.
HTTP_INTERNAL_ERROR
);
ret
.
put
(
KEY_RESULT_MSG
,
"未知错误!"
+
e
.
getMessage
());
}
return
ret
.
toJSONString
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment