Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
883e72ea
提交
883e72ea
authored
9月 02, 2020
作者:
黄夏豪
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
项目重构代码补充
上级
8d26a0e2
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
412 行增加
和
1 行删除
+412
-1
pom.xml
dev-config/pom.xml
+4
-1
Java8TimeConfig.java
...ig/src/main/java/com/tykj/dev/config/Java8TimeConfig.java
+133
-0
application.properties
dev-config/src/main/resources/application.properties
+3
-0
pom.xml
dev-misc/pom.xml
+4
-0
ApiException.java
...c/main/java/com/tykj/dev/misc/exception/ApiException.java
+24
-0
GlobalExceptionHandler.java
...a/com/tykj/dev/misc/exception/GlobalExceptionHandler.java
+89
-0
ResultUtil.java
...isc/src/main/java/com/tykj/dev/misc/utils/ResultUtil.java
+89
-0
pom.xml
dev-rfid/pom.xml
+66
-0
RFID.jar
dev-rfid/src/main/resources/lib/RFID.jar
+0
-0
RXTXcomm.jar
dev-rfid/src/main/resources/lib/RXTXcomm.jar
+0
-0
SerialPort.jar
dev-rfid/src/main/resources/lib/SerialPort.jar
+0
-0
ZSDK_API.jar
dev-rfid/src/main/resources/lib/ZSDK_API.jar
+0
-0
没有找到文件。
dev-config/pom.xml
浏览文件 @
883e72ea
...
...
@@ -64,7 +64,10 @@
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
</dependency>
<dependency>
<groupId>
com.tykj.dev
</groupId>
<artifactId>
misc
</artifactId>
</dependency>
<!--<dependency>-->
...
...
dev-config/src/main/java/com/tykj/dev/config/Java8TimeConfig.java
0 → 100644
浏览文件 @
883e72ea
package
com
.
tykj
.
dev
.
config
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.core.JsonParser
;
import
com.fasterxml.jackson.databind.*
;
import
com.fasterxml.jackson.databind.ser.std.DateSerializer
;
import
com.fasterxml.jackson.datatype.jdk8.Jdk8Module
;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
;
import
com.fasterxml.jackson.module.paramnames.ParameterNamesModule
;
import
com.tykj.dev.misc.utils.DateFormatUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.io.IOException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Date
;
/**
* 描述:使jackson能够正确的接收时间格式
* @author HuangXiahao
* @version V1.0
* @class Java8TimeConfig
* @data 2020/5/20
**/
@Configuration
public
class
Java8TimeConfig
{
@Value
(
"${spring.jackson.date-format}"
)
private
String
formatValue
;
@Bean
(
name
=
"format"
)
DateTimeFormatter
format
()
{
return
DateTimeFormatter
.
ofPattern
(
formatValue
);
}
@Bean
public
ObjectMapper
serializingObjectMapper
(
@Qualifier
(
"format"
)
DateTimeFormatter
format
)
{
JavaTimeModule
javaTimeModule
=
new
JavaTimeModule
();
javaTimeModule
.
addSerializer
(
LocalDateTime
.
class
,
new
LocalDateTimeSerializer
(
format
));
javaTimeModule
.
addSerializer
(
Instant
.
class
,
new
InstantCustomSerializer
(
format
));
javaTimeModule
.
addSerializer
(
Date
.
class
,
new
DateSerializer
(
false
,
new
SimpleDateFormat
(
formatValue
)));
javaTimeModule
.
addDeserializer
(
Instant
.
class
,
new
InstantCustomDeserializer
());
javaTimeModule
.
addDeserializer
(
Date
.
class
,
new
DateCustomDeserializer
());
return
new
ObjectMapper
()
.
registerModule
(
new
ParameterNamesModule
())
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
)
.
registerModule
(
javaTimeModule
)
.
disable
(
SerializationFeature
.
FAIL_ON_EMPTY_BEANS
);
}
static
class
InstantCustomSerializer
extends
JsonSerializer
<
Instant
>
{
private
final
DateTimeFormatter
format
;
private
InstantCustomSerializer
(
DateTimeFormatter
formatter
)
{
this
.
format
=
formatter
;
}
@Override
public
void
serialize
(
Instant
instant
,
JsonGenerator
jsonGenerator
,
SerializerProvider
serializerProvider
)
throws
IOException
{
if
(
instant
==
null
)
{
return
;
}
String
jsonValue
=
format
.
format
(
instant
.
atZone
(
ZoneId
.
systemDefault
()));
jsonGenerator
.
writeString
(
jsonValue
);
}
}
static
class
InstantCustomDeserializer
extends
JsonDeserializer
<
Instant
>{
@Override
public
Instant
deserialize
(
JsonParser
p
,
DeserializationContext
ctxt
)
throws
IOException
{
String
dateString
=
p
.
getText
().
trim
();
if
(
StringUtils
.
isNotBlank
(
dateString
)){
Date
pareDate
;
try
{
pareDate
=
DateFormatUtil
.
pareDate
(
dateString
);
if
(
null
!=
pareDate
){
return
pareDate
.
toInstant
();
}
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
}
static
class
DateCustomDeserializer
extends
JsonDeserializer
<
Date
>{
@Override
public
Date
deserialize
(
JsonParser
p
,
DeserializationContext
ctxt
)
throws
IOException
{
String
dateString
=
p
.
getText
().
trim
();
if
(
StringUtils
.
isNotBlank
(
dateString
)){
try
{
return
DateFormatUtil
.
pareDate
(
dateString
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
}
/**
* Support for Java date and time API.
* @return the corresponding Jackson module.
*/
@Bean
public
JavaTimeModule
javaTimeModule
()
{
return
new
JavaTimeModule
();
}
@Bean
public
Jdk8Module
jdk8TimeModule
()
{
return
new
Jdk8Module
();
}
}
\ No newline at end of file
dev-config/src/main/resources/application.properties
浏览文件 @
883e72ea
...
...
@@ -7,4 +7,7 @@ management.endpoint.health.show-details=always
alibaba.cloud.access-key
=
****
alibaba.cloud.secret-key
=
****
spring.jackson.date-format
=
yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone
=
GMT+8
dev-misc/pom.xml
浏览文件 @
883e72ea
...
...
@@ -30,6 +30,10 @@
<version>
2.1.1
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-security
</artifactId>
</dependency>
</dependencies>
</project>
dev-misc/src/main/java/com/tykj/dev/misc/exception/ApiException.java
0 → 100644
浏览文件 @
883e72ea
package
com
.
tykj
.
dev
.
misc
.
exception
;
import
org.springframework.http.ResponseEntity
;
/**
* 全局错误处理类,用于处理一些不容易定义的错误
* @author HuangXiahao
**/
public
class
ApiException
extends
Exception
{
private
ResponseEntity
responseEntity
;
public
ApiException
(
ResponseEntity
responseEntity
)
{
this
.
responseEntity
=
responseEntity
;
}
public
ResponseEntity
getResponseEntity
()
{
return
responseEntity
;
}
public
void
setResponseEntity
(
ResponseEntity
responseEntity
)
{
this
.
responseEntity
=
responseEntity
;
}
}
dev-misc/src/main/java/com/tykj/dev/misc/exception/GlobalExceptionHandler.java
0 → 100644
浏览文件 @
883e72ea
package
com
.
tykj
.
dev
.
misc
.
exception
;
import
com.tykj.dev.misc.utils.ResultUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.security.access.AccessDeniedException
;
import
org.springframework.security.core.AuthenticationException
;
import
org.springframework.validation.BindException
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.FieldError
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 错误处理类
* 所有的报错信息都会通过本层的方法向外界返回
*
* @author HuangXiahao
**/
@ControllerAdvice
@Slf4j
public
class
GlobalExceptionHandler
{
/**
* 报错信息都会通过这个方法处理并通过统一的返回方式进行返回
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler
(
Exception
.
class
)
public
ResponseEntity
errorMessage
(
Exception
e
){
return
ResultUtil
.
failed
();
}
/**
* 业务错误
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler
(
ApiException
.
class
)
public
ResponseEntity
errorMessage
(
ApiException
e
){
if
(
e
.
getResponseEntity
()!=
null
){
return
e
.
getResponseEntity
();
}
return
ResultUtil
.
failed
();
}
/**
* 数据合法性验证报错会通过这个方法处理并通过统一的返回方式进行返回
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler
(
BindException
.
class
)
public
ResponseEntity
errorMessage
(
BindException
e
){
BindingResult
bindingResult
=
e
.
getBindingResult
();
String
message
=
null
;
if
(
bindingResult
.
hasErrors
())
{
FieldError
fieldError
=
bindingResult
.
getFieldError
();
if
(
fieldError
!=
null
)
{
message
=
fieldError
.
getField
()+
fieldError
.
getDefaultMessage
();
}
}
return
ResultUtil
.
failed
(
message
);
}
/**
* 用户未登录时会通过这里处理
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler
(
AuthenticationException
.
class
)
public
ResponseEntity
errorMessage
(
AuthenticationException
e
){
return
ResultUtil
.
unauthorized
();
}
/**
* 用户权限不足
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler
(
AccessDeniedException
.
class
)
public
ResponseEntity
errorMessage
(
AccessDeniedException
e
){
return
ResultUtil
.
forbidden
();
}
}
dev-misc/src/main/java/com/tykj/dev/misc/utils/ResultUtil.java
0 → 100644
浏览文件 @
883e72ea
package
com
.
tykj
.
dev
.
misc
.
utils
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
/**
* @author HuangXiahao
* @version V1.0
* @class ResultMessage
* @packageName com.example.hello.demo.resultObject
**/
public
class
ResultUtil
<
T
>
{
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public
static
<
T
>
ResponseEntity
<
T
>
success
(
T
data
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
add
(
HttpHeaders
.
CONTENT_TYPE
,
"application/json;charset=UTF-8"
);
return
new
ResponseEntity
<>(
data
,
httpHeaders
,
HttpStatus
.
OK
);
}
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public
static
<
T
>
ResponseEntity
<
T
>
success
(
T
data
,
HttpHeaders
headers
)
{
return
new
ResponseEntity
<>(
data
,
headers
,
HttpStatus
.
OK
);
}
/**
* 失败返回结果
*/
public
static
<
T
>
ResponseEntity
<
T
>
failed
()
{
return
new
ResponseEntity
<>(
HttpStatus
.
BAD_REQUEST
);
}
/**
* 失败返回结果
*/
public
static
<
T
>
ResponseEntity
<
T
>
failed
(
T
content
)
{
return
new
ResponseEntity
<>(
content
,
HttpStatus
.
BAD_REQUEST
);
}
/**
* 失败返回结果
*/
public
static
<
T
>
ResponseEntity
<
T
>
failed
(
HttpStatus
httpStatus
)
{
return
new
ResponseEntity
<>(
httpStatus
);
}
/**
* 失败返回结果
*/
public
static
<
T
>
ResponseEntity
<
T
>
failed
(
HttpStatus
httpStatus
,
T
content
)
{
return
new
ResponseEntity
<>(
content
,
httpStatus
);
}
/**
* 参数验证失败返回结果
*/
public
static
<
T
>
ResponseEntity
<
T
>
validateFailed
(
T
content
)
{
return
failed
(
HttpStatus
.
BAD_REQUEST
,
content
);
}
/**
* 未登录返回结果
*/
public
static
<
T
>
ResponseEntity
<
T
>
unauthorized
()
{
return
failed
(
HttpStatus
.
UNAUTHORIZED
);
}
/**
* 未授权返回结果
*/
public
static
<
T
>
ResponseEntity
<
T
>
forbidden
()
{
return
failed
(
HttpStatus
.
FORBIDDEN
);
}
}
dev-rfid/pom.xml
浏览文件 @
883e72ea
...
...
@@ -15,6 +15,72 @@
</parent>
<dependencies>
<!-- 使用usb接口连接打印机时必要的驱动 -->
<dependency>
<groupId>
org.usb4java
</groupId>
<artifactId>
usb4java
</artifactId>
<version>
1.3.0
</version>
</dependency>
<!-- 使用usb接口连接打印机时必要的驱动 -->
<dependency>
<groupId>
org.usb4java
</groupId>
<artifactId>
usb4java-javax
</artifactId>
<version>
1.3.0
</version>
</dependency>
<dependency>
<groupId>
com.zebra
</groupId>
<artifactId>
sdk
</artifactId>
<version>
1.0.0
</version>
<scope>
system
</scope>
<systemPath>
${project.basedir}/src/main/resources/lib/ZSDK_API.jar
</systemPath>
</dependency>
<dependency>
<groupId>
com.rfid
</groupId>
<artifactId>
sdk
</artifactId>
<version>
1.0.0
</version>
<scope>
system
</scope>
<systemPath>
${project.basedir}/src/main/resources/lib/RFID.jar
</systemPath>
</dependency>
<dependency>
<groupId>
com.rxtx
</groupId>
<artifactId>
sdk
</artifactId>
<version>
1.0.0
</version>
<scope>
system
</scope>
<systemPath>
${project.basedir}/src/main/resources/lib/RXTXcomm.jar
</systemPath>
</dependency>
<dependency>
<groupId>
com.seriaPort
</groupId>
<artifactId>
sdk
</artifactId>
<version>
1.0.0
</version>
<scope>
system
</scope>
<systemPath>
${project.basedir}/src/main/resources/lib/SerialPort.jar
</systemPath>
</dependency>
<dependency>
<groupId>
com.tykj.dev
</groupId>
<artifactId>
config
</artifactId>
<exclusions>
<exclusion>
<groupId>
com.tykj.dev
</groupId>
<artifactId>
rfid
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
com.tykj.dev
</groupId>
<artifactId>
device
</artifactId>
<exclusions>
<exclusion>
<groupId>
com.tykj.dev
</groupId>
<artifactId>
rfid
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
...
...
dev-rfid/src/main/resources/lib/RFID.jar
0 → 100644
浏览文件 @
883e72ea
File added
dev-rfid/src/main/resources/lib/RXTXcomm.jar
0 → 100644
浏览文件 @
883e72ea
File added
dev-rfid/src/main/resources/lib/SerialPort.jar
0 → 100644
浏览文件 @
883e72ea
File added
dev-rfid/src/main/resources/lib/ZSDK_API.jar
0 → 100644
浏览文件 @
883e72ea
File added
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论