Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
asset-distribution
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
data-spider
asset-distribution
Commits
f81fa805
Commit
f81fa805
authored
Jul 17, 2019
by
liwenbin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
资产入库
parent
115bc0dd
Changes
31
Show whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
1826 additions
and
18 deletions
+1826
-18
pom.xml
pom.xml
+1
-0
HttpClientConfig.java
...roup/asset/distribution/config/http/HttpClientConfig.java
+104
-0
WebMvcConfigure.java
...tgroup/asset/distribution/config/web/WebMvcConfigure.java
+24
-15
AuthorityInterceptor.java
...ribution/config/web/interceptor/AuthorityInterceptor.java
+69
-0
AssetController.java
...tgroup/asset/distribution/controller/AssetController.java
+42
-0
AssetResponse.java
...roup/asset/distribution/enums/response/AssetResponse.java
+35
-0
AuthorityResponse.java
.../asset/distribution/enums/response/AuthorityResponse.java
+39
-0
GlobalResponseEnum.java
...asset/distribution/enums/response/GlobalResponseEnum.java
+12
-0
GlobalControllerHandler.java
...asset/distribution/exception/GlobalControllerHandler.java
+28
-0
QGException.java
.../quantgroup/asset/distribution/exception/QGException.java
+115
-0
QGExceptionType.java
...ntgroup/asset/distribution/exception/QGExceptionType.java
+57
-0
QGPreconditions.java
...ntgroup/asset/distribution/exception/QGPreconditions.java
+31
-0
AssetForm.java
...m/quantgroup/asset/distribution/model/form/AssetForm.java
+54
-0
GlobalResponse.java
...oup/asset/distribution/model/response/GlobalResponse.java
+105
-0
IAssetAttributeService.java
...up/asset/distribution/service/IAssetAttributeService.java
+25
-0
IAssetService.java
.../quantgroup/asset/distribution/service/IAssetService.java
+22
-1
IAuthorityService.java
...ntgroup/asset/distribution/service/IAuthorityService.java
+26
-0
IHttpService.java
...p/asset/distribution/service/httpclient/IHttpService.java
+81
-0
HttpServiceImpl.java
...distribution/service/httpclient/impl/HttpServiceImpl.java
+389
-0
AssetAttributeServiceImpl.java
.../distribution/service/impl/AssetAttributeServiceImpl.java
+88
-0
AssetServiceImpl.java
...oup/asset/distribution/service/impl/AssetServiceImpl.java
+91
-0
AuthorityServiceImpl.java
...asset/distribution/service/impl/AuthorityServiceImpl.java
+38
-0
Asset.java
...antgroup/asset/distribution/service/jpa/entity/Asset.java
+51
-2
AssetAttributeExtend.java
...distribution/service/jpa/entity/AssetAttributeExtend.java
+66
-0
AssetAttributeExtendConfig.java
...bution/service/jpa/entity/AssetAttributeExtendConfig.java
+73
-0
AuthorityConfig.java
...sset/distribution/service/jpa/entity/AuthorityConfig.java
+60
-0
IAssetAttributeExtendConfigRepository.java
...jpa/repository/IAssetAttributeExtendConfigRepository.java
+13
-0
IAssetAttributeExtendRepository.java
...rvice/jpa/repository/IAssetAttributeExtendRepository.java
+9
-0
IAuthorityRepository.java
...ribution/service/jpa/repository/IAuthorityRepository.java
+22
-0
UUIDUtil.java
...java/com/quantgroup/asset/distribution/util/UUIDUtil.java
+25
-0
AuthorityTest.java
...uantgroup/asset/distribution/authority/AuthorityTest.java
+31
-0
No files found.
pom.xml
View file @
f81fa805
...
@@ -121,6 +121,7 @@
...
@@ -121,6 +121,7 @@
<dependency>
<dependency>
<groupId>
org.springframework.data
</groupId>
<groupId>
org.springframework.data
</groupId>
<artifactId>
spring-data-redis
</artifactId>
<artifactId>
spring-data-redis
</artifactId>
<version>
1.8.11.RELEASE
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<groupId>
org.springframework
</groupId>
...
...
src/main/java/com/quantgroup/asset/distribution/config/http/HttpClientConfig.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
config
.
http
;
import
org.apache.http.HttpEntityEnclosingRequest
;
import
org.apache.http.HttpRequest
;
import
org.apache.http.client.HttpRequestRetryHandler
;
import
org.apache.http.client.protocol.HttpClientContext
;
import
org.apache.http.config.Registry
;
import
org.apache.http.config.RegistryBuilder
;
import
org.apache.http.conn.ConnectTimeoutException
;
import
org.apache.http.conn.ConnectionKeepAliveStrategy
;
import
org.apache.http.conn.socket.ConnectionSocketFactory
;
import
org.apache.http.conn.socket.PlainConnectionSocketFactory
;
import
org.apache.http.conn.ssl.SSLConnectionSocketFactory
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
import
org.apache.http.protocol.HttpContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
javax.net.ssl.*
;
import
java.io.IOException
;
import
java.net.SocketTimeoutException
;
import
java.net.UnknownHostException
;
import
java.security.KeyManagementException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.SecureRandom
;
import
java.security.cert.CertificateException
;
import
java.security.cert.X509Certificate
;
/**
* @author renfeng
* @version v1.0
* @date: 2017年5月8日 下午12:21:48
*/
@Configuration
public
class
HttpClientConfig
{
@Bean
(
name
=
"httpClient"
)
public
CloseableHttpClient
httpClient
()
throws
NoSuchAlgorithmException
,
KeyManagementException
{
/**
* 忽略证书
*/
HostnameVerifier
ignoreHostnameVerifier
=
new
HostnameVerifier
()
{
@Override
public
boolean
verify
(
String
hostname
,
SSLSession
session
)
{
return
true
;
}
};
/**
* 创建TrustManager
*/
X509TrustManager
xtm
=
new
X509TrustManager
()
{
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
)
throws
CertificateException
{
}
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
)
throws
CertificateException
{
}
public
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
};
SSLContext
sslContext
=
SSLContext
.
getInstance
(
"TLSv1.2"
);
sslContext
.
init
(
null
,
new
TrustManager
[]{
xtm
},
new
SecureRandom
());
SSLConnectionSocketFactory
sslsf
=
new
SSLConnectionSocketFactory
(
sslContext
,
ignoreHostnameVerifier
);
Registry
<
ConnectionSocketFactory
>
socketFactoryRegistry
=
RegistryBuilder
.<
ConnectionSocketFactory
>
create
()
.
register
(
"http"
,
PlainConnectionSocketFactory
.
getSocketFactory
())
.
register
(
"https"
,
sslsf
)
.
build
();
// connection manager
PoolingHttpClientConnectionManager
connectionManager
=
new
PoolingHttpClientConnectionManager
(
socketFactoryRegistry
);
connectionManager
.
setMaxTotal
(
10000
);
connectionManager
.
setDefaultMaxPerRoute
(
1000
);
HttpRequestRetryHandler
retryHandler
=
new
HttpRequestRetryHandler
()
{
@Override
public
boolean
retryRequest
(
IOException
arg0
,
int
retryTimes
,
HttpContext
arg2
)
{
if
(
retryTimes
>=
2
)
return
false
;
if
(
arg0
instanceof
UnknownHostException
||
arg0
instanceof
ConnectTimeoutException
||
!(
arg0
instanceof
SSLException
)
||
arg0
instanceof
SocketTimeoutException
)
return
true
;
HttpClientContext
clientContext
=
HttpClientContext
.
adapt
(
arg2
);
HttpRequest
request
=
clientContext
.
getRequest
();
if
(!(
request
instanceof
HttpEntityEnclosingRequest
))
// 如果请求被认为是幂等的,那么就重试。即重复执行不影响程序其他效果的
return
true
;
return
false
;
}
};
// keep alive strategy
ConnectionKeepAliveStrategy
keepAliveStrategy
=
new
DefaultConnectionKeepAliveStrategy
();
// httpclient
return
HttpClients
.
custom
()
.
setConnectionManager
(
connectionManager
)
.
setRetryHandler
(
retryHandler
)
.
setKeepAliveStrategy
(
keepAliveStrategy
)
.
build
();
}
}
src/main/java/com/quantgroup/asset/distribution/config/web/WebMvcConfigure.java
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
config
.
web
;
package
com
.
quantgroup
.
asset
.
distribution
.
config
.
web
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
import
com.quantgroup.asset.distribution.config.web.interceptor.AuthorityInterceptor
;
/**
/**
*
*
* @author liwenbin
* @author liwenbin
...
@@ -13,11 +16,16 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
...
@@ -13,11 +16,16 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
@Configuration
@Configuration
public
class
WebMvcConfigure
extends
WebMvcConfigurerAdapter
{
public
class
WebMvcConfigure
extends
WebMvcConfigurerAdapter
{
@Autowired
private
AuthorityInterceptor
authorityInterceptor
;
/**
/**
* 添加拦截器
* 添加拦截器
*/
*/
@Override
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
authorityInterceptor
)
.
addPathPatterns
(
"/biz/**"
);
}
}
@Override
@Override
...
@@ -26,6 +34,7 @@ public class WebMvcConfigure extends WebMvcConfigurerAdapter {
...
@@ -26,6 +34,7 @@ public class WebMvcConfigure extends WebMvcConfigurerAdapter {
.
allowedOrigins
(
"*"
)
.
allowedOrigins
(
"*"
)
.
allowedMethods
(
"HEAD"
,
"GET"
,
"POST"
)
.
allowedMethods
(
"HEAD"
,
"GET"
,
"POST"
)
.
allowedHeaders
(
"X-Auth-Token"
,
"Origin"
,
"No-Cache"
,
"X-Requested-With"
,
"If-Modified-Since"
,
"Pragma"
,
"Last-Modified"
,
"Cache-Control"
,
"Expires"
,
"Content-Type"
,
"Authorization"
)
.
allowedHeaders
(
"X-Auth-Token"
,
"Origin"
,
"No-Cache"
,
"X-Requested-With"
,
"If-Modified-Since"
,
"Pragma"
,
"Last-Modified"
,
"Cache-Control"
,
"Expires"
,
"Content-Type"
,
"Authorization"
)
.
allowCredentials
(
true
).
maxAge
(
3600
);
.
allowCredentials
(
true
)
.
maxAge
(
3600
);
}
}
}
}
\ No newline at end of file
src/main/java/com/quantgroup/asset/distribution/config/web/interceptor/AuthorityInterceptor.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
config
.
web
.
interceptor
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
import
com.quantgroup.asset.distribution.enums.response.AuthorityResponse
;
import
com.quantgroup.asset.distribution.model.response.GlobalResponse
;
import
com.quantgroup.asset.distribution.service.IAuthorityService
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AuthorityConfig
;
import
com.quantgroup.asset.distribution.service.jpa.repository.IAuthorityRepository
;
import
lombok.extern.slf4j.Slf4j
;
/**
* 权限认证
* @author liwenbin
*
*/
@Slf4j
@Component
public
class
AuthorityInterceptor
implements
HandlerInterceptor
{
@Autowired
private
IAuthorityService
authorityService
;
@Override
public
void
afterCompletion
(
HttpServletRequest
arg0
,
HttpServletResponse
arg1
,
Object
arg2
,
Exception
arg3
)
throws
Exception
{
// TODO Auto-generated method stub
}
@Override
public
void
postHandle
(
HttpServletRequest
arg0
,
HttpServletResponse
arg1
,
Object
arg2
,
ModelAndView
arg3
)
throws
Exception
{
// TODO Auto-generated method stub
}
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
GlobalResponse
globalResponse
=
authoriity
(
request
);
if
(
globalResponse
!=
null
){
log
.
info
(
"系统校验失败,原因 : {} "
,
globalResponse
.
getMsg
());
globalResponse
.
writeJson
(
response
);
return
false
;
}
return
true
;
}
/**
* 权限验证
* @param request
* @return
*/
private
GlobalResponse
authoriity
(
HttpServletRequest
request
)
{
String
key
=
request
.
getHeader
(
"as_auth_key"
);
if
(
StringUtils
.
isEmpty
(
key
))
{
return
GlobalResponse
.
create
(
AuthorityResponse
.
AS_AUTH_KEY_IS_EMPTY
);
}
String
pass
=
request
.
getHeader
(
"as_auth_pass"
);
if
(
StringUtils
.
isEmpty
(
pass
))
{
return
GlobalResponse
.
create
(
AuthorityResponse
.
AS_AUTH_PASS_IS_EMPTY
);
}
AuthorityConfig
authorityConfig
=
authorityService
.
findByAuthKeyAndAuthPass
(
key
,
pass
);
if
(
authorityConfig
==
null
)
{
return
GlobalResponse
.
create
(
AuthorityResponse
.
AS_AUTH_KEY_AND_PASS_IS_NOT_EXIST
);
}
return
null
;
}
}
src/main/java/com/quantgroup/asset/distribution/controller/AssetController.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
controller
;
import
java.util.concurrent.TimeUnit
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.base.Stopwatch
;
import
com.quantgroup.asset.distribution.enums.response.AssetResponse
;
import
com.quantgroup.asset.distribution.model.form.AssetForm
;
import
com.quantgroup.asset.distribution.model.response.GlobalResponse
;
import
com.quantgroup.asset.distribution.service.IAssetService
;
import
com.quantgroup.asset.distribution.util.UUIDUtil
;
import
lombok.extern.slf4j.Slf4j
;
/**
* 资产入库Controller
* @author liwenbin
*
*/
@RestController
@Slf4j
@RequestMapping
(
"/biz"
)
public
class
AssetController
{
@Autowired
private
IAssetService
assetService
;
@RequestMapping
(
"/asset_in"
)
public
GlobalResponse
assetsIn
(
AssetForm
assetForm
)
{
Stopwatch
stopwatch
=
Stopwatch
.
createStarted
();
assetForm
.
setAssetNo
(
UUIDUtil
.
getAssetNo
());
log
.
info
(
"资产入库开始, assetForm : {}"
,
JSON
.
toJSONString
(
assetForm
));
GlobalResponse
response
=
assetService
.
checkAssetForm
(
assetForm
);
assetService
.
assetsIn
(
assetForm
);
log
.
info
(
"资产入库结束, assetForm : {}, response : {}, 耗时 : {}"
,
JSON
.
toJSONString
(
assetForm
),
JSON
.
toJSONString
(
response
),
stopwatch
.
stop
().
elapsed
(
TimeUnit
.
MILLISECONDS
));
return
response
;
}
}
src/main/java/com/quantgroup/asset/distribution/enums/response/AssetResponse.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
enums
.
response
;
import
lombok.Getter
;
/**
* 资产系统返回值
* @author liwenbin
*
*/
public
enum
AssetResponse
implements
GlobalResponseEnum
{
ASSET_FORM_IS_ERROR
(
2001
,
"资产入库参数错误!"
);
@Getter
private
int
code
;
@Getter
private
String
businessCode
;
@Getter
private
String
msg
;
@Getter
private
Object
body
;
AssetResponse
(
int
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
businessCode
=
null
;
this
.
msg
=
msg
;
this
.
body
=
null
;
}
AssetResponse
(
int
code
,
String
businessCode
,
String
msg
)
{
this
.
code
=
code
;
this
.
businessCode
=
businessCode
;
this
.
msg
=
msg
;
}
}
src/main/java/com/quantgroup/asset/distribution/enums/response/AuthorityResponse.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
enums
.
response
;
import
lombok.Getter
;
/**
* 权限认证返回错误信息
* 102X
* @author liwenbin
*
*/
public
enum
AuthorityResponse
implements
GlobalResponseEnum
{
AS_AUTH_KEY_IS_EMPTY
(
1021
,
"as_auth_key不能为空"
),
AS_AUTH_PASS_IS_EMPTY
(
1022
,
"as_auth_pass不能为空"
),
AS_AUTH_KEY_AND_PASS_IS_NOT_EXIST
(
1023
,
"权限认证失败, 请检查!"
);
@Getter
private
int
code
;
@Getter
private
String
businessCode
;
@Getter
private
String
msg
;
@Getter
private
Object
body
;
AuthorityResponse
(
int
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
businessCode
=
null
;
this
.
msg
=
msg
;
this
.
body
=
null
;
}
AuthorityResponse
(
int
code
,
String
businessCode
,
String
msg
)
{
this
.
code
=
code
;
this
.
businessCode
=
businessCode
;
this
.
msg
=
msg
;
}
}
src/main/java/com/quantgroup/asset/distribution/enums/response/GlobalResponseEnum.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
enums
.
response
;
public
interface
GlobalResponseEnum
{
public
int
getCode
();
public
String
getBusinessCode
();
public
String
getMsg
();
public
Object
getBody
();
}
src/main/java/com/quantgroup/asset/distribution/exception/GlobalControllerHandler.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
exception
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.context.request.WebRequest
;
import
com.quantgroup.asset.distribution.model.response.GlobalResponse
;
/**
* 全局异常捕获
*
* @author liwenbin
*
*/
@ControllerAdvice
({
"com.quantgroup.asset.distribution"
})
@Slf4j
public
class
GlobalControllerHandler
{
// 定义全局异常处理,value属性可以过滤拦截条件,此处拦截所有的Exception
@ExceptionHandler
(
value
=
Exception
.
class
)
@ResponseBody
public
GlobalResponse
exception
(
Exception
ex
,
WebRequest
request
)
{
log
.
error
(
"系统出现异常, "
,
ex
);
return
new
GlobalResponse
(
QGException
.
wrap
(
ex
));
}
}
src/main/java/com/quantgroup/asset/distribution/exception/QGException.java
0 → 100644
View file @
f81fa805
/*
* Copyright 2014-present Miyou tech inc. All Rights Reserved.
*/
package
com
.
quantgroup
.
asset
.
distribution
.
exception
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
static
com
.
quantgroup
.
asset
.
distribution
.
exception
.
QGExceptionType
.
COMMON_SERVER_ERROR
;
import
static
com
.
quantgroup
.
asset
.
distribution
.
exception
.
QGExceptionType
.
COMMON_THIRD_PARTY_TIMEOUT
;
import
java.net.SocketTimeoutException
;
import
java.util.Arrays
;
public
class
QGException
extends
RuntimeException
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
QGException
.
class
);
public
QGExceptionType
qgExceptionType
;
public
boolean
isToastFormat
=
false
;
public
String
detail
;
public
QGException
(
String
detail
,
QGExceptionType
qgExceptionType
,
Object
...
args
)
{
super
(
detail
);
try
{
if
(
StringUtils
.
isNoneBlank
(
qgExceptionType
.
frontEndToastTemplate
))
{
isToastFormat
=
true
;
initException
(
String
.
format
(
qgExceptionType
.
frontEndToastTemplate
,
args
),
qgExceptionType
);
}
else
{
initException
(
qgExceptionType
);
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"format front end toast err, "
+
qgExceptionType
+
", args: "
+
Arrays
.
toString
(
args
),
e
);
initException
(
COMMON_SERVER_ERROR
);
}
}
public
QGException
(
QGExceptionType
qgExceptionType
,
Object
...
args
)
{
super
(
qgExceptionType
.
text
);
try
{
if
(
StringUtils
.
isNoneBlank
(
qgExceptionType
.
frontEndToastTemplate
))
{
isToastFormat
=
true
;
initException
(
String
.
format
(
qgExceptionType
.
frontEndToastTemplate
,
args
),
qgExceptionType
);
}
else
{
initException
(
qgExceptionType
);
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"format front end toast err, "
+
qgExceptionType
+
", args: "
+
Arrays
.
toString
(
args
),
e
);
initException
(
COMMON_SERVER_ERROR
);
}
}
public
QGException
(
String
detail
,
Throwable
cause
,
QGExceptionType
qgExceptionType
)
{
super
(
detail
,
cause
);
this
.
initException
(
detail
,
qgExceptionType
);
}
public
QGException
(
String
detail
,
QGExceptionType
qgExceptionType
)
{
super
(
detail
);
initException
(
detail
,
qgExceptionType
);
}
public
QGException
(
QGExceptionType
qgExceptionType
)
{
super
(
qgExceptionType
.
text
);
initException
(
qgExceptionType
);
}
public
QGException
(
Throwable
cause
,
QGExceptionType
qgExceptionType
,
Object
...
args
)
{
super
(
qgExceptionType
.
text
,
cause
);
try
{
if
(
StringUtils
.
isNoneBlank
(
qgExceptionType
.
frontEndToastTemplate
))
{
isToastFormat
=
true
;
initException
(
String
.
format
(
qgExceptionType
.
frontEndToastTemplate
,
args
),
qgExceptionType
);
}
else
{
initException
(
qgExceptionType
);
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"format front end toast err, "
+
qgExceptionType
+
", args: "
+
Arrays
.
toString
(
args
),
e
);
initException
(
COMMON_SERVER_ERROR
);
}
}
public
static
QGException
wrap
(
Throwable
e
)
{
return
wrap
(
e
,
COMMON_SERVER_ERROR
);
}
public
static
QGException
wrap
(
Throwable
e
,
QGExceptionType
exceptionType
)
{
if
(
e
instanceof
QGException
)
{
return
(
QGException
)
e
;
}
if
(
e
instanceof
SocketTimeoutException
)
return
new
QGException
(
COMMON_THIRD_PARTY_TIMEOUT
);
return
new
QGException
(
e
,
exceptionType
);
}
public
static
QGException
wrap
(
Throwable
e
,
QGExceptionType
exceptionType
,
Object
...
args
)
{
if
(
e
instanceof
QGException
)
{
return
(
QGException
)
e
;
}
if
(
e
instanceof
SocketTimeoutException
)
return
new
QGException
(
COMMON_THIRD_PARTY_TIMEOUT
);
return
new
QGException
(
e
,
exceptionType
,
args
);
}
private
void
initException
(
QGExceptionType
QGExceptionType
)
{
this
.
initException
(
QGExceptionType
.
text
,
QGExceptionType
);
}
private
void
initException
(
String
detail
,
QGExceptionType
QGExceptionType
)
{
this
.
qgExceptionType
=
QGExceptionType
;
this
.
detail
=
detail
;
}
}
\ No newline at end of file
src/main/java/com/quantgroup/asset/distribution/exception/QGExceptionType.java
0 → 100644
View file @
f81fa805
/*
* Copyright 2014-present Miyou tech inc. All Rights Reserved.
*/
package
com
.
quantgroup
.
asset
.
distribution
.
exception
;
import
lombok.extern.slf4j.Slf4j
;
/**
* 系统使用Exception来进行Error Code处理。如果LogType为Error,
* 代表这种Error不应该返回给客户端,应该统一打印出服务器端错误;
* 如果是WARNING的话,就将对应的Exception Text返回给客户端。
*/
@Slf4j
public
enum
QGExceptionType
{
COMMON_SERVER_ERROR
(
1001
,
"系统异常,请稍后再试"
),
COMMON_ILLEGAL_STATE
(
1002
,
"断言错误"
),
COMMON_ILLEGAL_PARAM_TOAST
(
1003
,
"参数异常"
,
"%s"
),
COMMON_AUTH_ERROR
(
1004
,
"系统异常,请稍后再试"
),
COMMON_ILLEGAL_PARAM
(
1010
,
"参数异常"
),
COMMON_THIRD_PARTY_TIMEOUT
(
1011
,
"第三方服务超时"
),
ASSET_IN_CODE_ERROR
(
2001
,
"资产入库code异常! uuid : %s, bizNo : %s, code : %s"
),
GET_DEC_ATTRIBUTE_VALUE_ERROR
(
2002
,
"获取决策资产属性值异常, uuid : %s, keys : %s"
);
public
int
code
;
public
String
text
;
public
String
frontEndToastTemplate
;
QGExceptionType
(
int
code
,
String
text
)
{
this
.
code
=
code
;
this
.
text
=
text
;
this
.
frontEndToastTemplate
=
text
;
}
QGExceptionType
(
int
code
,
String
text
,
String
frontEndToastTemplate
)
{
this
.
code
=
code
;
this
.
text
=
text
;
this
.
frontEndToastTemplate
=
frontEndToastTemplate
;
}
public
static
QGExceptionType
fromCode
(
int
code
)
{
for
(
QGExceptionType
exceptionType
:
QGExceptionType
.
values
())
{
if
(
exceptionType
.
code
==
code
)
{
return
exceptionType
;
}
}
return
null
;
}
@Override
public
String
toString
()
{
return
"error_code: "
+
code
+
", text: "
+
text
+
", frontEndToastTemplate: "
+
frontEndToastTemplate
;
}
}
src/main/java/com/quantgroup/asset/distribution/exception/QGPreconditions.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
exception
;
public
class
QGPreconditions
{
private
QGPreconditions
()
{
}
public
static
void
checkArgument
(
boolean
expression
)
{
checkArgument
(
expression
,
QGExceptionType
.
COMMON_ILLEGAL_PARAM
);
}
public
static
void
checkArgument
(
boolean
expression
,
Object
errorMessage
)
{
checkArgument
(
expression
,
QGExceptionType
.
COMMON_ILLEGAL_PARAM
,
errorMessage
);
}
public
static
void
checkArgument
(
boolean
expression
,
String
errorMessageTemplate
,
Object
...
errorMessageArgs
)
{
checkArgument
(
expression
,
QGExceptionType
.
COMMON_ILLEGAL_PARAM
,
errorMessageTemplate
,
errorMessageArgs
);
}
public
static
void
checkArgument
(
boolean
expression
,
QGExceptionType
exceptionType
)
{
if
(!
expression
)
{
throw
new
QGException
(
exceptionType
);
}
}
public
static
void
checkArgument
(
boolean
expression
,
QGExceptionType
exceptionType
,
Object
...
errorMessage
)
{
if
(!
expression
)
{
throw
new
QGException
(
exceptionType
,
errorMessage
);
}
}
}
src/main/java/com/quantgroup/asset/distribution/model/form/AssetForm.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
model
.
form
;
import
java.io.Serializable
;
import
com.quantgroup.asset.distribution.service.jpa.entity.Asset
;
import
lombok.Data
;
@Data
public
class
AssetForm
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
code
;
private
String
msg
;
private
String
uuid
;
private
String
bizChannel
;
private
String
bizNo
;
private
String
bizType
;
private
String
auditResult
;
private
String
amount
;
private
String
deadLine
;
private
String
exData
;
private
String
otherInformation
;
private
String
financeProducts
;
private
String
assetNo
;
public
Asset
transToAsset
()
{
Asset
asset
=
new
Asset
();
asset
.
setAssetNo
(
this
.
assetNo
);
asset
.
setBizNo
(
this
.
bizNo
);
asset
.
setUuid
(
this
.
uuid
);
asset
.
setBizChannel
(
this
.
bizChannel
);
asset
.
setFinanceProductType
(
"0"
.
equals
(
this
.
bizType
)
?
0
:
1
);
asset
.
setAuditResult
(
"true"
.
equals
(
auditResult
)
?
1
:
0
);
return
asset
;
}
}
src/main/java/com/quantgroup/asset/distribution/model/response/GlobalResponse.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
model
.
response
;
import
java.io.PrintWriter
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.lang3.StringUtils
;
import
com.alibaba.fastjson.JSON
;
import
com.quantgroup.asset.distribution.enums.response.GlobalResponseEnum
;
import
com.quantgroup.asset.distribution.exception.QGException
;
import
com.quantgroup.asset.distribution.exception.QGExceptionType
;
import
lombok.Data
;
@Data
public
class
GlobalResponse
{
private
static
final
String
JSON_CONTENT_TYPE
=
"application/json;charset=UTF-8"
;
private
int
code
;
private
String
businessCode
;
private
String
msg
;
private
Object
body
;
public
GlobalResponse
()
{
}
private
GlobalResponse
(
Object
object
)
{
body
=
object
;
code
=
0
;
msg
=
""
;
}
private
GlobalResponse
(
int
code
,
String
msg
,
Object
object
)
{
this
.
body
=
object
;
this
.
code
=
code
;
this
.
msg
=
msg
;
}
private
GlobalResponse
(
int
code
,
String
businessCode
,
String
msg
,
Object
object
)
{
this
.
code
=
code
;
this
.
businessCode
=
businessCode
;
this
.
msg
=
msg
;
this
.
body
=
object
;
}
public
static
GlobalResponse
success
()
{
return
new
GlobalResponse
(
0
,
"success"
,
null
);
}
public
static
GlobalResponse
success
(
Object
data
)
{
return
new
GlobalResponse
(
0
,
"success"
,
data
);
}
public
static
GlobalResponse
create
(
String
businessCode
,
String
msg
,
Object
object
)
{
return
new
GlobalResponse
(
0
,
businessCode
,
msg
,
object
);
}
public
static
GlobalResponse
create
(
GlobalResponseEnum
responseEnum
)
{
return
new
GlobalResponse
(
responseEnum
.
getCode
(),
responseEnum
.
getBusinessCode
(),
responseEnum
.
getMsg
(),
responseEnum
.
getBody
());
}
public
static
GlobalResponse
create
(
GlobalResponseEnum
responseEnum
,
Object
object
)
{
return
new
GlobalResponse
(
responseEnum
.
getCode
(),
responseEnum
.
getBusinessCode
(),
responseEnum
.
getMsg
(),
object
);
}
public
static
GlobalResponse
error
(
String
msg
)
{
return
new
GlobalResponse
(
1
,
msg
,
null
);
}
public
static
GlobalResponse
error
(
int
code
,
Object
data
)
{
return
new
GlobalResponse
(
code
,
null
,
data
);
}
public
GlobalResponse
(
Object
code
,
String
msg
)
{
if
(
code
instanceof
String
&&
StringUtils
.
isNumeric
(((
String
)
code
)))
{
this
.
code
=
Integer
.
parseInt
(((
String
)
code
));
}
else
{
this
.
code
=
QGExceptionType
.
COMMON_SERVER_ERROR
.
code
;
}
this
.
msg
=
msg
;
}
public
GlobalResponse
(
QGException
ex
)
{
code
=
ex
.
qgExceptionType
.
code
;
msg
=
StringUtils
.
isNotBlank
(
ex
.
detail
)
?
ex
.
detail
:
ex
.
qgExceptionType
.
text
;
}
public
static
GlobalResponse
generate
(
Object
o
)
{
return
new
GlobalResponse
(
o
);
}
public
void
writeJson
(
HttpServletResponse
response
)
throws
Exception
{
response
.
setContentType
(
JSON_CONTENT_TYPE
);
response
.
setCharacterEncoding
(
"UTF-8"
);
PrintWriter
out
=
response
.
getWriter
();
String
responeJosn
=
JSON
.
toJSONString
(
this
);
out
.
print
(
responeJosn
);
out
.
flush
();
out
.
close
();
}
}
src/main/java/com/quantgroup/asset/distribution/service/IAssetAttributeService.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
;
import
java.util.List
;
import
java.util.Map
;
import
com.quantgroup.asset.distribution.model.form.AssetForm
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AssetAttributeExtendConfig
;
/**
* 资产属性Service
* @author liwenbin
*
*/
public
interface
IAssetAttributeService
{
// public List<AssetAttributeExtendConfig> getAllExtendCon
/**
* 获取所有资产属性值
* @param assetAttributeExtendConfigList
* @return
*/
public
Map
<
String
,
Object
>
getAllAssetAttributeValue
(
List
<
AssetAttributeExtendConfig
>
assetAttributeExtendConfigList
,
AssetForm
assetForm
);
}
src/main/java/com/quantgroup/asset/distribution/service/IAssetService.java
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
;
package
com
.
quantgroup
.
asset
.
distribution
.
service
;
public
class
IAssetService
{
import
com.quantgroup.asset.distribution.model.form.AssetForm
;
import
com.quantgroup.asset.distribution.model.response.GlobalResponse
;
/**
* 资产Service
* @author liwenbin
*
*/
public
interface
IAssetService
{
/**
* 资产入库
* @param assetForm
* @return
*/
public
void
assetsIn
(
AssetForm
assetForm
);
/**
* 检查资产内容
* @param assetForm
* @return
*/
public
GlobalResponse
checkAssetForm
(
AssetForm
assetForm
);
}
}
src/main/java/com/quantgroup/asset/distribution/service/IAuthorityService.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AuthorityConfig
;
/**
* 权限认证Service
* @author liwenbin
*
*/
public
interface
IAuthorityService
{
/**
* 根据auth_key和auth_pass查找权限
* @param auth_key
* @param auth_pass
* @return
*/
public
AuthorityConfig
findByAuthKeyAndAuthPass
(
String
authKey
,
String
authPass
);
/**
* 根据authKey和authPass清楚缓存
* @param authKey
* @param authPass
*/
public
void
clearCacheByAuthKeyAndAuthPass
(
String
authKey
,
String
authPass
);
}
src/main/java/com/quantgroup/asset/distribution/service/httpclient/IHttpService.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
httpclient
;
import
java.util.Map
;
public
interface
IHttpService
{
/**
* Http Get
*
* @param uri
* @return
*/
String
get
(
String
uri
);
String
get
(
String
uri
,
int
timeOut
);
<
T
>
T
get
(
String
uri
,
Class
<
T
>
classOfT
);
/**
* Http Get
*
* @param uri
* @param parameters
* @return
*/
String
get
(
String
uri
,
Map
<
String
,
String
>
parameters
);
/**
* Http Get
*
* @param uri
* @param headers
* @param parameters
* @return
*/
String
get
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
);
/**
* Http Post
*
* @param uri
* @return
*/
String
post
(
String
uri
);
/**
* Http Post
*
* @param uri
* @param parameters
* @return
*/
String
post
(
String
uri
,
Map
<
String
,
String
>
parameters
);
/**
* Http Post
*
* @param uri
* @param headers
* @param parameters
* @return
*/
String
post
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
);
public
String
post
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
,
boolean
isLog
);
public
String
postJson
(
String
uri
,
Map
<
String
,
String
>
headers
,
String
jsonParams
)
;
public
String
postObj
(
String
uri
,
Map
<
String
,
Object
>
parameters
);
public
String
postObj
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
Object
>
parameters
)
;
/**
* 不需要返回结果的请求
* @param url
* @param parameters
* @return
*/
public
int
postNoResponse
(
String
url
,
Map
<
String
,
String
>
parameters
);
public
Map
<
String
,
String
>
postHasResponse
(
String
url
,
Map
<
String
,
String
>
parameters
);
public
String
post
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
,
boolean
isLog
,
int
timeOut
);
}
src/main/java/com/quantgroup/asset/distribution/service/httpclient/impl/HttpServiceImpl.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
httpclient
.
impl
;
import
com.google.common.base.Predicates
;
import
com.google.common.collect.Maps
;
import
com.google.gson.Gson
;
import
com.quantgroup.asset.distribution.service.httpclient.IHttpService
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang3.CharEncoding
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.client.entity.UrlEncodedFormEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.client.methods.RequestBuilder
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.message.BasicNameValuePair
;
import
org.apache.http.util.EntityUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Service
;
import
java.io.UnsupportedEncodingException
;
import
java.util.*
;
/**
*
*
* @author renfeng
* @date: 2017年5月8日 下午12:24:15
* @version v1.0
*/
@Service
public
class
HttpServiceImpl
implements
IHttpService
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
HttpServiceImpl
.
class
);
private
static
final
int
TIME_OUT_60
=
60
*
1000
;
private
static
final
int
TIME_OUT_20
=
30
*
1000
;
@Autowired
@Qualifier
(
"httpClient"
)
private
CloseableHttpClient
httpClient
;
@Override
public
String
get
(
String
uri
)
{
return
get
(
uri
,
null
,
null
);
}
@Override
public
String
get
(
String
uri
,
int
timeOut
)
{
return
doHttp
(
RequestBuilder
.
get
(),
uri
,
null
,
null
,
true
,
timeOut
);
}
@Override
public
<
T
>
T
get
(
String
uri
,
Class
<
T
>
classOfT
)
{
String
s
=
get
(
uri
,
null
,
null
);
return
new
Gson
().
fromJson
(
s
,
classOfT
);
}
@Override
public
String
get
(
String
uri
,
Map
<
String
,
String
>
parameters
)
{
return
get
(
uri
,
null
,
parameters
);
}
@Override
public
String
get
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
)
{
return
doHttp
(
RequestBuilder
.
get
(),
uri
,
headers
,
parameters
,
true
,
TIME_OUT_60
);
}
@Override
public
String
post
(
String
uri
)
{
return
post
(
uri
,
null
,
null
);
}
@Override
public
String
post
(
String
uri
,
Map
<
String
,
String
>
parameters
)
{
return
post
(
uri
,
null
,
parameters
);
}
@Override
public
String
post
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
,
boolean
isLog
)
{
return
doHttp
(
RequestBuilder
.
post
(),
uri
,
headers
,
parameters
,
isLog
,
TIME_OUT_60
);
}
@Override
public
String
post
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
,
boolean
isLog
,
int
timeOut
)
{
return
doHttp
(
RequestBuilder
.
post
(),
uri
,
headers
,
parameters
,
isLog
,
timeOut
);
}
@Override
public
String
post
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
)
{
return
doHttp
(
RequestBuilder
.
post
(),
uri
,
headers
,
parameters
,
true
,
TIME_OUT_60
);
}
@Override
public
String
postJson
(
String
uri
,
Map
<
String
,
String
>
headers
,
String
jsonParams
)
{
return
doJsonHttp
(
RequestBuilder
.
post
(),
uri
,
headers
,
jsonParams
);
}
@Override
public
String
postObj
(
String
uri
,
Map
<
String
,
Object
>
parameters
)
{
return
postObj
(
uri
,
null
,
parameters
);
}
@Override
public
String
postObj
(
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
Object
>
parameters
)
{
return
doObjectHttp
(
RequestBuilder
.
post
(),
uri
,
headers
,
parameters
);
}
@Override
public
int
postNoResponse
(
String
url
,
Map
<
String
,
String
>
parameters
){
return
doHttpNoResponse
(
RequestBuilder
.
post
(),
url
,
null
,
parameters
);
}
@Override
public
Map
<
String
,
String
>
postHasResponse
(
String
url
,
Map
<
String
,
String
>
parameters
){
return
doHttpHasResponse
(
RequestBuilder
.
post
(),
url
,
null
,
parameters
);
}
private
int
doHttpNoResponse
(
RequestBuilder
requestBuilder
,
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
){
HttpEntity
httpEntity
=
null
;
CloseableHttpResponse
httpResponse
=
null
;
try
{
requestBuilder
.
setUri
(
uri
);
this
.
setConfig
(
requestBuilder
,
TIME_OUT_20
);
this
.
setHeader
(
requestBuilder
,
headers
);
this
.
setParameter
(
requestBuilder
,
parameters
);
httpResponse
=
httpClient
.
execute
(
requestBuilder
.
build
());
int
statusCode
=
httpResponse
.
getStatusLine
().
getStatusCode
();
if
(
statusCode
==
200
){
httpEntity
=
httpResponse
.
getEntity
();
}
else
{
LOGGER
.
info
(
"HTTP请求失败, uri:{},parameters:{},响应码:{}"
,
uri
,
parameters
,
statusCode
);
}
return
statusCode
;
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"HTTP请求异常, uri:{},parameters:{}"
,
uri
,
parameters
);
}
finally
{
EntityUtils
.
consumeQuietly
(
httpEntity
);
IOUtils
.
closeQuietly
(
httpResponse
);
}
return
808
;
}
private
Map
<
String
,
String
>
doHttpHasResponse
(
RequestBuilder
requestBuilder
,
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
){
Map
<
String
,
String
>
responseMap
=
new
HashMap
<>();
HttpEntity
httpEntity
=
null
;
CloseableHttpResponse
httpResponse
=
null
;
try
{
requestBuilder
.
setUri
(
uri
);
this
.
setConfig
(
requestBuilder
,
TIME_OUT_20
);
this
.
setHeader
(
requestBuilder
,
headers
);
this
.
setParameter
(
requestBuilder
,
parameters
);
httpResponse
=
httpClient
.
execute
(
requestBuilder
.
build
());
int
statusCode
=
httpResponse
.
getStatusLine
().
getStatusCode
();
if
(
statusCode
==
200
){
httpEntity
=
httpResponse
.
getEntity
();
responseMap
.
put
(
"response"
,
EntityUtils
.
toString
(
httpEntity
,
"UTF-8"
));
}
else
{
LOGGER
.
info
(
"HTTP请求失败, uri:{},parameters:{},响应码:{}"
,
uri
,
parameters
,
statusCode
);
}
responseMap
.
put
(
"statusCode"
,
String
.
valueOf
(
statusCode
));
return
responseMap
;
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"HTTP请求异常, uri:{},parameters:{}"
,
uri
,
parameters
);
}
finally
{
EntityUtils
.
consumeQuietly
(
httpEntity
);
IOUtils
.
closeQuietly
(
httpResponse
);
}
return
responseMap
;
}
/**
* Send Http
*
* @param requestBuilder
* @param uri
* @param headers
* @param parameters
* @return
*/
public
String
doHttp
(
RequestBuilder
requestBuilder
,
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
parameters
,
boolean
isLog
,
int
timeOut
)
{
String
method
=
requestBuilder
.
getMethod
();
HttpEntity
httpEntity
=
null
;
CloseableHttpResponse
httpResponse
=
null
;
try
{
requestBuilder
.
setUri
(
uri
);
this
.
setConfig
(
requestBuilder
,
timeOut
);
this
.
setHeader
(
requestBuilder
,
headers
);
this
.
setParameter
(
requestBuilder
,
parameters
);
httpResponse
=
httpClient
.
execute
(
requestBuilder
.
build
());
int
statusCode
=
httpResponse
.
getStatusLine
().
getStatusCode
();
String
response
=
null
;
if
(
statusCode
==
200
){
httpEntity
=
httpResponse
.
getEntity
();
response
=
EntityUtils
.
toString
(
httpEntity
,
"UTF-8"
);
}
if
(
isLog
)
LOGGER
.
info
(
"{}, uri:{},parameters:{},response:{},statusCode:{}"
,
method
,
uri
,
parameters
,
response
,
statusCode
);
return
response
;
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"{}, uri:{}, parameters:{}"
,
method
,
uri
,
parameters
,
e
);
return
null
;
}
finally
{
EntityUtils
.
consumeQuietly
(
httpEntity
);
IOUtils
.
closeQuietly
(
httpResponse
);
}
}
/**
* Send Http
*
* @param requestBuilder
* @param uri
* @param headers
* @param parameters
* @return
*/
public
String
doObjectHttp
(
RequestBuilder
requestBuilder
,
String
uri
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
Object
>
parameters
)
{
String
method
=
requestBuilder
.
getMethod
();
HttpEntity
httpEntity
=
null
;
CloseableHttpResponse
httpResponse
=
null
;
try
{
requestBuilder
.
setUri
(
uri
);
this
.
setConfig
(
requestBuilder
,
TIME_OUT_60
);
this
.
setHeader
(
requestBuilder
,
headers
);
this
.
setParameter2
(
requestBuilder
,
parameters
);
httpResponse
=
httpClient
.
execute
(
requestBuilder
.
build
());
int
statusCode
=
httpResponse
.
getStatusLine
().
getStatusCode
();
String
response
=
null
;
if
(
statusCode
==
200
){
httpEntity
=
httpResponse
.
getEntity
();
response
=
EntityUtils
.
toString
(
httpEntity
,
"UTF-8"
);
}
LOGGER
.
info
(
"{}, uri:{}, parameters:{},response:{}"
,
method
,
uri
,
parameters
,
response
);
return
response
;
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"{}, uri:{}, parameters:{}"
,
method
,
uri
,
parameters
,
e
);
return
null
;
}
finally
{
EntityUtils
.
consumeQuietly
(
httpEntity
);
IOUtils
.
closeQuietly
(
httpResponse
);
}
}
/**
* Send Http
*
* @param requestBuilder
* @param uri
* @param headers
* @param jsonParams
* @return
*/
public
String
doJsonHttp
(
RequestBuilder
requestBuilder
,
String
uri
,
Map
<
String
,
String
>
headers
,
String
jsonParams
)
{
String
method
=
requestBuilder
.
getMethod
();
HttpEntity
httpEntity
=
null
;
CloseableHttpResponse
httpResponse
=
null
;
try
{
requestBuilder
.
setUri
(
uri
);
this
.
setConfig
(
requestBuilder
,
TIME_OUT_60
);
this
.
setHeader
(
requestBuilder
,
headers
);
this
.
setParameter
(
requestBuilder
,
jsonParams
);
httpResponse
=
httpClient
.
execute
(
requestBuilder
.
build
());
httpEntity
=
httpResponse
.
getEntity
();
String
response
=
EntityUtils
.
toString
(
httpEntity
,
CharEncoding
.
UTF_8
);
LOGGER
.
info
(
"{}, uri:{},parameters:{},response:{},statusCode:{}"
,
method
,
uri
,
jsonParams
,
response
,
httpResponse
.
getStatusLine
().
getStatusCode
());
return
response
;
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"{}, uri:{}, "
,
method
,
uri
,
e
);
return
null
;
}
finally
{
EntityUtils
.
consumeQuietly
(
httpEntity
);
IOUtils
.
closeQuietly
(
httpResponse
);
}
}
/**
* Set Parameter
*
* @param requestBuilder
* @param parameters
*/
private
void
setParameter
(
RequestBuilder
requestBuilder
,
Map
<
String
,
String
>
parameters
)
{
if
(
MapUtils
.
isNotEmpty
(
parameters
))
{
parameters
=
Maps
.
filterValues
(
parameters
,
Predicates
.
notNull
());
Set
<
Map
.
Entry
<
String
,
String
>>
entrys
=
parameters
.
entrySet
();
/************** Get 请求 **************/
if
(
requestBuilder
.
getMethod
().
equalsIgnoreCase
(
HttpGet
.
METHOD_NAME
))
{
for
(
Map
.
Entry
<
String
,
String
>
entry
:
entrys
)
{
requestBuilder
.
addParameter
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
/************** Post 请求 **************/
else
{
List
<
NameValuePair
>
valuePairs
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
String
>
entry
:
entrys
)
{
valuePairs
.
add
(
new
BasicNameValuePair
(
entry
.
getKey
(),
entry
.
getValue
()));
}
try
{
requestBuilder
.
setEntity
(
new
UrlEncodedFormEntity
(
valuePairs
,
"UTF-8"
));
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
}
}
}
/**
* Set Parameter
*
* @param requestBuilder
* @param parameters Map<String, Object>
*/
private
void
setParameter2
(
RequestBuilder
requestBuilder
,
Map
<
String
,
Object
>
parameters
)
{
if
(
MapUtils
.
isNotEmpty
(
parameters
))
{
parameters
=
Maps
.
filterValues
(
parameters
,
Predicates
.
notNull
());
Set
<
Map
.
Entry
<
String
,
Object
>>
entrys
=
parameters
.
entrySet
();
/************** Get 请求 **************/
if
(
requestBuilder
.
getMethod
().
equalsIgnoreCase
(
HttpGet
.
METHOD_NAME
))
{
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
entrys
)
{
requestBuilder
.
addParameter
(
String
.
valueOf
(
entry
.
getKey
()),
String
.
valueOf
(
entry
.
getValue
()));
}
}
/************** Post 请求 **************/
else
{
List
<
NameValuePair
>
valuePairs
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
entrys
)
{
valuePairs
.
add
(
new
BasicNameValuePair
(
String
.
valueOf
(
entry
.
getKey
()),
String
.
valueOf
(
entry
.
getValue
())));
}
try
{
requestBuilder
.
setEntity
(
new
UrlEncodedFormEntity
(
valuePairs
,
"UTF-8"
));
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
}
}
}
/**
* Set Parameter
*
* @param requestBuilder
* @param jsonParams
*/
private
void
setParameter
(
RequestBuilder
requestBuilder
,
String
jsonParams
)
{
if
(
StringUtils
.
isNotEmpty
(
jsonParams
))
{
StringEntity
stringEntity
=
new
StringEntity
(
jsonParams
,
CharEncoding
.
UTF_8
);
stringEntity
.
setContentType
(
"application/json; charset=utf-8"
);
requestBuilder
.
setEntity
(
stringEntity
);
}
}
/**
* Set Header
*
* @param requestBuilder
* @param headers
*/
private
void
setHeader
(
RequestBuilder
requestBuilder
,
Map
<
String
,
String
>
headers
)
{
requestBuilder
.
setHeader
(
"User-Agent"
,
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"
)
.
setHeader
(
"Accept"
,
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
)
.
setHeader
(
"Accept-Language"
,
"zh-CN,zh;q=0.8,en;q=0.6"
)
.
setHeader
(
"Connection"
,
"keep-alive"
);
if
(
MapUtils
.
isNotEmpty
(
headers
))
{
headers
=
Maps
.
filterValues
(
headers
,
Predicates
.
notNull
());
Set
<
Map
.
Entry
<
String
,
String
>>
entrys
=
headers
.
entrySet
();
for
(
Map
.
Entry
<
String
,
String
>
entry
:
entrys
)
{
requestBuilder
.
addHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
}
/**
* Request config
*
* @return
*/
private
void
setConfig
(
RequestBuilder
requestBuilder
,
int
timeOut
)
{
RequestConfig
config
=
RequestConfig
.
custom
()
.
setConnectTimeout
(
timeOut
)
.
setSocketTimeout
(
timeOut
)
.
setConnectionRequestTimeout
(
timeOut
)
.
build
();
requestBuilder
.
setConfig
(
config
);
}
}
src/main/java/com/quantgroup/asset/distribution/service/impl/AssetAttributeServiceImpl.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
impl
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.quantgroup.asset.distribution.exception.QGExceptionType
;
import
com.quantgroup.asset.distribution.exception.QGPreconditions
;
import
com.quantgroup.asset.distribution.model.form.AssetForm
;
import
com.quantgroup.asset.distribution.service.IAssetAttributeService
;
import
com.quantgroup.asset.distribution.service.httpclient.IHttpService
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AssetAttributeExtendConfig
;
import
lombok.extern.slf4j.Slf4j
;
/**
* 资产扩展属性Service
*
* @author liwenbin
*
*/
@Slf4j
@Service
public
class
AssetAttributeServiceImpl
implements
IAssetAttributeService
{
@Autowired
private
IHttpService
httpService
;
@Value
(
"${rule.engine.url}"
)
private
String
ruleEngineURL
;
/**
* 获取所有资产扩展属性value
*/
@Override
public
Map
<
String
,
Object
>
getAllAssetAttributeValue
(
List
<
AssetAttributeExtendConfig
>
assetAttributeExtendConfigList
,
AssetForm
assetForm
)
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
// 决策特征Set
Set
<
String
>
decKeys
=
new
HashSet
<>();
// 默认增加一个用户类型
decKeys
.
add
(
"user_loan_type_latest"
);
if
(
assetAttributeExtendConfigList
!=
null
&&
assetAttributeExtendConfigList
.
size
()
>
0
)
{
for
(
AssetAttributeExtendConfig
config
:
assetAttributeExtendConfigList
)
{
if
(
config
.
getAssetAttributeType
()
==
1
)
{
// 模型分
decKeys
.
add
(
config
.
getAssetAttributeCode
());
}
}
}
// 去请求决策特征
Map
<
String
,
Object
>
decAttributeValue
=
getDecAttributeValue
(
decKeys
,
assetForm
);
data
.
putAll
(
decAttributeValue
);
return
data
;
}
/**
* 获取所有决策特征属性值
* @param decKeys
* @return
*/
public
Map
<
String
,
Object
>
getDecAttributeValue
(
Set
<
String
>
decKeys
,
AssetForm
assetForm
)
{
if
(
CollectionUtils
.
isEmpty
(
decKeys
))
{
return
MapUtils
.
EMPTY_MAP
;
}
String
result
=
httpService
.
post
(
ruleEngineURL
+
"/feature/get"
,
new
HashMap
<
String
,
String
>(){{
put
(
"uuid"
,
assetForm
.
getUuid
());
put
(
"bizChannel"
,
assetForm
.
getBizChannel
());
put
(
"bizNo"
,
assetForm
.
getBizNo
());
put
(
"bizType"
,
assetForm
.
getBizType
());
put
(
"keys"
,
StringUtils
.
join
(
decKeys
,
","
));
}});
JSONObject
resultJSON
=
null
;
QGPreconditions
.
checkArgument
(
StringUtils
.
isNotEmpty
(
result
)
&&
(
resultJSON
=
JSON
.
parseObject
(
result
)).
getInteger
(
"code"
)
==
0
,
QGExceptionType
.
GET_DEC_ATTRIBUTE_VALUE_ERROR
,
assetForm
.
getUuid
(),
JSON
.
toJSONString
(
decKeys
));
Map
<
String
,
Object
>
data
=
resultJSON
.
getJSONObject
(
"body"
);
log
.
info
(
"决策特征属性获取完成, uuid : {}, bizChannel : {}, bizNo : {}, bizType : {}, data : {}"
,
assetForm
.
getUuid
(),
assetForm
.
getBizChannel
(),
assetForm
.
getBizNo
(),
assetForm
.
getBizType
(),
JSON
.
toJSONString
(
data
));
return
data
;
}
}
src/main/java/com/quantgroup/asset/distribution/service/impl/AssetServiceImpl.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
impl
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.concurrent.TimeUnit
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
com.quantgroup.asset.distribution.exception.QGException
;
import
com.quantgroup.asset.distribution.exception.QGExceptionType
;
import
com.quantgroup.asset.distribution.exception.QGPreconditions
;
import
com.quantgroup.asset.distribution.model.form.AssetForm
;
import
com.quantgroup.asset.distribution.model.response.GlobalResponse
;
import
com.quantgroup.asset.distribution.service.IAssetService
;
import
com.quantgroup.asset.distribution.service.httpclient.IHttpService
;
import
com.quantgroup.asset.distribution.service.jpa.entity.Asset
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AssetAttributeExtendConfig
;
import
com.quantgroup.asset.distribution.service.jpa.repository.IAssetAttributeExtendConfigRepository
;
import
com.quantgroup.asset.distribution.util.UUIDUtil
;
/**
* 资产Service
* @author liwenbin
*
*/
@Service
public
class
AssetServiceImpl
implements
IAssetService
{
@Autowired
private
IAssetAttributeExtendConfigRepository
assetAttributeExtendConfigRepository
;
@Async
@Override
public
void
assetsIn
(
AssetForm
assetForm
)
{
// try {
// QGPreconditions.checkArgument("0".equals(assetForm.getCode()), QGExceptionType.ASSET_IN_CODE_ERROR, assetForm.getUuid(), assetForm.getBizNo(), assetForm.getCode());
// Asset asset = assetForm.transToAsset();
// // 获取所有资产扩展属性配置
// List<AssetAttributeExtendConfig> assetAttributeExtendConfigList = assetAttributeExtendConfigRepository.findByEnableIsTrue();
//
// return null;
// } catch (QGException qe) {
// log.error("风控审核出现错误:{},审核次数 : {} ,uuid : {} ,bizChannel:{},productId:{},bizNo : {},auditNo:{} ",
// qe.qgExceptionType.code + "->" + qe.detail, bizAuditForm.getRepeatCount(),
// bizAuditForm.getUuid(), bizAuditForm.getBizChannel(), bizAuditForm.getProductId(),
// bizAuditForm.getBizNo(), bizAuditForm.getAuditNo());
// // 审核失败放队列 来日继续审核
// iRedisService.rightPushEx("AUDIT.ERROR.USER.9981_01",
// bizAuditForm.setRepeatCount(bizAuditForm.getRepeatCount() + 1)
// .setFailReason(qe.qgExceptionType.code + "->" + qe.detail)
// .setSpaceTime(System.currentTimeMillis()),
// 1, TimeUnit.DAYS);
// // 报警机制
// if (qe.qgExceptionType.code != 2007 || bizAuditForm.getRepeatCount() > 1) {//规则数据为空 一次不报警 因为太多了
// iMonitorAlarmService.alarm("风控审核出现错误",
// "审核次数 : " + bizAuditForm.getRepeatCount() + " ,bizChannel : " + bizAuditForm.getBizChannel()
// + " , productId : " + bizAuditForm.getProductId() + " , bizNo : "
// + bizAuditForm.getBizNo() + " , uuid : " + bizAuditForm.getUuid() + " , 错误信息 : "
// + qe.qgExceptionType.code + "->" + qe.detail,
// "Warn");
// }
// return;
// } catch (Exception ex) {
// log.error("风控审核出现异常,审核次数 : {} ,uuid: {} ,bizChannel : {} ,productId:{},bizNo : {},auditNo:{} ",
// bizAuditForm.getRepeatCount(), bizAuditForm.getUuid(), bizAuditForm.getBizChannel(),
// bizAuditForm.getProductId(), bizAuditForm.getBizNo(), bizAuditForm.getAuditNo(), ex);
// // 审核失败放队列 来日继续审核
// iRedisService.rightPushEx("AUDIT.ERROR.USER.9981_01",
// bizAuditForm.setRepeatCount(bizAuditForm.getRepeatCount() + 1).setFailReason("未知异常")
// .setSpaceTime(System.currentTimeMillis()),
// 1, TimeUnit.DAYS);
// // 报警机制
// iMonitorAlarmService.alarm("风控审核出现异常",
// "审核次数 : " + bizAuditForm.getRepeatCount() + " , bizChannel : " + bizAuditForm.getBizChannel()
// + " , productId : " + bizAuditForm.getProductId() + " , bizNo : "
// + bizAuditForm.getBizNo() + " , uuid : " + bizAuditForm.getUuid() + " , 错误信息 : 未知错误",
// "Warn");
// return;
// }
}
@Override
public
GlobalResponse
checkAssetForm
(
AssetForm
assetForm
)
{
return
null
;
}
}
src/main/java/com/quantgroup/asset/distribution/service/impl/AuthorityServiceImpl.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
impl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.data.redis.cache.RedisCache
;
import
org.springframework.stereotype.Service
;
import
com.quantgroup.asset.distribution.service.IAuthorityService
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AuthorityConfig
;
import
com.quantgroup.asset.distribution.service.jpa.repository.IAuthorityRepository
;
import
lombok.extern.slf4j.Slf4j
;
/**
* 权限配置Service
* @author liwenbin
*
*/
@Slf4j
@Service
public
class
AuthorityServiceImpl
implements
IAuthorityService
{
@Autowired
private
IAuthorityRepository
authorityRepository
;
@Override
@Cacheable
(
value
=
"cacheManager"
,
key
=
"#authKey+'_'+#authPass+'_1021ASSET'"
)
public
AuthorityConfig
findByAuthKeyAndAuthPass
(
String
authKey
,
String
authPass
)
{
return
authorityRepository
.
findByAuthKeyAndAuthPassAndEnableIsTrue
(
authKey
,
authPass
);
}
@Override
@CacheEvict
(
value
=
"cacheManager"
,
key
=
"#authKey+'_'+#authPass+'_1021ASSET'"
)
public
void
clearCacheByAuthKeyAndAuthPass
(
String
authKey
,
String
authPass
)
{
log
.
info
(
"权限配置清楚缓存成功, authKey = {}, authPass = {}"
,
authKey
,
authPass
);
}
}
src/main/java/com/quantgroup/asset/distribution/service/jpa/entity/Asset.java
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
jpa
.
entity
;
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
jpa
.
entity
;
import
java.sql.Timestamp
;
import
javax.persistence.Column
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
javax.persistence.Id
;
import
javax.persistence.PrePersist
;
import
javax.persistence.PreUpdate
;
import
javax.persistence.Table
;
import
javax.persistence.Table
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
@@ -17,12 +22,56 @@ import lombok.Setter;
...
@@ -17,12 +22,56 @@ import lombok.Setter;
*/
*/
@Table
(
name
=
"asset"
)
@Table
(
name
=
"asset"
)
@Entity
@Entity
@Getter
@Data
@Setter
public
class
Asset
{
public
class
Asset
{
@Id
@Id
@Column
(
name
=
"id"
)
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
private
Long
id
;
@Column
(
name
=
"asset_no"
)
private
String
assetNo
;
@Column
(
name
=
"biz_no"
)
private
String
bizNo
;
@Column
(
name
=
"uuid"
)
private
String
uuid
;
@Column
(
name
=
"user_loan_type"
)
private
Integer
userLoanType
;
@Column
(
name
=
"biz_channel"
)
private
String
bizChannel
;
@Column
(
name
=
"finance_product_type"
)
private
Integer
financeProductType
;
@Column
(
name
=
"effective_time"
)
private
Timestamp
effectiveTime
;
@Column
(
name
=
"audit_result"
)
private
Integer
auditResult
;
@Column
(
name
=
"enable"
)
private
Integer
enable
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
;
@PrePersist
public
void
prePersist
()
{
Timestamp
timestamp
=
new
Timestamp
(
System
.
currentTimeMillis
());
createdAt
=
timestamp
;
updatedAt
=
timestamp
;
}
@PreUpdate
public
void
preUpdate
()
{
updatedAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
}
}
}
src/main/java/com/quantgroup/asset/distribution/service/jpa/entity/AssetAttributeExtend.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
jpa
.
entity
;
import
java.sql.Timestamp
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
javax.persistence.PrePersist
;
import
javax.persistence.PreUpdate
;
import
javax.persistence.Table
;
import
lombok.Data
;
/**
* 资产属性扩展表
* @author liwenbin
*
*/
@Table
(
name
=
"asset_atrribute_extend"
)
@Entity
@Data
public
class
AssetAttributeExtend
{
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
@Column
(
name
=
"asset_no"
)
private
String
assetNo
;
@Column
(
name
=
"asset_attribute_name"
)
private
String
assetAttributeName
;
@Column
(
name
=
"asset_attribute_code"
)
private
String
assetAttributeCode
;
@Column
(
name
=
"asset_attribute_type"
)
private
Integer
assetAttributeType
;
@Column
(
name
=
"asset_attribute_value"
)
private
String
assetAttributeValue
;
@Column
(
name
=
"enable"
)
private
Boolean
enable
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
;
@PrePersist
public
void
prePersist
()
{
Timestamp
timestamp
=
new
Timestamp
(
System
.
currentTimeMillis
());
createdAt
=
timestamp
;
updatedAt
=
timestamp
;
}
@PreUpdate
public
void
preUpdate
()
{
updatedAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
}
}
src/main/java/com/quantgroup/asset/distribution/service/jpa/entity/AssetAttributeExtendConfig.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
jpa
.
entity
;
import
java.sql.Timestamp
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
javax.persistence.PrePersist
;
import
javax.persistence.PreUpdate
;
import
javax.persistence.Table
;
import
lombok.Data
;
/**
* 资产属性扩展配置表
* @author liwenbin
*
*/
@Table
(
name
=
"asset_atrribute_extend_config"
)
@Entity
@Data
public
class
AssetAttributeExtendConfig
{
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Integer
id
;
@Column
(
name
=
"asset_attribute_name"
)
private
String
assetAttributeName
;
@Column
(
name
=
"asset_attribute_code"
)
private
String
assetAttributeCode
;
@Column
(
name
=
"asset_attribute_type"
)
private
Integer
assetAttributeType
;
@Column
(
name
=
"asset_attribute_value_type"
)
private
String
assetAttributeValueType
;
@Column
(
name
=
"is_page_config"
)
private
Integer
isPageConfig
;
@Column
(
name
=
"enable"
)
private
Boolean
enable
;
@Column
(
name
=
"created_by"
)
private
String
createdBy
;
@Column
(
name
=
"updated_by"
)
private
String
updatedBy
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
;
@PrePersist
public
void
prePersist
()
{
Timestamp
timestamp
=
new
Timestamp
(
System
.
currentTimeMillis
());
createdAt
=
timestamp
;
updatedAt
=
timestamp
;
}
@PreUpdate
public
void
preUpdate
()
{
updatedAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
}
}
src/main/java/com/quantgroup/asset/distribution/service/jpa/entity/AuthorityConfig.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
jpa
.
entity
;
import
java.sql.Timestamp
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
javax.persistence.PrePersist
;
import
javax.persistence.PreUpdate
;
import
javax.persistence.Table
;
import
lombok.Data
;
/**
* 权限认证表
* @author liwenbin
*
*/
@Table
(
name
=
"authority_config"
)
@Entity
@Data
public
class
AuthorityConfig
{
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Integer
id
;
@Column
(
name
=
"auth_key"
)
private
String
authKey
;
@Column
(
name
=
"auth_pass"
)
private
String
authPass
;
@Column
(
name
=
"auth_name"
)
private
String
authName
;
@Column
(
name
=
"enable"
)
private
Boolean
enable
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
;
@PrePersist
public
void
prePersist
()
{
Timestamp
timestamp
=
new
Timestamp
(
System
.
currentTimeMillis
());
createdAt
=
timestamp
;
updatedAt
=
timestamp
;
}
@PreUpdate
public
void
preUpdate
()
{
updatedAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
}
}
src/main/java/com/quantgroup/asset/distribution/service/jpa/repository/IAssetAttributeExtendConfigRepository.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
jpa
.
repository
;
import
java.util.List
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AssetAttributeExtendConfig
;
public
interface
IAssetAttributeExtendConfigRepository
extends
JpaRepository
<
AssetAttributeExtendConfig
,
Integer
>{
public
List
<
AssetAttributeExtendConfig
>
findByEnableIsTrue
();
}
src/main/java/com/quantgroup/asset/distribution/service/jpa/repository/IAssetAttributeExtendRepository.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
jpa
.
repository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AssetAttributeExtend
;
public
interface
IAssetAttributeExtendRepository
extends
JpaRepository
<
AssetAttributeExtend
,
Long
>{
}
src/main/java/com/quantgroup/asset/distribution/service/jpa/repository/IAuthorityRepository.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
service
.
jpa
.
repository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AuthorityConfig
;
/**
* 权限认证Repository
* @author liwenbin
*
*/
public
interface
IAuthorityRepository
extends
JpaRepository
<
AuthorityConfig
,
Integer
>{
/**
* 根据authKey和authPass查到配置
* @param authKey
* @param authPass
* @return
*/
public
AuthorityConfig
findByAuthKeyAndAuthPassAndEnableIsTrue
(
String
authKey
,
String
authPass
);
}
src/main/java/com/quantgroup/asset/distribution/util/UUIDUtil.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
util
;
import
java.util.UUID
;
/**
* UUID工具类
* @author liwenbin
*
*/
public
class
UUIDUtil
{
private
static
final
String
ASSET_STR
=
"ASET"
;
/**
* 获取资产编号
* @return
*/
public
static
String
getAssetNo
()
{
return
ASSET_STR
+
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
);
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
getAssetNo
());
}
}
src/test/java/com/quantgroup/asset/distribution/authority/AuthorityTest.java
0 → 100644
View file @
f81fa805
package
com
.
quantgroup
.
asset
.
distribution
.
authority
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
com.quantgroup.asset.distribution.AssetDistributionBootstrap
;
import
com.quantgroup.asset.distribution.service.jpa.entity.AuthorityConfig
;
import
com.quantgroup.asset.distribution.service.jpa.repository.IAuthorityRepository
;
/**
* 权限配置测试类
* @author liwenbin
*
*/
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
AssetDistributionBootstrap
.
class
)
public
class
AuthorityTest
{
@Autowired
private
IAuthorityRepository
authorityRepository
;
@Test
public
void
testAuthorityRepository
()
{
AuthorityConfig
config
=
authorityRepository
.
findByAuthKeyAndAuthPassAndEnableIsTrue
(
"lz_mo_fang"
,
"123456"
);
System
.
out
.
println
(
config
);
}
}
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