Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qa-platform
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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
qa-platform
Commits
fe0b4108
Commit
fe0b4108
authored
Jul 02, 2020
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initial commit
parents
Changes
27
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
1523 additions
and
0 deletions
+1523
-0
.gitignore
.gitignore
+31
-0
pom.xml
pom.xml
+128
-0
QaPlatformApplication.java
.../java/cn/quantgroup/qaplatform/QaPlatformApplication.java
+15
-0
JsonResult.java
...main/java/cn/quantgroup/qaplatform/common/JsonResult.java
+74
-0
SwitchDataSource.java
...ava/cn/quantgroup/qaplatform/common/SwitchDataSource.java
+116
-0
LogAspect.java
...ava/cn/quantgroup/qaplatform/common/aspect/LogAspect.java
+109
-0
ErrorType.java
...java/cn/quantgroup/qaplatform/common/enums/ErrorType.java
+26
-0
LoanStatus.java
...ava/cn/quantgroup/qaplatform/common/enums/LoanStatus.java
+33
-0
Namespace.java
...java/cn/quantgroup/qaplatform/common/enums/Namespace.java
+47
-0
DataSourceConfig.java
...ava/cn/quantgroup/qaplatform/config/DataSourceConfig.java
+29
-0
DynamicDataSource.java
...va/cn/quantgroup/qaplatform/config/DynamicDataSource.java
+37
-0
LoanUserDataController.java
...ntgroup/qaplatform/controller/LoanUserDataController.java
+69
-0
BasicLoanStatusDataMapper.java
.../quantgroup/qaplatform/dao/BasicLoanStatusDataMapper.java
+40
-0
LoanUser.java
src/main/java/cn/quantgroup/qaplatform/domain/LoanUser.java
+41
-0
BasicLoanStatusDataService.java
...tgroup/qaplatform/service/BasicLoanStatusDataService.java
+47
-0
LoanUserDataService.java
...cn/quantgroup/qaplatform/service/LoanUserDataService.java
+17
-0
BasicLoanStatusDataServiceImpl.java
...platform/service/impl/BasicLoanStatusDataServiceImpl.java
+111
-0
LoadUserDataServiceImpl.java
...roup/qaplatform/service/impl/LoadUserDataServiceImpl.java
+92
-0
HttpClientUtil.java
...n/java/cn/quantgroup/qaplatform/utils/HttpClientUtil.java
+206
-0
JsonTransUtil.java
...in/java/cn/quantgroup/qaplatform/utils/JsonTransUtil.java
+52
-0
RandomDataUtil.java
...n/java/cn/quantgroup/qaplatform/utils/RandomDataUtil.java
+47
-0
SpringUtils.java
...main/java/cn/quantgroup/qaplatform/utils/SpringUtils.java
+33
-0
PageResult.java
.../java/cn/quantgroup/qaplatform/utils/page/PageResult.java
+16
-0
PageUtil.java
...in/java/cn/quantgroup/qaplatform/utils/page/PageUtil.java
+23
-0
application.yml
src/main/resources/application.yml
+28
-0
BasicLoanStatusDataMapper.xml
src/main/resources/mapper/BasicLoanStatusDataMapper.xml
+43
-0
QaPlatformApplicationTests.java
.../cn/quantgroup/qaplatform/QaPlatformApplicationTests.java
+13
-0
No files found.
.gitignore
0 → 100644
View file @
fe0b4108
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
pom.xml
0 → 100644
View file @
fe0b4108
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.3.1.RELEASE
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
cn.quantgroup
</groupId>
<artifactId>
qa-platform
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<name>
qa-platform
</name>
<description>
qa platform service
</description>
<properties>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-aop
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<exclusions>
<exclusion>
<groupId>
org.junit.vintage
</groupId>
<artifactId>
junit-vintage-engine
</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--common-->
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-io
</artifactId>
<version>
1.3.2
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
<version>
3.0
</version>
</dependency>
<!--mybatis-->
<!-- <dependency>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!-- <version>2.1.2</version>-->
<!-- </dependency>-->
<!--mybatis-plus-->
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-boot-starter
</artifactId>
<version>
3.3.2
</version>
</dependency>
<!-- pageHelper分页插件 -->
<!-- <dependency>-->
<!-- <groupId>com.github.pagehelper</groupId>-->
<!-- <artifactId>pagehelper</artifactId>-->
<!-- <version>5.1.2</version>-->
<!-- </dependency>-->
<dependency>
<groupId>
com.github.pagehelper
</groupId>
<artifactId>
pagehelper-spring-boot-starter
</artifactId>
<version>
1.2.12
</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
5.1.48
</version>
</dependency>
<!--集成druid连接池-->
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid-spring-boot-starter
</artifactId>
<version>
1.1.10
</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.18.12
</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-1.2-api
</artifactId>
<version>
2.11.1
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
<version>
4.5.12
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
src/main/java/cn/quantgroup/qaplatform/QaPlatformApplication.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
@SpringBootApplication
@MapperScan
(
value
=
"cn.quantgroup.qaplatform.dao"
)
public
class
QaPlatformApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
QaPlatformApplication
.
class
,
args
);
}
}
src/main/java/cn/quantgroup/qaplatform/common/JsonResult.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
common
;
import
cn.quantgroup.qaplatform.common.enums.ErrorType
;
import
lombok.Data
;
/**
* 统一返回的json格式
*/
@Data
public
class
JsonResult
<
T
>
{
private
Long
code
=
ErrorType
.
SUCCESS
.
getCode
();
private
String
msg
=
ErrorType
.
SUCCESS
.
getMessage
();
private
T
data
;
private
Long
timestamp
;
private
JsonResult
()
{
this
.
timestamp
=
System
.
currentTimeMillis
();
}
private
JsonResult
(
ErrorType
errorType
,
String
msg
,
T
data
)
{
this
();
this
.
code
=
errorType
.
getCode
();
this
.
msg
=
msg
;
this
.
data
=
data
;
}
/**
* 成功
*/
public
static
<
T
>
JsonResult
<
T
>
success
()
{
return
buildResult
(
ErrorType
.
SUCCESS
);
}
public
static
<
T
>
JsonResult
<
T
>
success
(
T
data
)
{
return
buildResult
(
ErrorType
.
SUCCESS
,
ErrorType
.
SUCCESS
.
getMessage
(),
data
);
}
/**
* 客户端失败
*/
public
static
<
T
>
JsonResult
<
T
>
clientFailed
()
{
return
buildResult
(
ErrorType
.
CLIENT_FAILED
);
}
public
static
<
T
>
JsonResult
<
T
>
clientFailed
(
T
data
)
{
return
buildResult
(
ErrorType
.
CLIENT_FAILED
,
ErrorType
.
CLIENT_FAILED
.
getMessage
(),
data
);
}
/**
* 服务器失败
*/
public
static
<
T
>
JsonResult
<
T
>
serverFailed
()
{
return
buildResult
(
ErrorType
.
SERVER_FAILED
);
}
public
static
<
T
>
JsonResult
<
T
>
serverFailed
(
T
data
)
{
return
buildResult
(
ErrorType
.
SERVER_FAILED
,
ErrorType
.
SERVER_FAILED
.
getMessage
(),
data
);
}
/**
* 构建data为null的响应结果
*/
public
static
<
T
>
JsonResult
<
T
>
buildResult
(
ErrorType
errorType
)
{
return
new
JsonResult
<
T
>(
errorType
,
errorType
.
getMessage
(),
null
);
}
/**
* 构建带data的响应接口
*/
public
static
<
T
>
JsonResult
<
T
>
buildResult
(
ErrorType
errorType
,
String
msg
,
T
data
)
{
return
new
JsonResult
<
T
>(
errorType
,
msg
,
data
);
}
}
src/main/java/cn/quantgroup/qaplatform/common/SwitchDataSource.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
common
;
import
cn.quantgroup.qaplatform.common.enums.Namespace
;
import
cn.quantgroup.qaplatform.config.DynamicDataSource
;
import
com.alibaba.druid.pool.DruidDataSource
;
/**
* 切换数据源
* @author libo
*/
public
class
SwitchDataSource
{
public
static
final
String
SUFFIX
=
"?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&useAffectedRows=true"
;
public
static
void
dataSourceSwitch
(
String
namespace
,
String
database
)
{
/**
* PRE 环境
*/
if
(
namespace
.
equals
(
"pre"
))
{
DruidDataSource
druidDataSource
=
new
DruidDataSource
();
String
url
=
Namespace
.
PRE
.
getUrl
()
+
database
+
SUFFIX
;
String
dbKey
=
Namespace
.
PRE
.
getKey
();
druidDataSource
.
setUrl
(
url
);
druidDataSource
.
setUsername
(
Namespace
.
PRE
.
getUsername
());
druidDataSource
.
setPassword
(
Namespace
.
PRE
.
getPassword
());
DynamicDataSource
.
dataSourcesMap
.
put
(
dbKey
,
druidDataSource
);
DynamicDataSource
.
setDataSource
(
dbKey
);
}
/**
* qa 环境
*/
if
(
namespace
.
equals
(
"qa"
))
{
DruidDataSource
druidDataSource
=
new
DruidDataSource
();
String
url
=
Namespace
.
QA
.
getUrl
()
+
database
+
SUFFIX
;
String
dbKey
=
Namespace
.
QA
.
getKey
();
druidDataSource
.
setUrl
(
url
);
druidDataSource
.
setUsername
(
Namespace
.
QA
.
getUsername
());
druidDataSource
.
setPassword
(
Namespace
.
QA
.
getPassword
());
DynamicDataSource
.
dataSourcesMap
.
put
(
dbKey
,
druidDataSource
);
DynamicDataSource
.
setDataSource
(
dbKey
);
}
/**
* qa2 环境
*/
if
(
namespace
.
equals
(
"qa2"
))
{
DruidDataSource
druidDataSource
=
new
DruidDataSource
();
String
url
=
Namespace
.
QA2
.
getUrl
()
+
database
+
SUFFIX
;
String
dbKey
=
Namespace
.
QA2
.
getKey
();
druidDataSource
.
setUrl
(
url
);
druidDataSource
.
setUsername
(
Namespace
.
QA2
.
getUsername
());
druidDataSource
.
setPassword
(
Namespace
.
QA2
.
getPassword
());
DynamicDataSource
.
dataSourcesMap
.
put
(
dbKey
,
druidDataSource
);
DynamicDataSource
.
setDataSource
(
dbKey
);
}
/**
* qa3 环境
*/
if
(
namespace
.
equals
(
"qa3"
))
{
DruidDataSource
druidDataSource
=
new
DruidDataSource
();
String
url
=
Namespace
.
QA3
.
getUrl
()
+
database
+
SUFFIX
;
String
dbKey
=
Namespace
.
QA3
.
getKey
();
druidDataSource
.
setUrl
(
url
);
druidDataSource
.
setUsername
(
Namespace
.
QA3
.
getUsername
());
druidDataSource
.
setPassword
(
Namespace
.
QA3
.
getPassword
());
DynamicDataSource
.
dataSourcesMap
.
put
(
dbKey
,
druidDataSource
);
DynamicDataSource
.
setDataSource
(
dbKey
);
}
/**
* test1 环境
*/
if
(
namespace
.
equals
(
"test1"
))
{
DruidDataSource
druidDataSource
=
new
DruidDataSource
();
String
url
=
Namespace
.
TEST1
.
getUrl
()
+
database
+
SUFFIX
;
String
dbKey
=
Namespace
.
TEST1
.
getKey
();
druidDataSource
.
setUrl
(
url
);
druidDataSource
.
setUsername
(
Namespace
.
TEST1
.
getUsername
());
druidDataSource
.
setPassword
(
Namespace
.
TEST1
.
getPassword
());
DynamicDataSource
.
dataSourcesMap
.
put
(
dbKey
,
druidDataSource
);
DynamicDataSource
.
setDataSource
(
dbKey
);
}
/**
* xjfq 环境
*/
if
(
namespace
.
equals
(
"xjfq"
))
{
DruidDataSource
druidDataSource
=
new
DruidDataSource
();
String
url
=
Namespace
.
XJFQ
.
getUrl
()
+
database
+
SUFFIX
;
String
dbKey
=
Namespace
.
XJFQ
.
getKey
();
druidDataSource
.
setUrl
(
url
);
druidDataSource
.
setUsername
(
Namespace
.
XJFQ
.
getUsername
());
druidDataSource
.
setPassword
(
Namespace
.
XJFQ
.
getPassword
());
DynamicDataSource
.
dataSourcesMap
.
put
(
dbKey
,
druidDataSource
);
DynamicDataSource
.
setDataSource
(
dbKey
);
}
/**
* xyqb 环境
*/
if
(
namespace
.
equals
(
"xyqb"
))
{
DruidDataSource
druidDataSource
=
new
DruidDataSource
();
String
url
=
Namespace
.
XYQB
.
getUrl
()
+
database
+
SUFFIX
;
String
dbKey
=
Namespace
.
XYQB
.
getKey
();
druidDataSource
.
setUrl
(
url
);
druidDataSource
.
setUsername
(
Namespace
.
XYQB
.
getUsername
());
druidDataSource
.
setPassword
(
Namespace
.
XYQB
.
getPassword
());
DynamicDataSource
.
dataSourcesMap
.
put
(
dbKey
,
druidDataSource
);
DynamicDataSource
.
setDataSource
(
dbKey
);
}
}
}
src/main/java/cn/quantgroup/qaplatform/common/aspect/LogAspect.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
common
.
aspect
;
import
cn.quantgroup.qaplatform.utils.JsonTransUtil
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.Signature
;
import
org.aspectj.lang.annotation.AfterReturning
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Before
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Parameter
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 日志切面
*/
@Aspect
@Component
public
class
LogAspect
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
LogAspect
.
class
);
private
Map
<
String
,
Object
>
logMap
=
new
HashMap
<>();
@Pointcut
(
"execution(public * cn.quantgroup.qaplatform.controller..*.*(..))"
)
public
void
apiLog
()
{}
/**
* 前置通知:在连接点之前执行的通知
*
* @param joinPoint
* @throws Throwable
*/
@Before
(
"apiLog()"
)
public
void
doBefore
(
JoinPoint
joinPoint
)
throws
JsonProcessingException
{
ServletRequestAttributes
servletRequestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
HttpServletRequest
request
=
servletRequestAttributes
.
getRequest
();
Signature
signature
=
joinPoint
.
getSignature
();
MethodSignature
methodSignature
=
(
MethodSignature
)
signature
;
Method
method
=
methodSignature
.
getMethod
();
logMap
.
put
(
"url"
,
request
.
getRequestURL
().
toString
());
logMap
.
put
(
"method"
,
request
.
getMethod
());
logMap
.
put
(
"host"
,
request
.
getRemoteAddr
());
logMap
.
put
(
"class"
,
joinPoint
.
getSignature
().
getDeclaringTypeName
()
+
"."
+
joinPoint
.
getSignature
().
getName
());
logMap
.
put
(
"requestParams"
,
getParameter
(
method
,
joinPoint
.
getArgs
()));
// 记录下请求内容
logger
.
info
(
"请求信息:"
+
JsonTransUtil
.
mapToJson
(
logMap
));
}
/**
* 后置通知:在连接点之后执行的通知
*
* @param ret
* @throws Throwable
*/
@AfterReturning
(
returning
=
"ret"
,
pointcut
=
"apiLog()"
)
public
void
doAfterReturning
(
Object
ret
)
throws
Throwable
{
// 处理完请求,返回内容
logger
.
info
(
"返回结果:"
+
JsonTransUtil
.
objToJson
(
ret
));
}
/**
* 根据方法和传入参数获取请求参数
*/
private
Object
getParameter
(
Method
method
,
Object
[]
args
)
{
List
<
Object
>
argList
=
new
ArrayList
<>();
Parameter
[]
parameters
=
method
.
getParameters
();
for
(
int
i
=
0
;
i
<
parameters
.
length
;
i
++)
{
//将RequestBody注解修饰的参数作为请求参数
RequestBody
requestBody
=
parameters
[
i
].
getAnnotation
(
RequestBody
.
class
);
if
(
requestBody
!=
null
)
{
argList
.
add
(
args
[
i
]);
}
//将RequestParam注解修饰的参数作为请求参数
RequestParam
requestParam
=
parameters
[
i
].
getAnnotation
(
RequestParam
.
class
);
if
(
requestParam
!=
null
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
String
key
=
parameters
[
i
].
getName
();
if
(!
StringUtils
.
isEmpty
(
requestParam
.
value
()))
{
key
=
requestParam
.
value
();
}
map
.
put
(
key
,
args
[
i
]);
argList
.
add
(
map
);
}
}
if
(
argList
.
size
()
==
0
)
{
return
null
;
}
else
if
(
argList
.
size
()
==
1
)
{
return
argList
.
get
(
0
);
}
else
{
return
argList
;
}
}
}
\ No newline at end of file
src/main/java/cn/quantgroup/qaplatform/common/enums/ErrorType.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
common
.
enums
;
/**
* 定义错误类别
*/
public
enum
ErrorType
{
SUCCESS
(
200L
,
"请求成功"
),
CLIENT_FAILED
(
400L
,
"客户端请求失败"
),
SERVER_FAILED
(
500L
,
"服务器异常"
);
private
Long
code
;
private
String
message
;
ErrorType
(
Long
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
Long
getCode
()
{
return
this
.
code
;
}
public
String
getMessage
()
{
return
this
.
message
;
}
}
src/main/java/cn/quantgroup/qaplatform/common/enums/LoanStatus.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
common
.
enums
;
/**
* 借款状态枚举
*/
public
enum
LoanStatus
{
UNLOGIN
(
0
,
"未登录"
),
UNAPPLY
(
1
,
"未申请"
),
UNDER_REVIEW
(
2
,
"审核中"
),
REVIEW_PASS
(
3
,
"审核通过"
),
REVIEW_REFUSE
(
4
,
"审核拒绝"
),
LOAN_ING
(
5
,
"放款中"
),
LOAN_SUCESS
(
6
,
"放款成功"
),
LOAN_FAIL
(
7
,
"放款失败"
),
MULTI_ORDER
(
8
,
"多订单未申请"
);
private
Integer
status
;
private
String
desc
;
LoanStatus
(
Integer
status
,
String
desc
)
{
this
.
status
=
status
;
this
.
desc
=
desc
;
}
public
Integer
getStatus
()
{
return
this
.
status
;
}
public
String
getDesc
()
{
return
this
.
desc
;
}
}
src/main/java/cn/quantgroup/qaplatform/common/enums/Namespace.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
common
.
enums
;
public
enum
Namespace
{
PRE
(
"pre"
,
"pre"
,
"jdbc:mysql://172.17.5.14:32178/"
,
"qa"
,
"qatest"
),
QA
(
"qa"
,
"qa"
,
"jdbc:mysql://172.17.5.16:32743/"
,
"qa"
,
"qatest"
),
QA2
(
"qa2"
,
"qa2"
,
"jdbc:mysql://172.17.5.5:31905/"
,
"qa"
,
"qatest"
),
QA3
(
"qa3"
,
"qa3"
,
"jdbc:mysql://172.17.5.14:32659/"
,
"qa"
,
"qatest"
),
TEST1
(
"test1"
,
"test1"
,
"jdbc:mysql://172.17.5.14:31548/"
,
"qa"
,
"qatest"
),
XJFQ
(
"xjfq"
,
"xjfq"
,
"jdbc:mysql://172.17.5.2:32188/"
,
"qa"
,
"qatest"
),
XYQB
(
"xyqb"
,
"xyqb"
,
"jdbc:mysql://172.17.5.5:32556/"
,
"qa"
,
"qatest"
);
private
String
key
;
private
String
desc
;
private
String
url
;
private
String
username
;
private
String
password
;
Namespace
(
String
key
,
String
desc
,
String
url
,
String
username
,
String
password
)
{
this
.
key
=
key
;
this
.
desc
=
desc
;
this
.
url
=
url
;
this
.
username
=
username
;
this
.
password
=
password
;
}
public
String
getKey
()
{
return
this
.
key
;
}
public
String
getDesc
()
{
return
this
.
desc
;
}
public
String
getUrl
()
{
return
this
.
url
;
}
public
String
getUsername
()
{
return
this
.
username
;
}
public
String
getPassword
()
{
return
this
.
password
;
}
}
src/main/java/cn/quantgroup/qaplatform/config/DataSourceConfig.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
config
;
import
com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.DependsOn
;
import
org.springframework.context.annotation.Primary
;
import
javax.sql.DataSource
;
@Configuration
public
class
DataSourceConfig
{
@Bean
@ConfigurationProperties
(
"spring.datasource.druid"
)
public
DataSource
defaultDataSource
()
{
return
DruidDataSourceBuilder
.
create
().
build
();
}
@Bean
@Primary
@DependsOn
({
"springUtils"
,
"defaultDataSource"
})
public
DynamicDataSource
dataSource
()
{
DynamicDataSource
dynamicDataSource
=
new
DynamicDataSource
();
dynamicDataSource
.
setTargetDataSources
(
DynamicDataSource
.
dataSourcesMap
);
return
dynamicDataSource
;
}
}
src/main/java/cn/quantgroup/qaplatform/config/DynamicDataSource.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
config
;
import
cn.quantgroup.qaplatform.utils.SpringUtils
;
import
org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
public
class
DynamicDataSource
extends
AbstractRoutingDataSource
{
private
static
final
ThreadLocal
<
String
>
dataSourceKey
=
ThreadLocal
.
withInitial
(()
->
"defaultDataSource"
);
public
static
Map
<
Object
,
Object
>
dataSourcesMap
=
new
ConcurrentHashMap
<>(
20
);
static
{
dataSourcesMap
.
put
(
"defaultDataSource"
,
SpringUtils
.
getBean
(
"defaultDataSource"
));
}
@Override
protected
Object
determineCurrentLookupKey
()
{
return
DynamicDataSource
.
dataSourceKey
.
get
();
}
public
static
void
setDataSource
(
String
dataSource
)
{
DynamicDataSource
.
dataSourceKey
.
set
(
dataSource
);
DynamicDataSource
dynamicDataSource
=
(
DynamicDataSource
)
SpringUtils
.
getBean
(
"dataSource"
);
dynamicDataSource
.
afterPropertiesSet
();
}
public
static
String
getDataSource
()
{
return
DynamicDataSource
.
dataSourceKey
.
get
();
}
public
static
void
clear
()
{
DynamicDataSource
.
dataSourceKey
.
remove
();
}
}
src/main/java/cn/quantgroup/qaplatform/controller/LoanUserDataController.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
controller
;
import
cn.quantgroup.qaplatform.common.JsonResult
;
import
cn.quantgroup.qaplatform.service.BasicLoanStatusDataService
;
import
cn.quantgroup.qaplatform.service.LoanUserDataService
;
import
cn.quantgroup.qaplatform.utils.page.PageResult
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.CrossOrigin
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
import
java.util.Map
;
@CrossOrigin
@RestController
public
class
LoanUserDataController
{
@Autowired
private
BasicLoanStatusDataService
basicLoanStatusDataService
;
@Autowired
private
LoanUserDataService
loanUserDataService
;
/**
* @return 获取所有借款用户状态
*/
@GetMapping
(
"/allUserLoanStatus"
)
public
JsonResult
getLoanUserDataStatus
()
{
List
<
Map
<
String
,
Object
>>
statusList
=
basicLoanStatusDataService
.
getAllUserLoanStatus
();
return
JsonResult
.
success
(
statusList
);
}
/**
* @return 获取所有环境namespace
*/
@GetMapping
(
"/allEnvInfo"
)
public
JsonResult
getAllEnvInfo
()
{
List
<
Map
<
String
,
Object
>>
envList
=
basicLoanStatusDataService
.
getAllEnvInfo
();
return
JsonResult
.
success
(
envList
);
}
/**
* @param status 用户状态
* @param pageNum
* @param pageSize
* @return 所有借款用户数据
*/
@GetMapping
(
"/getLoanUserData"
)
public
JsonResult
getLoanUserData
(
@RequestParam
(
value
=
"namespace"
)
String
namespace
,
@RequestParam
(
value
=
"status"
)
Integer
status
,
@RequestParam
(
defaultValue
=
"1"
)
Integer
pageNum
,
@RequestParam
(
defaultValue
=
"10"
)
Integer
pageSize
)
{
PageResult
result
=
loanUserDataService
.
getLoanUserData
(
namespace
,
status
,
pageNum
,
pageSize
);
return
JsonResult
.
success
(
result
);
}
/**
* 查看手机号是否存在
* @param phone
* @return
*/
@GetMapping
(
"/checkPhoneExistence"
)
public
JsonResult
checkPhoneExistence
(
@RequestParam
(
value
=
"namespace"
)
String
namespace
,
@RequestParam
(
value
=
"phone"
)
String
phone
)
{
return
JsonResult
.
success
(
basicLoanStatusDataService
.
queryIfPhoneExist
(
namespace
,
phone
));
}
}
src/main/java/cn/quantgroup/qaplatform/dao/BasicLoanStatusDataMapper.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
dao
;
import
cn.quantgroup.qaplatform.domain.LoanUser
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
java.util.List
;
public
interface
BasicLoanStatusDataMapper
{
/**
* 根据uuidList获取用户数据信息
* @param uuidList
* @return
*/
List
<
LoanUser
>
getUserDataListByUuidList
(
List
<
String
>
uuidList
);
/**
* 获取未申请用户数据uuidList
*/
List
<
String
>
getUnApplyLoanUserUuidList
();
/**
* 判断手机号是否存在库里
*/
Object
queryIfPhoneExist
(
String
phone
);
/**
* 查询审核中的user_id
*/
List
<
String
>
getReviewPassedUserIdList
();
/**
* 根据userIdList获取用户信息列表
* @param userIdList
* @return
*/
List
<
LoanUser
>
getUserDataListByUserIdList
(
List
<
String
>
userIdList
);
}
src/main/java/cn/quantgroup/qaplatform/domain/LoanUser.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
domain
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 贷款用户实体类
*/
@Data
public
class
LoanUser
{
/**
* 手机号
*/
private
String
phoneNo
;
/**
* 用户id
*/
private
String
userId
;
/**
* uuid
*/
private
String
uuid
;
/**
* 贷款状态
*/
private
Integer
enable
;
/**
* 创建渠道
*/
private
Long
registeredFrom
;
/**
* 创建日期
*/
private
Date
createdAt
;
}
src/main/java/cn/quantgroup/qaplatform/service/BasicLoanStatusDataService.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
service
;
import
cn.quantgroup.qaplatform.domain.LoanUser
;
import
java.util.List
;
import
java.util.Map
;
/**
* 单个状态数据查询
*/
public
interface
BasicLoanStatusDataService
{
/**
* 获取所有的用户状态
*/
List
<
Map
<
String
,
Object
>>
getAllUserLoanStatus
();
/**
* 获取所有环境信息
*/
List
<
Map
<
String
,
Object
>>
getAllEnvInfo
();
/**
* 根据uuid获取用户信息
*/
List
<
LoanUser
>
getUserDataListByUuidList
(
String
namespace
,
List
<
String
>
uuidList
);
/**
* 获取未申请用户
* @return uuidList
*/
List
<
String
>
getUnApplyUserUuidList
(
String
namespace
);
/**
* 判断用户是否存在
*/
boolean
queryIfPhoneExist
(
String
namespace
,
String
phone
);
/**
* 获取审核中用户的userid
*/
List
<
String
>
getReviewPassedUserIdList
(
String
namespace
);
/**
* 根据userIdList获取用户信息列表
*/
List
<
LoanUser
>
getUserDataListByUserIdList
(
String
namespace
,
List
<
String
>
userIdList
);
}
src/main/java/cn/quantgroup/qaplatform/service/LoanUserDataService.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
service
;
import
cn.quantgroup.qaplatform.utils.page.PageResult
;
/**
* 多个状态结合查询
*/
public
interface
LoanUserDataService
{
/**
* 获取已有用户状态数据
* @param status 用户状态
* @param namespace 环境
* @return
*/
PageResult
getLoanUserData
(
String
namespace
,
Integer
status
,
Integer
pageNum
,
Integer
pageSize
);
}
src/main/java/cn/quantgroup/qaplatform/service/impl/BasicLoanStatusDataServiceImpl.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
service
.
impl
;
import
cn.quantgroup.qaplatform.common.SwitchDataSource
;
import
cn.quantgroup.qaplatform.common.enums.LoanStatus
;
import
cn.quantgroup.qaplatform.common.enums.Namespace
;
import
cn.quantgroup.qaplatform.dao.BasicLoanStatusDataMapper
;
import
cn.quantgroup.qaplatform.domain.LoanUser
;
import
cn.quantgroup.qaplatform.service.BasicLoanStatusDataService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
BasicLoanStatusDataServiceImpl
implements
BasicLoanStatusDataService
{
@Autowired
BasicLoanStatusDataMapper
loanStatusDataMapper
;
/**
* 获取所有用户状态
* @return 用户状态列表
*/
@Override
public
List
<
Map
<
String
,
Object
>>
getAllUserLoanStatus
()
{
List
<
Map
<
String
,
Object
>>
allUserLoanStatusList
=
new
ArrayList
<>();
for
(
LoanStatus
loanStatus:
LoanStatus
.
values
())
{
Map
<
String
,
Object
>
tempMap
=
new
HashMap
<>();
tempMap
.
put
(
"value"
,
loanStatus
.
getStatus
());
tempMap
.
put
(
"label"
,
loanStatus
.
getDesc
());
allUserLoanStatusList
.
add
(
tempMap
);
}
return
allUserLoanStatusList
;
}
/**
* 获取所有环境信息
* @return 环境信息列表
*/
@Override
public
List
<
Map
<
String
,
Object
>>
getAllEnvInfo
()
{
List
<
Map
<
String
,
Object
>>
allEnvList
=
new
ArrayList
<>();
for
(
Namespace
namespace:
Namespace
.
values
())
{
Map
<
String
,
Object
>
tempMap
=
new
HashMap
<>();
tempMap
.
put
(
"value"
,
namespace
.
getKey
());
tempMap
.
put
(
"label"
,
namespace
.
getDesc
());
allEnvList
.
add
(
tempMap
);
}
return
allEnvList
;
}
/**
* 根据uuidList获取用户信息
* @param uuidList
* @return
*/
@Override
public
List
<
LoanUser
>
getUserDataListByUuidList
(
String
namespace
,
List
<
String
>
uuidList
)
{
SwitchDataSource
.
dataSourceSwitch
(
namespace
,
"xyqb_user"
);
return
loanStatusDataMapper
.
getUserDataListByUuidList
(
uuidList
);
}
/**
* 获取未申请用户uuidList
* @return
*/
@Override
public
List
<
String
>
getUnApplyUserUuidList
(
String
namespace
)
{
SwitchDataSource
.
dataSourceSwitch
(
namespace
,
"business_flow"
);
return
loanStatusDataMapper
.
getUnApplyLoanUserUuidList
();
}
/**
* 查看手机号是否在库里
* @param phone
* @return
*/
@Override
public
boolean
queryIfPhoneExist
(
String
namespace
,
String
phone
)
{
SwitchDataSource
.
dataSourceSwitch
(
namespace
,
"xyqb_user"
);
if
(
loanStatusDataMapper
.
queryIfPhoneExist
(
phone
)
!=
null
)
{
return
true
;
}
return
false
;
}
/**
* 获取审核中用户的user_id列表
* @return
*/
@Override
public
List
<
String
>
getReviewPassedUserIdList
(
String
namespace
)
{
SwitchDataSource
.
dataSourceSwitch
(
namespace
,
"xyqb"
);
return
loanStatusDataMapper
.
getReviewPassedUserIdList
();
}
/**
* 根据userIdList获取用户信息列表
*
* @param userIdList
* @return
*/
@Override
public
List
<
LoanUser
>
getUserDataListByUserIdList
(
String
namespace
,
List
<
String
>
userIdList
)
{
SwitchDataSource
.
dataSourceSwitch
(
namespace
,
"xyqb_user"
);
List
<
LoanUser
>
result
=
loanStatusDataMapper
.
getUserDataListByUserIdList
(
userIdList
);
return
result
;
}
}
src/main/java/cn/quantgroup/qaplatform/service/impl/LoadUserDataServiceImpl.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
service
.
impl
;
import
cn.quantgroup.qaplatform.config.DynamicDataSource
;
import
cn.quantgroup.qaplatform.domain.LoanUser
;
import
cn.quantgroup.qaplatform.service.BasicLoanStatusDataService
;
import
cn.quantgroup.qaplatform.service.LoanUserDataService
;
import
cn.quantgroup.qaplatform.utils.RandomDataUtil
;
import
cn.quantgroup.qaplatform.utils.page.PageResult
;
import
cn.quantgroup.qaplatform.utils.page.PageUtil
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 查询旧有数据
*/
@Service
public
class
LoadUserDataServiceImpl
implements
LoanUserDataService
{
@Autowired
private
BasicLoanStatusDataService
basicLoanStatusDataService
;
/**
* 筛选某个状态的用户(0-未登录,1-未申请,2-审核中,3-审核通过待提现,4-放款中,5-放款失败,6-还款中,7-审核拒绝)
* @param namespace 环境
* @param status 用户状态
* @return
*/
@Override
public
PageResult
getLoanUserData
(
String
namespace
,
Integer
status
,
Integer
pageNum
,
Integer
pageSize
)
{
List
<
LoanUser
>
result
=
new
ArrayList
<>();
/**
* 0-未登录
*/
if
(
status
==
0
)
{
int
count
=
0
;
do
{
String
phone
=
RandomDataUtil
.
createMobile
();
LoanUser
loanUser
=
new
LoanUser
();
if
(!
basicLoanStatusDataService
.
queryIfPhoneExist
(
namespace
,
phone
))
{
loanUser
.
setPhoneNo
(
phone
);
result
.
add
(
loanUser
);
count
++;
}
}
while
(
count
<
10
);
PageInfo
<
LoanUser
>
pageList
=
new
PageInfo
<>(
result
);
PageResult
pageResult
=
PageUtil
.
getPageResult
(
pageList
,
pageNum
,
pageSize
);
return
pageResult
;
}
/**
* 1-未申请
*/
if
(
status
==
1
)
{
List
<
String
>
uuidList
=
basicLoanStatusDataService
.
getUnApplyUserUuidList
(
namespace
);
PageHelper
.
startPage
(
pageNum
,
pageSize
);
result
=
basicLoanStatusDataService
.
getUserDataListByUuidList
(
namespace
,
uuidList
);
PageInfo
<
LoanUser
>
pageList
=
new
PageInfo
<>(
result
);
PageResult
pageResult
=
PageUtil
.
getPageResult
(
pageList
,
pageNum
,
pageSize
);
return
pageResult
;
}
/**
* 3-审核通过
*/
if
(
status
==
3
)
{
List
<
String
>
userIdList
=
basicLoanStatusDataService
.
getReviewPassedUserIdList
(
namespace
);
PageHelper
.
startPage
(
pageNum
,
pageSize
);
result
=
basicLoanStatusDataService
.
getUserDataListByUserIdList
(
namespace
,
userIdList
);
PageInfo
<
LoanUser
>
pageList
=
new
PageInfo
<>(
result
);
PageResult
pageResult
=
PageUtil
.
getPageResult
(
pageList
,
pageNum
,
pageSize
);
return
pageResult
;
}
return
null
;
}
/**
* 清除数据源并重置为默认数据源
* @throws Throwable
*/
protected
void
finalize
()
throws
Throwable
{
super
.
finalize
();
DynamicDataSource
.
clear
();
}
}
src/main/java/cn/quantgroup/qaplatform/utils/HttpClientUtil.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
utils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.NameValuePair
;
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.HttpPost
;
import
org.apache.http.client.utils.URIBuilder
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.message.BasicNameValuePair
;
import
org.apache.http.util.EntityUtils
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URISyntaxException
;
import
java.util.*
;
@Slf4j
public
class
HttpClientUtil
{
private
static
CloseableHttpClient
client
=
HttpClients
.
createDefault
();
public
static
String
doGet
(
String
url
)
{
HttpGet
get
=
new
HttpGet
(
url
);
String
respStr
=
null
;
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
try
{
CloseableHttpResponse
response
=
client
.
execute
(
get
);
HttpEntity
httpEntity
=
response
.
getEntity
();
respStr
=
EntityUtils
.
toString
(
httpEntity
,
"utf-8"
);
// resultMap = JsonTransUtil.strToMap(respStr);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
// return resultMap;
return
respStr
;
}
public
static
String
doGet
(
String
url
,
Map
<
String
,
Object
>
params
)
throws
URISyntaxException
{
// HttpGet get = new HttpGet(url);
URIBuilder
uriBuilder
=
new
URIBuilder
(
url
);
if
(
params
!=
null
&&
!
params
.
isEmpty
())
{
Set
<
String
>
keySet
=
params
.
keySet
();
for
(
String
key:
keySet
)
{
uriBuilder
.
setParameter
(
key
,
params
.
get
(
key
).
toString
());
}
}
HttpGet
get
=
new
HttpGet
(
uriBuilder
.
build
());
String
respStr
=
null
;
try
{
CloseableHttpResponse
response
=
client
.
execute
(
get
);
HttpEntity
httpEntity
=
response
.
getEntity
();
respStr
=
EntityUtils
.
toString
(
httpEntity
,
"utf-8"
);
System
.
out
.
println
(
respStr
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
respStr
;
}
public
static
void
doPost
(
String
url
,
String
params
)
{
try
{
HttpPost
post
=
new
HttpPost
(
url
);
List
<
NameValuePair
>
list
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
params
))
{
String
[]
splitStrings
=
params
.
split
(
"&"
);
for
(
String
splitString
:
splitStrings
)
{
String
[]
split
=
splitString
.
split
(
"="
);
list
.
add
(
new
BasicNameValuePair
(
split
[
0
],
split
[
1
]));
}
UrlEncodedFormEntity
urlEncodedFormEntity
=
new
UrlEncodedFormEntity
(
list
,
"utf-8"
);
post
.
setEntity
(
urlEncodedFormEntity
);
}
CloseableHttpResponse
response
=
client
.
execute
(
post
);
HttpEntity
responseEntity
=
response
.
getEntity
();
String
responseString
=
EntityUtils
.
toString
(
responseEntity
,
"utf-8"
);
System
.
out
.
println
(
responseString
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
public
static
void
doPost
(
String
url
,
Map
<
String
,
Object
>
params
)
{
try
{
HttpPost
post
=
new
HttpPost
(
url
);
List
list
=
new
ArrayList
();
if
(
params
!=
null
&&
!
params
.
isEmpty
())
{
Set
<
String
>
keySet
=
params
.
keySet
();
for
(
String
key
:
keySet
)
{
list
.
add
(
new
BasicNameValuePair
(
key
,
params
.
get
(
key
).
toString
()));
}
UrlEncodedFormEntity
urlEncodedFormEntity
=
new
UrlEncodedFormEntity
(
list
,
"utf-8"
);
post
.
setEntity
(
urlEncodedFormEntity
);
}
CloseableHttpResponse
response
=
client
.
execute
(
post
);
HttpEntity
responseEntity
=
response
.
getEntity
();
String
responseString
=
EntityUtils
.
toString
(
responseEntity
,
"utf-8"
);
System
.
out
.
println
(
responseString
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
public
static
Map
<
String
,
Object
>
doPost
(
String
url
,
Map
<
String
,
Object
>
params
,
Map
<
String
,
Object
>
headers
)
{
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
try
{
HttpPost
post
=
new
HttpPost
(
url
);
List
list
=
new
ArrayList
();
if
(
params
!=
null
&&
!
params
.
isEmpty
())
{
Set
<
String
>
keySet
=
params
.
keySet
();
for
(
String
key
:
keySet
)
{
list
.
add
(
new
BasicNameValuePair
(
key
,
params
.
get
(
key
).
toString
()));
}
UrlEncodedFormEntity
urlEncodedFormEntity
=
new
UrlEncodedFormEntity
(
list
,
"utf-8"
);
post
.
setEntity
(
urlEncodedFormEntity
);
}
if
(
headers
!=
null
&&
!
headers
.
isEmpty
())
{
Set
<
String
>
keySet
=
headers
.
keySet
();
for
(
String
s
:
keySet
)
{
post
.
addHeader
(
s
,
headers
.
get
(
s
).
toString
());
}
}
CloseableHttpResponse
response
=
client
.
execute
(
post
);
HttpEntity
responseEntity
=
response
.
getEntity
();
String
responseString
=
EntityUtils
.
toString
(
responseEntity
,
"utf-8"
);
resultMap
=
JsonTransUtil
.
strToMap
(
responseString
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
resultMap
;
}
public
static
void
doPostJson
(
String
url
,
String
params
,
String
headers
)
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
if
(
StringUtils
.
isNotEmpty
(
params
))
{
StringEntity
stringEntity
=
new
StringEntity
(
params
,
"utf-8"
);
httpPost
.
setEntity
(
stringEntity
);
}
if
(
StringUtils
.
isNotEmpty
(
headers
))
{
httpPost
.
setHeader
(
"Content-Type"
,
"application/json"
);
}
try
{
CloseableHttpResponse
response
=
client
.
execute
(
httpPost
);
HttpEntity
responseEntity
=
response
.
getEntity
();
String
toString
=
EntityUtils
.
toString
(
responseEntity
,
"utf-8"
);
System
.
out
.
println
(
toString
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
public
static
Map
<
String
,
Object
>
doPostJson
(
String
url
,
String
params
,
Map
<
String
,
Object
>
headers
)
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
if
(
StringUtils
.
isNotEmpty
(
params
))
{
StringEntity
stringEntity
=
new
StringEntity
(
params
,
"utf-8"
);
httpPost
.
setEntity
(
stringEntity
);
}
if
(
headers
!=
null
&&
!
headers
.
isEmpty
())
{
Set
<
String
>
keySet
=
headers
.
keySet
();
for
(
String
s
:
keySet
)
{
httpPost
.
addHeader
(
s
,
headers
.
get
(
s
).
toString
());
}
}
try
{
CloseableHttpResponse
response
=
client
.
execute
(
httpPost
);
HttpEntity
responseEntity
=
response
.
getEntity
();
String
responseStr
=
EntityUtils
.
toString
(
responseEntity
,
"utf-8"
);
resultMap
=
JsonTransUtil
.
strToMap
(
responseStr
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
resultMap
;
}
public
static
void
main
(
String
[]
args
)
throws
UnsupportedEncodingException
{
String
url
=
"http://passportapi-qa.liangkebang.net/user/login/fastV1"
;
String
phoneNo
=
"13712345678:0000"
;
Base64
.
Encoder
encoder
=
Base64
.
getEncoder
();
byte
[]
textByte
=
phoneNo
.
getBytes
(
"UTF-8"
);
String
phoneNoBase64
=
encoder
.
encodeToString
(
textByte
);
Map
<
String
,
Object
>
headers
=
new
HashMap
<>();
Map
<
String
,
Object
>
formData
=
new
HashMap
<>();
headers
.
put
(
"Content-Type"
,
"application/x-www-form-urlencoded"
);
headers
.
put
(
"Authorization"
,
"Verification "
+
phoneNoBase64
);
formData
.
put
(
"channelId"
,
1
);
formData
.
put
(
"createdFrom"
,
1
);
formData
.
put
(
"key"
,
"xyqb"
);
formData
.
put
(
"btRegisterChannelId"
,
""
);
formData
.
put
(
"dimension"
,
""
);
formData
.
put
(
"click_id"
,
""
);
Map
<
String
,
Object
>
resMap
=
doPost
(
url
,
formData
,
headers
);
System
.
out
.
println
(
resMap
.
keySet
());
}
}
src/main/java/cn/quantgroup/qaplatform/utils/JsonTransUtil.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
utils
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
java.util.Map
;
/**
* json转换工具类
*/
public
class
JsonTransUtil
{
/**
* json转换成对象
* @param jsonStr
* @return
* @throws JsonProcessingException
*/
public
static
Object
jsonToObj
(
String
jsonStr
)
throws
JsonProcessingException
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
Object
obj
=
new
Object
();
return
obj
=
objectMapper
.
readValue
(
jsonStr
,
obj
.
getClass
());
}
/**
* 对象转换成json
*
* @param:传入对象
* @return:json字符串
*/
public
static
String
objToJson
(
Object
obj
)
throws
JsonProcessingException
{
ObjectMapper
mapper
=
new
ObjectMapper
();
return
mapper
.
writeValueAsString
(
obj
);
}
/**
* 字符串转换成map
*/
public
static
Map
<
String
,
Object
>
strToMap
(
String
str
)
throws
JsonProcessingException
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
return
objectMapper
.
readValue
(
str
,
Map
.
class
);
}
/**
* map转json对象
*/
public
static
String
mapToJson
(
Map
<
String
,
Object
>
map
)
throws
JsonProcessingException
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
String
jsonStr
=
objectMapper
.
writeValueAsString
(
map
);
return
jsonStr
;
}
}
src/main/java/cn/quantgroup/qaplatform/utils/RandomDataUtil.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
utils
;
import
java.util.Random
;
/**
* 生成随机数据的工具类
*/
public
class
RandomDataUtil
{
//中国移动
public
static
final
String
[]
CHINA_MOBILE
=
{
"134"
,
"135"
,
"136"
,
"137"
,
"138"
,
"139"
,
"150"
,
"151"
,
"152"
,
"157"
,
"158"
,
"159"
,
"182"
,
"183"
,
"184"
,
"187"
,
"188"
,
"178"
,
"147"
,
"172"
,
"198"
};
//中国联通
public
static
final
String
[]
CHINA_UNICOM
=
{
"130"
,
"131"
,
"132"
,
"145"
,
"155"
,
"156"
,
"166"
,
"171"
,
"175"
,
"176"
,
"185"
,
"186"
,
"166"
};
//中国电信
public
static
final
String
[]
CHINA_TELECOME
=
{
"133"
,
"149"
,
"153"
,
"173"
,
"177"
,
"180"
,
"181"
,
"189"
,
"199"
};
public
static
final
String
[]
TOTAL
=
{
"134"
,
"135"
,
"136"
,
"137"
,
"138"
,
"139"
,
"150"
,
"151"
,
"152"
,
"157"
,
"158"
,
"159"
,
"182"
,
"183"
,
"184"
,
"187"
,
"188"
,
"178"
,
"147"
,
"172"
,
"198"
,
"130"
,
"131"
,
"132"
,
"145"
,
"155"
,
"156"
,
"166"
,
"171"
,
"175"
,
"176"
,
"185"
,
"186"
,
"166"
,
"133"
,
"149"
,
"153"
,
"173"
,
"177"
,
"180"
,
"181"
,
"189"
,
"199"
};
/**
* 生成随机手机号
*/
public
static
String
createMobile
()
{
StringBuilder
sb
=
new
StringBuilder
();
Random
random
=
new
Random
();
int
temp
;
String
mobilePart1
=
TOTAL
[
random
.
nextInt
(
TOTAL
.
length
)];
sb
.
append
(
mobilePart1
);
for
(
int
i
=
0
;
i
<
8
;
i
++)
{
temp
=
random
.
nextInt
(
10
);
sb
.
append
(
temp
);
}
return
sb
.
toString
();
}
public
static
void
main
(
String
[]
args
)
{
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
System
.
out
.
println
(
createMobile
());
}
}
}
src/main/java/cn/quantgroup/qaplatform/utils/SpringUtils.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
utils
;
import
lombok.Getter
;
import
org.springframework.beans.BeansException
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Component
;
@Component
public
final
class
SpringUtils
implements
ApplicationContextAware
{
@Getter
private
static
ApplicationContext
applicationContext
;
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
if
(
SpringUtils
.
applicationContext
==
null
)
{
SpringUtils
.
applicationContext
=
applicationContext
;
}
}
public
static
<
T
>
T
getBean
(
Class
<
T
>
clazz
)
{
return
SpringUtils
.
applicationContext
.
getBean
(
clazz
);
}
public
static
Object
getBean
(
String
name
)
{
return
SpringUtils
.
applicationContext
.
getBean
(
name
);
}
public
static
String
getProperty
(
String
key
)
{
return
SpringUtils
.
applicationContext
.
getEnvironment
().
getProperty
(
key
);
}
}
src/main/java/cn/quantgroup/qaplatform/utils/page/PageResult.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
utils
.
page
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.List
;
@Getter
@Setter
public
class
PageResult
{
private
int
pageNum
;
// 当前页数
private
int
pageSize
;
// 每页记录数
private
int
totalPage
;
// 总页数
private
long
totalNum
;
// 总记录数
private
List
<?>
content
;
// 每行显示的内容
}
src/main/java/cn/quantgroup/qaplatform/utils/page/PageUtil.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
.
utils
.
page
;
import
com.github.pagehelper.PageInfo
;
public
class
PageUtil
{
/**
* 设置接口分页返回的结果
* @param pageList
* @param pageNum
* @param pageSize
* @return
*/
public
static
PageResult
getPageResult
(
PageInfo
<?>
pageList
,
Integer
pageNum
,
Integer
pageSize
)
{
PageResult
pageResult
=
new
PageResult
();
pageResult
.
setPageNum
(
pageNum
);
pageResult
.
setPageSize
(
pageSize
);
pageResult
.
setTotalPage
(
pageList
.
getPages
());
pageResult
.
setTotalNum
(
pageList
.
getTotal
());
pageResult
.
setContent
(
pageList
.
getList
());
return
pageResult
;
}
}
src/main/resources/application.yml
0 → 100644
View file @
fe0b4108
# 环境配置
spring
:
datasource
:
url
:
jdbc:mysql://172.17.5.16:32743/xyqb
username
:
qa
password
:
qatest
driver-class-name
:
com.mysql.jdbc.Driver
type
:
com.alibaba.druid.pool.DruidDataSource
jackson
:
date-format
:
yyyy-MM-dd HH:mm:ss
time-zone
:
GMT+8
server
:
port
:
8082
# mybatis-plus 配置
mybatis-plus
:
mapper-locations
:
classpath:mapper/*.xml
type-aliases-package
:
cn.quantgroup.qaplatform.domain
configuration
:
map-underscore-to-camel-case
:
true
# pagehelper
pagehelper
:
helper-dialect
:
mysql
reasonable
:
true
support-methods-arguments
:
true
params
:
count=countSql
src/main/resources/mapper/BasicLoanStatusDataMapper.xml
0 → 100644
View file @
fe0b4108
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"cn.quantgroup.qaplatform.dao.BasicLoanStatusDataMapper"
>
<!-- 未申请 -->
<select
id=
"getUnApplyLoanUserUuidList"
resultType=
"java.lang.String"
>
SELECT `uuid` FROM `apply_list`
<where>
`apply_status` = 1
</where>
</select>
<!-- 根据uuidList获取用户信息列表 -->
<select
id=
"getUserDataListByUuidList"
parameterType=
"java.util.List"
resultType=
"cn.quantgroup.qaplatform.domain.LoanUser"
>
SELECT `id` as userId, `phone_no` as phoneNo, `uuid`, `registered_from` as registeredFrom, `enable`, `created_at` as createdAt FROM `user`
where `uuid` in
<foreach
collection=
"list"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</select>
<select
id=
"queryIfPhoneExist"
resultType=
"object"
>
SELECT * FROM `user` where phone_no = #{phone}
</select>
<!-- 获取审核通过用户列表 -->
<select
id=
"getReviewPassedUserIdList"
resultType=
"java.lang.String"
>
SELECT `user_id` FROM `apply_funding_risk_record`
<where>
`apply_status` = 2
</where>
</select>
<!-- 根据userIdList获取用户信息List -->
<select
id=
"getUserDataListByUserIdList"
resultType=
"cn.quantgroup.qaplatform.domain.LoanUser"
>
SELECT `id` as userId, `uuid`, `phone_no` as phoneNo, `registered_from` as registeredFrom, `enable`, `created_at` as createdAt FROM `user`
where `id` in
<foreach
collection=
"list"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</select>
</mapper>
\ No newline at end of file
src/test/java/cn/quantgroup/qaplatform/QaPlatformApplicationTests.java
0 → 100644
View file @
fe0b4108
package
cn
.
quantgroup
.
qaplatform
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
class
QaPlatformApplicationTests
{
@Test
void
contextLoads
()
{
}
}
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