Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
ka-code-generator
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
QG
ka-code-generator
Commits
ca6c9738
Commit
ca6c9738
authored
Jun 10, 2020
by
王向伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
模板代码
parents
Pipeline
#567
failed with stages
Changes
61
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
61 changed files
with
2619 additions
and
0 deletions
+2619
-0
codegenerator.iml
codegenerator.iml
+73
-0
pom.xml
pom.xml
+71
-0
CodegeneratorApplication.java
...cn/quantgroup/codegenerator/CodegeneratorApplication.java
+13
-0
CodeGenerateException.java
.../quantgroup/codegenerator/util/CodeGenerateException.java
+29
-0
FreemarkerTool.java
...java/cn/quantgroup/codegenerator/util/FreemarkerTool.java
+126
-0
StringUtils.java
...in/java/cn/quantgroup/codegenerator/util/StringUtils.java
+61
-0
XmlParseUtil.java
...n/java/cn/quantgroup/codegenerator/util/XmlParseUtil.java
+96
-0
GenerateConf.xml
src/main/resources/GenerateConf.xml
+35
-0
application.yml
src/main/resources/application.yml
+19
-0
ContractInfoNotice.ftl
.../templates/code-generator/callback/ContractInfoNotice.ftl
+18
-0
InoutPlanNotice.ftl
...ces/templates/code-generator/callback/InoutPlanNotice.ftl
+44
-0
QueryCreditApplyCallback.ftl
...ates/code-generator/callback/QueryCreditApplyCallback.ftl
+85
-0
QueryLoanCallback.ftl
...s/templates/code-generator/callback/QueryLoanCallback.ftl
+28
-0
QueryRepayCallback.ftl
.../templates/code-generator/callback/QueryRepayCallback.ftl
+91
-0
QuotaExpired.ftl
...ources/templates/code-generator/callback/QuotaExpired.ftl
+18
-0
QuotaExpiredCallback.ftl
...emplates/code-generator/callback/QuotaExpiredCallback.ftl
+21
-0
RepaymentMethodTermLabel.ftl
...ates/code-generator/callback/RepaymentMethodTermLabel.ftl
+35
-0
AgreementTypeEnum.ftl
...rces/templates/code-generator/enums/AgreementTypeEnum.ftl
+24
-0
ChargeOffStatusEnum.ftl
...es/templates/code-generator/enums/ChargeOffStatusEnum.ftl
+16
-0
ContractStatusEnum.ftl
...ces/templates/code-generator/enums/ContractStatusEnum.ftl
+18
-0
CreditResultEnum.ftl
...urces/templates/code-generator/enums/CreditResultEnum.ftl
+35
-0
CreditStatusCallBackEnum.ftl
...mplates/code-generator/enums/CreditStatusCallBackEnum.ftl
+22
-0
LoanApplyStatusEnum.ftl
...es/templates/code-generator/enums/LoanApplyStatusEnum.ftl
+14
-0
LoanPurposesEnum.ftl
...urces/templates/code-generator/enums/LoanPurposesEnum.ftl
+64
-0
OverdueStatusEnum.ftl
...rces/templates/code-generator/enums/OverdueStatusEnum.ftl
+14
-0
RepayStatusEnum.ftl
...ources/templates/code-generator/enums/RepayStatusEnum.ftl
+34
-0
RepayTypeEnum.ftl
...esources/templates/code-generator/enums/RepayTypeEnum.ftl
+14
-0
RepaymentStatusEnum.ftl
...es/templates/code-generator/enums/RepaymentStatusEnum.ftl
+23
-0
ShowTypeEnum.ftl
...resources/templates/code-generator/enums/ShowTypeEnum.ftl
+12
-0
SignStatusEnum.ftl
...sources/templates/code-generator/enums/SignStatusEnum.ftl
+14
-0
UserAccessResultEnum.ftl
...s/templates/code-generator/enums/UserAccessResultEnum.ftl
+15
-0
EventHandler.ftl
...es/templates/code-generator/eventhandler/EventHandler.ftl
+0
-0
ApplyLoanRequest.ftl
...urces/templates/code-generator/model/ApplyLoanRequest.ftl
+45
-0
ApplyLoanResult.ftl
...ources/templates/code-generator/model/ApplyLoanResult.ftl
+17
-0
BankInfo.ftl
...ain/resources/templates/code-generator/model/BankInfo.ftl
+20
-0
BindBankCardSmsRequest.ftl
...templates/code-generator/model/BindBankCardSmsRequest.ftl
+40
-0
BindBankCardSmsResult.ftl
.../templates/code-generator/model/BindBankCardSmsResult.ftl
+19
-0
CreditApplyRequest.ftl
...ces/templates/code-generator/model/CreditApplyRequest.ftl
+225
-0
CreditApplyResult.ftl
...rces/templates/code-generator/model/CreditApplyResult.ftl
+21
-0
QueryCreditApplyRequest.ftl
...emplates/code-generator/model/QueryCreditApplyRequest.ftl
+25
-0
QueryCreditApplyResult.ftl
...templates/code-generator/model/QueryCreditApplyResult.ftl
+81
-0
QueryLoanRequest.ftl
...urces/templates/code-generator/model/QueryLoanRequest.ftl
+26
-0
QueryLoanResult.ftl
...ources/templates/code-generator/model/QueryLoanResult.ftl
+44
-0
QueryLoanTrialRequest.ftl
.../templates/code-generator/model/QueryLoanTrialRequest.ftl
+35
-0
QueryLoanTrialResult.ftl
...s/templates/code-generator/model/QueryLoanTrialResult.ftl
+60
-0
QueryRepayRequest.ftl
...rces/templates/code-generator/model/QueryRepayRequest.ftl
+29
-0
QueryRepayResult.ftl
...urces/templates/code-generator/model/QueryRepayResult.ftl
+80
-0
QuerySupportBankcardsRequest.ftl
...tes/code-generator/model/QuerySupportBankcardsRequest.ftl
+25
-0
QuerySupportBankcardsResult.ftl
...ates/code-generator/model/QuerySupportBankcardsResult.ftl
+39
-0
RepayByPlanRequest.ftl
...ces/templates/code-generator/model/RepayByPlanRequest.ftl
+45
-0
RepayByPlanResult.ftl
...rces/templates/code-generator/model/RepayByPlanResult.ftl
+18
-0
TrialInoutPlan.ftl
...sources/templates/code-generator/model/TrialInoutPlan.ftl
+49
-0
UserAccessRequest.ftl
...rces/templates/code-generator/model/UserAccessRequest.ftl
+27
-0
UserAccessResult.ftl
...urces/templates/code-generator/model/UserAccessResult.ftl
+16
-0
VerifyBindSmsRequest.ftl
...s/templates/code-generator/model/VerifyBindSmsRequest.ftl
+33
-0
VerifyBindSmsResult.ftl
...es/templates/code-generator/model/VerifyBindSmsResult.ftl
+19
-0
Service.ftl
...in/resources/templates/code-generator/service/Service.ftl
+122
-0
ServiceImpl.ftl
...esources/templates/code-generator/service/ServiceImpl.ftl
+0
-0
CodeEnum.ftl
...main/resources/templates/code-generator/util/CodeEnum.ftl
+189
-0
ResultUtils.ftl
...n/resources/templates/code-generator/util/ResultUtils.ftl
+75
-0
CodegeneratorApplicationTests.java
...antgroup/codegenerator/CodegeneratorApplicationTests.java
+13
-0
No files found.
codegenerator.iml
0 → 100644
View file @
ca6c9738
<?xml version="1.0" encoding="UTF-8"?>
<module
org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule=
"true"
type=
"JAVA_MODULE"
version=
"4"
>
<component
name=
"FacetManager"
>
<facet
type=
"Spring"
name=
"Spring"
>
<configuration
/>
</facet>
</component>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<output
url=
"file://$MODULE_DIR$/target/classes"
/>
<output-test
url=
"file://$MODULE_DIR$/target/test-classes"
/>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/target"
/>
</content>
<orderEntry
type=
"inheritedJdk"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter:2.3.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot:2.3.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context:5.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aop:5.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-logging:2.3.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-classic:1.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-core:1.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:jul-to-slf4j:1.7.30"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.annotation:jakarta.annotation-api:1.3.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-core:5.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jcl:5.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.yaml:snakeyaml:1.26"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-freemarker:2.3.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.freemarker:freemarker:2.3.30"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context-support:5.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-beans:5.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cn.hutool:hutool-all:5.0.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.projectlombok:lombok:1.18.12"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.springframework.boot:spring-boot-starter-test:2.3.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.springframework.boot:spring-boot-test:2.3.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: com.jayway.jsonpath:json-path:2.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: net.minidev:json-smart:2.3"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: net.minidev:accessors-smart:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.ow2.asm:asm:5.0.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-api:1.7.30"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: jakarta.activation:jakarta.activation-api:1.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.assertj:assertj-core:3.16.1"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.hamcrest:hamcrest:2.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.jupiter:junit-jupiter:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.jupiter:junit-jupiter-api:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.apiguardian:apiguardian-api:1.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.opentest4j:opentest4j:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.platform:junit-platform-commons:1.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.jupiter:junit-jupiter-params:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.jupiter:junit-jupiter-engine:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.junit.platform:junit-platform-engine:1.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.mockito:mockito-core:3.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: net.bytebuddy:byte-buddy:1.10.10"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: net.bytebuddy:byte-buddy-agent:1.10.10"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.objenesis:objenesis:2.6"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.mockito:mockito-junit-jupiter:3.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.skyscreamer:jsonassert:1.5.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.springframework:spring-test:5.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"TEST"
name=
"Maven: org.xmlunit:xmlunit-core:2.7.0"
level=
"project"
/>
</component>
</module>
\ No newline at end of file
pom.xml
0 → 100644
View file @
ca6c9738
<?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.0.RELEASE
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
cn.quantgroup
</groupId>
<artifactId>
codegenerator
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<name>
ka-code-generator
</name>
<description>
Demo project for Spring Boot
</description>
<properties>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-freemarker
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
<version>
3.8
</version>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
<version>
5.0.6
</version>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<optional>
true
</optional>
</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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
src/main/java/cn/quantgroup/codegenerator/CodegeneratorApplication.java
0 → 100644
View file @
ca6c9738
package
cn
.
quantgroup
.
codegenerator
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
CodegeneratorApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
CodegeneratorApplication
.
class
,
args
);
}
}
src/main/java/cn/quantgroup/codegenerator/util/CodeGenerateException.java
0 → 100644
View file @
ca6c9738
package
cn
.
quantgroup
.
codegenerator
.
util
;
/**
* @author xuxueli 2018-05-02 21:10:28
*/
public
class
CodeGenerateException
extends
RuntimeException
{
private
static
final
long
serialVersionUID
=
42L
;
public
CodeGenerateException
()
{
super
();
}
public
CodeGenerateException
(
String
msg
)
{
super
(
msg
);
}
public
CodeGenerateException
(
String
msg
,
Throwable
cause
)
{
super
(
msg
,
cause
);
}
public
CodeGenerateException
(
Throwable
cause
)
{
super
(
cause
);
}
public
CodeGenerateException
(
String
message
,
Throwable
cause
,
boolean
enableSuppression
,
boolean
writableStackTrace
)
{
super
(
message
,
cause
,
enableSuppression
,
writableStackTrace
);
}
}
src/main/java/cn/quantgroup/codegenerator/util/FreemarkerTool.java
0 → 100644
View file @
ca6c9738
package
cn
.
quantgroup
.
codegenerator
.
util
;
import
freemarker.template.Configuration
;
import
freemarker.template.Template
;
import
freemarker.template.TemplateException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
java.io.File
;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.io.StringWriter
;
import
java.util.Map
;
/**
* freemarker tool
*
* @author xuxueli 2018-05-02 19:56:00
*/
@Component
public
class
FreemarkerTool
{
@Autowired
private
Configuration
configuration
;
/**
* process Template Into String
*
* @param template
* @param model
* @return
* @throws IOException
* @throws TemplateException
*/
public
String
processTemplateIntoString
(
Template
template
,
Object
model
)
throws
IOException
,
TemplateException
{
StringWriter
result
=
new
StringWriter
();
template
.
process
(
model
,
result
);
return
result
.
toString
();
}
/**
* process String
*
* @param templateName
* @param params
* @return
* @throws IOException
* @throws TemplateException
*/
public
String
processString
(
String
templateName
,
Map
<
String
,
Object
>
params
)
throws
IOException
,
TemplateException
{
Template
template
=
configuration
.
getTemplate
(
templateName
);
String
htmlText
=
processTemplateIntoString
(
template
,
params
);
return
htmlText
;
}
@PostConstruct
public
void
init
(){
processFile
();
}
public
void
processFile
(){
String
modelPath
=
System
.
getProperty
(
"user.dir"
)
+
"\\src\\main\\resources\\templates\\code-generator\\model"
;
String
servicePath
=
System
.
getProperty
(
"user.dir"
)
+
"\\src\\main\\resources\\templates\\code-generator\\service"
;
String
callbackPath
=
System
.
getProperty
(
"user.dir"
)
+
"\\src\\main\\resources\\templates\\code-generator\\callback"
;
String
eventHandlerPath
=
System
.
getProperty
(
"user.dir"
)
+
"\\src\\main\\resources\\templates\\code-generator\\eventhandler"
;
String
enumsPath
=
System
.
getProperty
(
"user.dir"
)
+
"\\src\\main\\resources\\templates\\code-generator\\enums"
;
String
utilPath
=
System
.
getProperty
(
"user.dir"
)
+
"\\src\\main\\resources\\templates\\code-generator\\util"
;
try
{
Map
<
String
,
String
>
root
=
XmlParseUtil
.
parseXml
();
createJavaFile
(
root
,
modelPath
,
"model"
);
createJavaFile
(
root
,
servicePath
,
"service"
);
createJavaFile
(
root
,
callbackPath
,
"callback"
);
createJavaFile
(
root
,
eventHandlerPath
,
"eventhandler"
);
createJavaFile
(
root
,
enumsPath
,
"enums"
);
createJavaFile
(
root
,
utilPath
,
"util"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
void
createJavaFile
(
Map
<
String
,
String
>
root
,
String
filePath
,
String
target
)
throws
Exception
{
File
file
=
new
File
(
filePath
);
if
(!
file
.
exists
()
||
!
file
.
isDirectory
()){
return
;
}
File
[]
files
=
file
.
listFiles
();
for
(
File
childFile
:
files
)
{
String
name
=
childFile
.
getName
();
Template
template
=
configuration
.
getTemplate
(
"code-generator/"
+
target
+
"/"
+
name
);
String
path
=
root
.
get
(
target
+
"Path"
);
File
directory
=
new
File
(
path
);
if
(!
directory
.
exists
()){
directory
.
mkdirs
();
}
File
javaFile
=
new
File
(
path
,
root
.
get
(
"prefix"
)+
name
.
replace
(
".ftl"
,
".java"
));
if
(!
javaFile
.
exists
())
javaFile
.
createNewFile
();
FileWriter
fw
=
new
FileWriter
(
javaFile
);
template
.
process
(
root
,
fw
);
fw
.
close
();
}
}
}
src/main/java/cn/quantgroup/codegenerator/util/StringUtils.java
0 → 100644
View file @
ca6c9738
package
cn
.
quantgroup
.
codegenerator
.
util
;
/**
* string tool
*
* @author xuxueli 2018-05-02 20:43:25
*/
public
class
StringUtils
{
/**
* 首字母大写
*
* @param str
* @return
*/
public
static
String
upperCaseFirst
(
String
str
)
{
return
str
.
substring
(
0
,
1
).
toUpperCase
()
+
str
.
substring
(
1
);
}
/**
* 首字母小写
*
* @param str
* @return
*/
public
static
String
lowerCaseFirst
(
String
str
)
{
//2019-2-10 解决StringUtils.lowerCaseFirst潜在的NPE异常@liutf
return
(
str
!=
null
&&
str
.
length
()>
1
)?
str
.
substring
(
0
,
1
).
toLowerCase
()
+
str
.
substring
(
1
):
""
;
}
/**
* 下划线,转换为驼峰式
*
* @param underscoreName
* @return
*/
public
static
String
underlineToCamelCase
(
String
underscoreName
)
{
StringBuilder
result
=
new
StringBuilder
();
if
(
underscoreName
!=
null
&&
underscoreName
.
trim
().
length
()
>
0
)
{
boolean
flag
=
false
;
for
(
int
i
=
0
;
i
<
underscoreName
.
length
();
i
++)
{
char
ch
=
underscoreName
.
charAt
(
i
);
if
(
"_"
.
charAt
(
0
)
==
ch
)
{
flag
=
true
;
}
else
{
if
(
flag
)
{
result
.
append
(
Character
.
toUpperCase
(
ch
));
flag
=
false
;
}
else
{
result
.
append
(
ch
);
}
}
}
}
return
result
.
toString
();
}
public
static
void
main
(
String
[]
args
)
{
}
}
src/main/java/cn/quantgroup/codegenerator/util/XmlParseUtil.java
0 → 100644
View file @
ca6c9738
package
cn
.
quantgroup
.
codegenerator
.
util
;
import
org.w3c.dom.Document
;
import
org.w3c.dom.Element
;
import
org.w3c.dom.Node
;
import
javax.xml.parsers.DocumentBuilder
;
import
javax.xml.parsers.DocumentBuilderFactory
;
import
java.io.File
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author Wang Xiangwei
* @version 2020/6/1
*/
public
class
XmlParseUtil
{
public
static
Map
<
String
,
String
>
parseXml
()
throws
Exception
{
Map
<
String
,
String
>
node
=
new
HashMap
<>();
File
xmlFile
=
new
File
(
System
.
getProperty
(
"user.dir"
),
"\\src\\main\\resources\\GenerateConf.xml"
);
DocumentBuilderFactory
builderFactory
=
DocumentBuilderFactory
.
newInstance
();
DocumentBuilder
builder
=
builderFactory
.
newDocumentBuilder
();
Document
doc
=
builder
.
parse
(
xmlFile
);
Element
rootElement
=
doc
.
getDocumentElement
();
//获取根元素
Node
author
=
rootElement
.
getElementsByTagName
(
"author"
).
item
(
0
);
String
authorValue
=
author
.
getFirstChild
().
getNodeValue
();
node
.
put
(
"author"
,
authorValue
);
Node
prefix
=
rootElement
.
getElementsByTagName
(
"prefix"
).
item
(
0
);
String
prefixValue
=
prefix
.
getFirstChild
().
getNodeValue
();
node
.
put
(
"prefix"
,
prefixValue
);
Node
model
=
rootElement
.
getElementsByTagName
(
"model"
).
item
(
0
);
String
modelPath
=
((
Element
)
model
).
getAttribute
(
"path"
);
String
modelPackage
=
((
Element
)
model
).
getElementsByTagName
(
"packageName"
).
item
(
0
).
getFirstChild
().
getNodeValue
();
node
.
put
(
"modelPath"
,
modelPath
);
node
.
put
(
"modelPackage"
,
modelPackage
);
Node
util
=
rootElement
.
getElementsByTagName
(
"util"
).
item
(
0
);
String
utilPath
=
((
Element
)
util
).
getAttribute
(
"path"
);
String
utilPackage
=
((
Element
)
util
).
getElementsByTagName
(
"packageName"
).
item
(
0
).
getFirstChild
().
getNodeValue
();
node
.
put
(
"utilPath"
,
utilPath
);
node
.
put
(
"utilPackage"
,
utilPackage
);
Node
enums
=
rootElement
.
getElementsByTagName
(
"enums"
).
item
(
0
);
String
enumsPath
=
((
Element
)
enums
).
getAttribute
(
"path"
);
String
enumsPackage
=
((
Element
)
enums
).
getElementsByTagName
(
"packageName"
).
item
(
0
).
getFirstChild
().
getNodeValue
();
node
.
put
(
"enumsPath"
,
enumsPath
);
node
.
put
(
"enumsPackage"
,
enumsPackage
);
Node
callback
=
rootElement
.
getElementsByTagName
(
"callback"
).
item
(
0
);
String
callbackPath
=
((
Element
)
callback
).
getAttribute
(
"path"
);
String
callbackPackage
=
((
Element
)
callback
).
getElementsByTagName
(
"packageName"
).
item
(
0
).
getFirstChild
().
getNodeValue
();
node
.
put
(
"callbackPath"
,
callbackPath
);
node
.
put
(
"callbackPackage"
,
callbackPackage
);
Node
service
=
rootElement
.
getElementsByTagName
(
"service"
).
item
(
0
);
String
servicePath
=
((
Element
)
service
).
getAttribute
(
"path"
);
String
servicePackage
=
((
Element
)
service
).
getElementsByTagName
(
"packageName"
).
item
(
0
).
getFirstChild
().
getNodeValue
();
node
.
put
(
"servicePath"
,
servicePath
);
node
.
put
(
"servicePackage"
,
servicePackage
);
Node
eventHandler
=
rootElement
.
getElementsByTagName
(
"eventHandler"
).
item
(
0
);
String
eventHandlerPath
=
((
Element
)
eventHandler
).
getAttribute
(
"path"
);
String
eventHandlerPackage
=
((
Element
)
eventHandler
).
getElementsByTagName
(
"packageName"
).
item
(
0
).
getFirstChild
().
getNodeValue
();
node
.
put
(
"eventhandlerPath"
,
eventHandlerPath
);
node
.
put
(
"eventhandlerPackage"
,
eventHandlerPackage
);
return
node
;
}
public
static
void
main
(
String
[]
args
)
{
try
{
Map
<
String
,
String
>
stringStringMap
=
XmlParseUtil
.
parseXml
();
System
.
out
.
println
(
stringStringMap
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
src/main/resources/GenerateConf.xml
0 → 100644
View file @
ca6c9738
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- 类前缀 用渠道拼音 用到service serviceImpl eventHandler 入参 出参中-->
<author>
WangXiangwei
</author>
<prefix>
TestChannel
</prefix>
<model
path=
"E:\testchannel\dto\model"
>
<packageName>
cn.quantgroup.clf.api.testchannel.dto.model
</packageName>
</model>
<util
path=
"E:\testchannel\dto\util"
>
<packageName>
cn.quantgroup.clf.api.testchannel.dto.util
</packageName>
</util>
<enums
path=
"E:\testchannel\dto\enums"
>
<packageName>
cn.quantgroup.clf.api.testchannel.dto.enums
</packageName>
</enums>
<callback
path=
"E:\testchannel\dto\callback"
>
<packageName>
cn.quantgroup.clf.api.testchannel.dto.callback
</packageName>
</callback>
<service
path=
"E:\testchannel\service"
>
<packageName>
cn.quantgroup.clf.api.testchannel.service
</packageName>
</service>
<eventHandler
path=
"E:\testchannel\eventhandler"
>
<packageName>
cn.quantgroup.clf.api.testchannel.eventhandler
</packageName>
</eventHandler>
</root>
src/main/resources/application.yml
0 → 100644
View file @
ca6c9738
server
:
port
:
1234
servlet
:
context-path
:
/generator
spring
:
application
:
name
:
spring-boot-code-generator
freemarker
:
request-context-attribute
:
request
suffix
:
.ftl
content-type
:
text/html
enabled
:
true
cache
:
false
charset
:
UTF-8
allow-request-override
:
false
expose-request-attributes
:
true
expose-session-attributes
:
true
expose-spring-macro-helpers
:
true
#template-loader-path: classpath:/templates/
src/main/resources/templates/code-generator/callback/ContractInfoNotice.ftl
0 → 100644
View file @
ca6c9738
package
${
callbackPackage
};
import
lombok
.
Data
;
import
java
.
util
.
List
;
/**
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
ContractInfoNotice
{
private
String
channelLoanNo
;
private
String
loanNo
;
private
List
<${
prefix
}
InoutPlanNotice
>
inoutPlanList
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/callback/InoutPlanNotice.ftl
0 → 100644
View file @
ca6c9738
package
${
callbackPackage
};
import
lombok
.
Data
;
import
java
.
math
.
BigDecimal
;
/**
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
InoutPlanNotice
{
private
Integer
leaseTime
;
/**
*
本次到账本金
*/
private
BigDecimal
receivedCorpus
;
/**
*
本次到账利息
*/
private
BigDecimal
receivedInterest
;
/**
*
本次到账罚息
*/
private
BigDecimal
receivedFine
;
/**
*
本次到账复利
*/
private
BigDecimal
receivedInterestRate
;
/**
*
本次到账总金额
*/
private
BigDecimal
receivedTotalAmount
;
/**
*
本次到账额外费用
*/
private
BigDecimal
extraFee
;
/**
*
额外费用信息
*/
private
String
extraInfo
;
}
src/main/resources/templates/code-generator/callback/QueryCreditApplyCallback.ftl
0 → 100644
View file @
ca6c9738
package
${
callbackPackage
};
import
cn
.
quantgroup
.
cashloanflow
.
entity
.
cashloanflow
.
LoanOrderMapping
;
import
cn
.
quantgroup
.
cashloanflow
.
entity
.
cashloanflow
.
UserMapping
;
import
cn
.
quantgroup
.
cashloanflow
.
model
.
standard
.
response
.
credit
.
QueryCreditStatusResponseModel
;
import
cn
.
quantgroup
.
cashloanflow
.
util
.
DateUtil
;
import
lombok
.
Data
;
import
org
.
apache
.
commons
.
lang3
.
StringUtils
;
import
${
enumsPackage
}.${
prefix
}
CreditResultEnum
;
import
java
.
math
.
BigDecimal
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
List
;
/**
*
授信结果回调
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryCreditApplyCallback
{
private
String
channelUserId
;
private
String
channelOrderNo
;
private
String
applyNo
;
private
${
prefix
}
CreditResultEnum
creditResult
;
/**
*
授信总金额
(
元
)
*/
private
BigDecimal
creditAmount
;
/**
*
授信剩余可用额度
(
元
)
*/
private
BigDecimal
creditAvailable
;
/**
*
分期规则
,
还款方式分期
(
REPAYMENT_METHOD
)
*/
private
String
termLabelsRule
;
private
List
<${
prefix
}
RepaymentMethodTermLabel
>
repaymentMethodTermLabels
;
/**
*
授信额度失效日期如
:
"2020-03-05"
*/
private
String
limitExpireDate
;
/**
*
用户授信情况描述,若”授信拒绝“则显示拒绝原因
*/
private
String
creditInfo
;
/**
*
下次申请时间(如
yyyy
-
MM
-
dd
)
,
如果额度申请结果为拒绝需要提供
*/
private
String
nextApplyTime
;
public
static
${
prefix
}
QueryCreditApplyCallback
getSuccessResult
(
LoanOrderMapping
orderMapping
,
UserMapping
userMapping
,
QueryCreditStatusResponseModel
info
)
{
${
prefix
}
QueryCreditApplyCallback
result
=
new
${
prefix
}
QueryCreditApplyCallback
();
result
.
setChannelUserId
(
userMapping
.
getChannelUserId
());
result
.
setChannelOrderNo
(
orderMapping
.
getChannelOrderNo
());
result
.
setApplyNo
(
orderMapping
.
getApplyNo
());
result
.
setCreditResult
(${
prefix
}
CreditResultEnum
.
CREDIT_NORMAL
);
result
.
setCreditAmount
(
StringUtils
.
isBlank
(
info
.
getApprovalAmount
())
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
info
.
getApprovalAmount
()));
result
.
setCreditAvailable
(
StringUtils
.
isBlank
(
info
.
getApprovalAmount
())
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
info
.
getApprovalAmount
()));
result
.
setTermLabelsRule
(
"REPAYMENT_METHOD"
);
List
<${
prefix
}
RepaymentMethodTermLabel
>
list
=
new
ArrayList
<>();
${
prefix
}
RepaymentMethodTermLabel
methodTermLabel
=
new
${
prefix
}
RepaymentMethodTermLabel
();
methodTermLabel
.
setTermLabelsRuleValue
(
"EQUAL_RENT"
);
String
monthlyInterestRate
=
info
.
getMonthlyInterestRate
();
methodTermLabel
.
setDailyRate
(
StringUtils
.
isBlank
(
monthlyInterestRate
)
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
monthlyInterestRate
).
divide
(
new
BigDecimal
(
"30"
),
4
,
BigDecimal
.
ROUND_HALF_UP
));
methodTermLabel
.
setMonthlyRate
(
StringUtils
.
isBlank
(
monthlyInterestRate
)
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
monthlyInterestRate
).
setScale
(
4
,
BigDecimal
.
ROUND_HALF_UP
));
methodTermLabel
.
setYearlyRate
(
StringUtils
.
isBlank
(
monthlyInterestRate
)
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
monthlyInterestRate
).
multiply
(
new
BigDecimal
(
"12"
)).
setScale
(
4
,
BigDecimal
.
ROUND_HALF_UP
));
methodTermLabel
.
setLoanTerm
(
info
.
getApprovalTerm
());
list
.
add
(
methodTermLabel
);
result
.
setRepaymentMethodTermLabels
(
list
);
result
.
setLimitExpireDate
(
DateUtil
.
format
(
info
.
getValidDate
(),
DateUtil
.
YYYY_MM_DD
));
return
result
;
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/callback/QueryLoanCallback.ftl
0 → 100644
View file @
ca6c9738
package
${
callbackPackage
};
import
lombok
.
Data
;
import
${
enumsPackage
}.${
prefix
}
LoanApplyStatusEnum
;
/**
*
借款结果回调
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryLoanCallback
{
private
String
channelUserId
;
private
String
loanNo
;
private
String
channelLoanNo
;
private
${
prefix
}
LoanApplyStatusEnum
loanApplyStatus
;
private
String
applyResult
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/callback/QueryRepayCallback.ftl
0 → 100644
View file @
ca6c9738
package
${
callbackPackage
};
import
cn
.
quantgroup
.
cashloanflow
.
entity
.
cashloanflow
.
UserMapping
;
import
cn
.
quantgroup
.
cashloanflow
.
model
.
xyqbmq
.
QuotaNoticeExtraDto
;
import
cn
.
quantgroup
.
loanflow
.
notified
.
event
.
model
.
RepaySuccessEvent
;
import
cn
.
quantgroup
.
loanflow
.
repay
.
model
.
RepaymentPlanItem
;
import
lombok
.
Data
;
import
${
enumsPackage
}.${
prefix
}
RepayStatusEnum
;
import
${
enumsPackage
}.${
prefix
}
RepayTypeEnum
;
import
cn
.
quantgroup
.
cashloanflow
.
service
.
callback
.
loan
.
state
.
guomei
.
RepaymentType
;
import
java
.
math
.
BigDecimal
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
List
;
/**
*
还款回调
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryRepayCallback
{
private
String
channelUserId
;
private
String
businessFlowNo
;
private
String
channelRepayFlowNo
;
private
BigDecimal
repaymentAmount
;
private
${
prefix
}
RepayStatusEnum
repayStatus
;
private
String
failMsg
;
private
String
failCode
;
private
${
prefix
}
RepayTypeEnum
repayType
;
/**
*
实际还款时间
(
金额实际到账的时间
,
精确到时分秒
)
格式如:
yyyy
-
MM
-
dd
HH
:
mm
:
ss
成功的时候必填
*/
private
String
actualTime
;
private
List
<${
prefix
}
ContractInfoNotice
>
contractList
;
public
static
${
prefix
}
QueryRepayCallback
getSuccessResult
(
String
channelUserId
,
RepaySuccessEvent
repaySuccessEvent
,
String
channelLoanNo
,
String
channelRepayFlowNo
,
List
<
RepaymentPlanItem
>
repaymentPlans
)
{
Long
loanId
=
repaySuccessEvent
.
getLoanId
();
String
xyqbRepayFlowNo
=
repaySuccessEvent
.
getBusinessFlowNo
();
BigDecimal
actualRepayment
=
repaySuccessEvent
.
getActualRepayment
();
String
repaymentReceivedAt
=
repaySuccessEvent
.
getRepaymentReceivedAt
();
${
prefix
}
QueryRepayCallback
callback
=
new
${
prefix
}
QueryRepayCallback
();
callback
.
setChannelUserId
(
channelUserId
);
callback
.
setChannelRepayFlowNo
(
channelRepayFlowNo
);
callback
.
setBusinessFlowNo
(
xyqbRepayFlowNo
);
callback
.
setRepaymentAmount
(
actualRepayment
);
callback
.
setRepayStatus
(${
prefix
}
RepayStatusEnum
.
SUCCESS
);
callback
.
setActualTime
(
repaymentReceivedAt
);
callback
.
setRepayType
(
getRepayType
(
repaySuccessEvent
.
getRepayType
()));
List
<${
prefix
}
ContractInfoNotice
>
contractInfoNotices
=
new
ArrayList
<>();
${
prefix
}
ContractInfoNotice
notice
=
new
${
prefix
}
ContractInfoNotice
();
notice
.
setChannelLoanNo
(
channelLoanNo
);
notice
.
setLoanNo
(
String
.
valueOf
(
loanId
));
List
<${
prefix
}
InoutPlanNotice
>
inoutPlanNotices
=
new
ArrayList
<>();
repaymentPlans
.
forEach
(
i
->
{
${
prefix
}
InoutPlanNotice
planNotice
=
new
${
prefix
}
InoutPlanNotice
();
planNotice
.
setLeaseTime
(
i
.
getPeriodNo
());
planNotice
.
setReceivedCorpus
(
i
.
getActPrincipal
());
planNotice
.
setReceivedInterest
(
i
.
getActInterest
());
planNotice
.
setReceivedFine
(
i
.
getActOverdueInterest
());
planNotice
.
setReceivedTotalAmount
(
i
.
getRepayAmount
());
planNotice
.
setExtraFee
(
i
.
getActServiceFee
());
planNotice
.
setReceivedInterestRate
(
BigDecimal
.
ZERO
);
inoutPlanNotices
.
add
(
planNotice
);
});
notice
.
setInoutPlanList
(
inoutPlanNotices
);
contractInfoNotices
.
add
(
notice
);
callback
.
setContractList
(
contractInfoNotices
);
return
callback
;
}
private
static
${
prefix
}
RepayTypeEnum
getRepayType
(
RepaymentType
koalaRepay
)
{
switch
(
koalaRepay
){
case
COMMON
:
return
${
prefix
}
RepayTypeEnum
.
ACTIVE
;
case
OFFLINE_REPAY
:
return
${
prefix
}
RepayTypeEnum
.
OFFLINE
;
case
SELF_WITHHOLD
:
return
${
prefix
}
RepayTypeEnum
.
BATCH
;
default
:
return
${
prefix
}
RepayTypeEnum
.
OTHER
;
}
}
}
src/main/resources/templates/code-generator/callback/QuotaExpired.ftl
0 → 100644
View file @
ca6c9738
package
${
callbackPackage
};
import
cn
.
quantgroup
.
cashloanflow
.
model
.
xyqbmq
.
QuotaNoticeExtraDto
;
import
lombok
.
Data
;
/**
*
额度失效
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QuotaExpired
{
private
QuotaNoticeExtraDto
extraDto
;
private
String
channelUserId
;
private
Long
channelId
;
private
Long
limitExpireDate
;
}
src/main/resources/templates/code-generator/callback/QuotaExpiredCallback.ftl
0 → 100644
View file @
ca6c9738
package
${
callbackPackage
};
import
lombok
.
Data
;
import
${
enumsPackage
}.${
prefix
}
CreditStatusCallBackEnum
;
import
java
.
math
.
BigDecimal
;
/**
*
额度失效通知
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QuotaExpiredCallback
{
private
String
channelUserId
;
private
BigDecimal
creditAmount
;
private
${
prefix
}
CreditStatusCallBackEnum
creditStatus
;
private
String
limitExpireDate
;
}
src/main/resources/templates/code-generator/callback/RepaymentMethodTermLabel.ftl
0 → 100644
View file @
ca6c9738
package
${
callbackPackage
};
import
lombok
.
Data
;
import
java
.
math
.
BigDecimal
;
/**
*
分期详情
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
RepaymentMethodTermLabel
{
/**
*
分期规则
,
EQUAL_RENT
:
等额本息
;
*/
private
String
termLabelsRuleValue
;
/**
*
日利率
(
小数
)
*/
private
BigDecimal
dailyRate
;
/**
*
年利率
(
小数
)
*/
private
BigDecimal
yearlyRate
;
/**
*
月利率
(
小数
)
*/
private
BigDecimal
monthlyRate
;
/**
*
期数
,
逗号分隔
如
6
,
9
*/
private
String
loanTerm
;
}
src/main/resources/templates/code-generator/enums/AgreementTypeEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
枚举类型,包括:
*
CREDIT
(
授信阶段
)
、
*
BANKCARD
(
绑卡阶段
)
、
*
APPLY
(进入准备借款阶段之前)、
*
LOAN_REDAY
(借款准备阶段)、
*
LOAN
(
已借款阶段
)
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
AgreementTypeEnum
{
CREDIT
,
BANKCARD
,
APPLY
,
LOAN_REDAY
,
LOAN
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/ChargeOffStatusEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
还款计划状态
*
UN_CHARGE_OFF
:
未还款
,
*
ALL_CHARGE_OFF
:
已还款
,
*
PART_OF_CHARGE_OFF
:
部分还款
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
ChargeOffStatusEnum
{
UN_CHARGE_OFF
,
ALL_CHARGE_OFF
,
PART_OF_CHARGE_OFF
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/ContractStatusEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
合同状态
*
LOAN_FALL
(
借款申请同步失败
,
放款失败都返回这个值
):
借款失败
,
*
EXECUTING
:
履行中
(
放款已经成功到借据结清之间
)
,
*
LOANING
:
借款中
(
借款申请成功发起到借款放款成功之间
),
*
SETTLE
:
结清
(
借据结清
)
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
ContractStatusEnum
{
LOAN_FALL
,
EXECUTING
,
LOANING
,
SETTLE
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/CreditResultEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
用户当前授信状态
枚举类型,
*
包括“
CREDIT_APPROVAL
:审批中”、
*
“
CREDIT_FROZEN
已冻结”、
*
“
CREDIT_INVALID
:
已失效、过期”、
*
“
CREDIT_NORMAL
正常使用,
*
REFUSE
拒绝
)
”
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
CreditResultEnum
{
/**
*
审批中
*/
CREDIT_APPROVAL
,
/**
*
已冻结
*/
CREDIT_FROZEN
,
/**
*
已失效、过期
*/
CREDIT_INVALID
,
/**
*
正常使用
*/
CREDIT_NORMAL
,
/**
*
拒绝
*/
REFUSE
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/CreditStatusCallBackEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
用户额度状态枚举值:冻结(
FROZEN
)、过期(
EXPIRED
)、正常
(
NORMAL
)
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
CreditStatusCallBackEnum
{
/**
*
冻结
*/
FROZEN
,
/**
*
过期
*/
EXPIRED
,
/**
*
正常
*/
NORMAL
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/LoanApplyStatusEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
借款申请结果
*
SUCCESS
:成功
,
FAIL
:失败
,
REFUSE
:拒绝,申请中
APPLYING
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
LoanApplyStatusEnum
{
SUCCESS
,
FAIL
,
REFUSE
,
APPLYING
;
}
src/main/resources/templates/code-generator/enums/LoanPurposesEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
import
cn
.
quantgroup
.
cashloanflow
.
model
.
LoanDemandPurposeEnum
;
import
lombok
.
Getter
;
/**
*
金山用户借款用途列表
*
枚举类型
purpose01
:
"个人日常消费"
;
purpose02
:
"装修"
;
purpose03
:
"旅游"
;
purpose04
:
"医疗"
;
purpose05
:
"教育"
;
purpose100
:
"其他消费"
.
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
LoanPurposesEnum
{
/**
*
"个人日常消费"
*/
purpose01
(
"个人日常消费"
),
/**
*
"装修"
*/
purpose02
(
"装修"
),
/**
*
"旅游"
*/
purpose03
(
"旅游"
),
/**
*
"医疗"
*/
purpose04
(
"医疗"
),
/**
*
"教育"
*/
purpose05
(
"教育"
),
/**
*
"其他消费"
*/
purpose100
(
"其他消费"
);
@
Getter
private
String
value
;
${
prefix
}
LoanPurposesEnum
(
String
value
)
{
this
.
value
=
value
;
}
public
static
LoanDemandPurposeEnum
getKoaLaPurpose
(${
prefix
}
LoanPurposesEnum
loanPurposesEnum
)
{
switch
(
loanPurposesEnum
)
{
case
purpose01
:
return
LoanDemandPurposeEnum
.
PERSONAL_DAILY_CONSUMPTION
;
case
purpose02
:
return
LoanDemandPurposeEnum
.
FAMILY_DECORATION
;
case
purpose03
:
return
LoanDemandPurposeEnum
.
TOURIST_HOLIDAY
;
case
purpose04
:
return
LoanDemandPurposeEnum
.
HEALTH_CARE
;
case
purpose05
:
return
LoanDemandPurposeEnum
.
EDUCATION_AND_TRAINING
;
case
purpose100
:
return
LoanDemandPurposeEnum
.
PERSONAL_DAILY_CONSUMPTION
;
default
:
return
LoanDemandPurposeEnum
.
PERSONAL_DAILY_CONSUMPTION
;
}
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/OverdueStatusEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
逾期状态
:
*
NORMAL
:
正常
,
*
OVERDUE
:
逾期
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
OverdueStatusEnum
{
NORMAL
,
OVERDUE
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/RepayStatusEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
还款结果(枚举值:
SUCCESS
:成功
,
FAIL
:失败,处理中
:
APPLYING
)
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
RepayStatusEnum
{
SUCCESS
,
FAIL
,
APPLYING
;
/**
*
根据核心系统返回的还款状态转为金山还款状态
*
*
@
param
repayStatus
*
@
return
*/
public
static
${
prefix
}
RepayStatusEnum
getStatusByRepayStatus
(
String
repayStatus
)
{
//
*
repayStatus
:
0
未还款
,
1
还款中
(
发起成功
),
2
失败
,
3
还款成功
switch
(
repayStatus
)
{
case
"0"
:
case
"2"
:
return
FAIL
;
case
"1"
:
return
APPLYING
;
case
"3"
:
return
SUCCESS
;
default
:
return
null
;
}
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/RepayTypeEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
还款类型(主动还款:
ACTIVE
,批量扣款:
BATCH
,线下还款:
OFFLINE
,其他:
OTHER
)
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
RepayTypeEnum
{
ACTIVE
,
BATCH
,
OFFLINE
,
OTHER
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/RepaymentStatusEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
import
lombok
.
Getter
;
/**
*
0
(
未还款
)
、
2
(
已逾期
)
、
3
(
已还款
)
",
*
* @author ${author}
* @date ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
public enum ${prefix}RepaymentStatusEnum {
NO_REPAY(0),
OVERDUE(2),
OK_REPAY(3);
@Getter
private int value;
${prefix}RepaymentStatusEnum(int value) {
this.value = value;
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/ShowTypeEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
展示类型,枚举型,包括“弹框展示
:
DIALOG
”和“勾选:
HOOK_SHOW
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
ShowTypeEnum
{
DIALOG
,
HOOK_SHOW
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/SignStatusEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
绑卡状态:
*
SUCCESS
:成功
;
*
FAIL
:
失败
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
SignStatusEnum
{
SUCCESS
,
FAIL
}
\ No newline at end of file
src/main/resources/templates/code-generator/enums/UserAccessResultEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
enumsPackage
};
/**
*
准入接口返回值
*
包括
“
CONTINUE
”
和
“
BREAK
”
两种返回结果。
*
CONTINUE
代表该用户可以继续进行后面的注册等操作,
*
BREAK
代表该用户不予以接受,不能进行后续的注册等操作
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
UserAccessResultEnum
{
CONTINUE
,
BREAK
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/eventhandler/EventHandler.ftl
0 → 100644
View file @
ca6c9738
This diff is collapsed.
Click to expand it.
src/main/resources/templates/code-generator/model/ApplyLoanRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
import
${
enumsPackage
}.${
prefix
}
LoanPurposesEnum
;
import
java
.
math
.
BigDecimal
;
/**
*
提现入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
ApplyLoanRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道订单号
*/
private
String
channelOrderNo
;
/**
*
绑卡
Id
*/
private
String
bindId
;
/**
*
借款用途
*/
private
${
prefix
}
LoanPurposesEnum
loanPurpose
;
/**
*
借款金额
*/
private
BigDecimal
loanAmount
;
/**
*
借款期数
*/
private
Integer
loanTerm
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/ApplyLoanResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
提现出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
ApplyLoanResult
{
private
Long
loanNo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/BankInfo.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
java
.
math
.
BigDecimal
;
import
lombok
.
Data
;
/**
*
查询还款结果入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
BankInfo
{
private
String
bankCode
;
private
String
bankName
;
private
BigDecimal
daysLimit
;
private
BigDecimal
singleLimit
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/BindBankCardSmsRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
查询支持银行卡入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
BindBankCardSmsRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道订单号
*/
private
String
channelOrderNo
;
/**
*
银行编码
*/
private
String
bankCode
;
/**
*
手机号
*/
private
String
phone
;
/**
*
银行卡号
*/
private
String
bankCardNo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/BindBankCardSmsResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
AllArgsConstructor
;
import
lombok
.
Data
;
/**
*
查询支持银行卡出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
@
AllArgsConstructor
public
class
${
prefix
}
BindBankCardSmsResult
{
private
String
verifyId
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/CreditApplyRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
cn
.
quantgroup
.
cashloanflow
.
model
.
LoanDemandPurposeEnum
;
import
cn
.
quantgroup
.
cashloanflow
.
model
.
standard
.
apply
.
StandardApplyLoanData
;
import
cn
.
quantgroup
.
cashloanflow
.
model
.
standard
.
apply
.
StandardpicModelTypeEnum
;
import
cn
.
quantgroup
.
cashloanflow
.
util
.
RegisterFrom
;
import
cn
.
quantgroup
.
cashloanflow
.
util
.
Utils
;
import
cn
.
quantgroup
.
loanflow
.
risk
.
model
.
RiskInfo
;
import
cn
.
quantgroup
.
loanflow
.
risk
.
model
.
StandardOcrData
;
import
cn
.
quantgroup
.
loanflow
.
user
.
model
.
representation
.
SysUserContact
;
import
cn
.
quantgroup
.
loanflow
.
user
.
model
.
representation
.
SysUserDetail
;
import
cn
.
quantgroup
.
mo
.
infrastructure
.
constants
.
RiskLiveTypeEnum
;
import
cn
.
quantgroup
.
user
.
enums
.*;
import
lombok
.
Data
;
import
org
.
apache
.
commons
.
lang3
.
StringUtils
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
Date
;
import
java
.
util
.
List
;
import
java
.
util
.
Map
;
/**
*
通用进件入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
CreditApplyRequest
{
/**
*
渠道请求时间
默认当前时间
*/
private
Date
applyTime
=
new
Date
();
/**
*
渠道
*/
private
RegisterFrom
registerFrom
;
/**
*
user
section
*/
/**
*
姓名
*/
private
String
userName
;
/**
*
手机号
*/
private
String
phoneNo
;
/**
*
身份证
*/
private
String
idNo
;
/**
*
渠道
userId
*/
private
String
channelUserId
;
/**
*
qq
*/
private
String
qq
;
/**
*
email
*/
private
String
email
;
/**
*
user
ext
info
section
*/
/**
*
收入方式
*/
private
IncomeEnum
incomeEnum
;
/**
*
收入范围
*/
private
IncomeRangeEnum
incomeRangeEnum
;
/**
*
职业
*/
private
OccupationEnum
occupationEnum
;
/**
*
教育学历
*/
private
EducationEnum
educationEnum
;
/**
*
是否有车
*/
private
Boolean
hasCar
;
/**
*
是否有社保
*/
private
Boolean
hasSocialSecurity
;
/**
*
是否有房
*/
private
Boolean
hasHouse
;
/**
*
是否有信用卡
*/
private
Boolean
hasCreditCard
;
/**
*
婚姻状态
*/
private
MaritalStatus
marryStatus
;
/**
*
联系人
*/
private
List
<
SysUserContact
>
contacts
;
/**
*
地址
省市区
*/
private
String
addressLocation
;
/**
*
省市区之后的详细地址
*/
private
String
addrDetail
;
/**
*
带有省市区
+
省市区之后的详细地址
全部详情地址
*/
private
String
singleAllAddress
;
/**
*
区
code
码,
2018
年
*/
private
String
districtCode
;
/**
*
order
section
*/
/**
*
渠道申请订单号
*/
private
String
channelOrderNo
;
/**
*
渠道提现单号,多订单产品需要关注
*/
private
String
channelPaymentNo
;
/**
*
渠道申请金额
*/
private
String
loanAmount
;
/**
*
借款期限
*/
private
Integer
loanTerm
;
/**
*
期限类型
(
1
:
按天
;
2
:
按月
;
3
:
按年
;)
默认按月
*/
private
Integer
termType
=
2
;
/**
*
借款意愿
*/
private
LoanDemandPurposeEnum
purposeEnum
;
/**
*
订单扩展信息
**/
private
Map
<
String
,
Object
>
orderExtData
;
/**
*
risk
info
section
*
这部分数据透传
to
spiderCenter
*/
/**
*
风控数据
**/
private
RiskInfo
riskInfo
;
public
${
prefix
}
CreditApplyRequest
()
{
}
/**
*
标准
API
转换
*
*
@
param
registerFrom
*
@
param
data
*/
public
static
ApplyLoanData
getApplyLoanData
(${
prefix
}
CreditApplyRequest
data
)
{
ApplyLoanData
applyLoanData
=
new
ApplyLoanData
();
applyLoanData
.
setRegisterFrom
(
RegisterFrom
.
JINSHAN
)
applyLoanData
.
setUserName
(
data
.
getUserName
());
applyLoanData
.
setPhone
(
data
.
getPhone
());
applyLoanData
.
setIdNo
(
data
.
getIdNo
());
applyLoanData
.
setChannelUserId
(
data
.
getChannelUserId
());
applyLoanData
.
setQq
(
data
.
getQq
());
applyLoanData
.
setEmail
(
data
.
getEmail
());
applyLoanData
.
setIncomeEnum
(
data
.
getIncomeEnum
());
applyLoanData
.
setIncomeRangeEnum
(
data
.
getIncomeRangeEnum
());
applyLoanData
.
setOccupationEnum
(
data
.
getOccupationEnum
());
applyLoanData
.
setEducationEnum
(
data
.
getEducationEnum
());
applyLoanData
.
setHasCar
(
data
.
getHasCar
());
applyLoanData
.
setHasSocialSecurity
(
data
.
getHasSocialSecurity
());
applyLoanData
.
setHasHouse
(
data
.
getHasHouse
());
applyLoanData
.
setHasCreditCard
(
data
.
getHasCreditCard
());
applyLoanData
.
setMarryStatus
(
data
.
getMarryStatus
());
applyLoanData
.
setContacts
(
data
.
getContacts
());
applyLoanData
.
setAddressLocation
(
data
.
getAddressLocation
());
applyLoanData
.
setAddrDetail
(
data
.
getAddrDetail
());
applyLoanData
.
setSingleAllAddress
(
data
.
getSingleAllAddress
());
applyLoanData
.
setDistrictCode
(
data
.
getDistrictCode
());
applyLoanData
.
setChannelOrderNo
(
data
.
getChannelOrderNo
());
applyLoanData
.
setChannelPaymentNo
(
data
.
getChannelPaymentNo
());
applyLoanData
.
setLoanAmount
(
data
.
getLoanAmount
());
applyLoanData
.
setLoanTerm
(
data
.
getLoanTerm
());
applyLoanData
.
setTermType
(
data
.
getTermType
());
applyLoanData
.
setPurposeEnum
(
data
.
getPurposeEnum
());
applyLoanData
.
setOrderExtData
(
data
.
getOrderExtData
());
applyLoanData
.
setRiskInfo
(
data
.
getRiskInfo
());
}
}
src/main/resources/templates/code-generator/model/CreditApplyResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
进件出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
CreditApplyResult
{
private
String
applyNo
;
public
${
prefix
}
CreditApplyResult
(){}
public
${
prefix
}
CreditApplyResult
(
String
applyNo
){
this
.
applyNo
=
applyNo
;
}
}
src/main/resources/templates/code-generator/model/QueryCreditApplyRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
查询授信结果入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryCreditApplyRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道订单号
*/
private
String
channelOrderNo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QueryCreditApplyResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
${
enumsPackage
}.${
prefix
}
CreditResultEnum
;
import
${
callbackPackage
}.${
prefix
}
RepaymentMethodTermLabel
;
import
lombok
.
Data
;
import
cn
.
quantgroup
.
cashloanflow
.
model
.
standard
.
response
.
credit
.
CreditStatusEnum
;
import
cn
.
quantgroup
.
cashloanflow
.
model
.
standard
.
response
.
credit
.
QueryCreditStatusResponseModel
;
import
cn
.
quantgroup
.
cashloanflow
.
util
.
DateUtil
;
import
cn
.
quantgroup
.
clf
.
api
.
jinshan
.
util
.
JinShanUtil
;
import
lombok
.
Data
;
import
org
.
apache
.
commons
.
lang3
.
StringUtils
;
import
java
.
math
.
BigDecimal
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
List
;
/**
*
查询授信结果入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryCreditApplyResult
{
private
${
prefix
}
CreditResultEnum
creditResult
;
/**
*
授信总金额
(
元
)
*/
private
BigDecimal
creditAmount
;
/**
*
授信剩余可用额度
(
元
)
*/
private
BigDecimal
creditAvailable
;
/**
*
分期规则
,
还款方式分期
(
REPAYMENT_METHOD
)
*/
private
String
termLabelsRule
;
private
List
<${
prefix
}
RepaymentMethodTermLabel
>
repaymentMethodTermLabels
;
/**
*
授信额度失效日期如
:
"2020-03-05"
*/
private
String
creditExpireDate
;
/**
*
用户授信情况描述,若”授信拒绝“则显示拒绝原因
*/
private
String
creditInfo
;
/**
*
下次申请时间(如
yyyy
-
MM
-
dd
)
,
如果额度申请结果为拒绝需要提供
*/
private
String
nextApplyTime
;
public
static
${
prefix
}
QueryCreditApplyResult
getSuccessResult
(
QueryCreditStatusResponseModel
info
)
{
${
prefix
}
QueryCreditApplyResult
result
=
new
${
prefix
}
QueryCreditApplyResult
();
result
.
setCreditResult
(${
prefix
}
CreditResultEnum
.
CREDIT_NORMAL
);
//
当授信单已经提现后,授信剩余可用额度为
0
if
(
CreditStatusEnum
.
WITHDRAW
.
getValue
().
equals
(
info
.
getCreditStatus
()))
{
result
.
setCreditAmount
(
BigDecimal
.
ZERO
);
}
else
{
result
.
setCreditAmount
(
StringUtils
.
isBlank
(
info
.
getApprovalAmount
())
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
info
.
getApprovalAmount
()));
}
result
.
setCreditAvailable
(
StringUtils
.
isBlank
(
info
.
getApprovalAmount
())
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
info
.
getApprovalAmount
()));
result
.
setTermLabelsRule
(
JinShanUtil
.
TERM_LABELS_RULE
);
List
<${
prefix
}
RepaymentMethodTermLabel
>
list
=
new
ArrayList
<>();
${
prefix
}
RepaymentMethodTermLabel
methodTermLabel
=
new
${
prefix
}
RepaymentMethodTermLabel
();
methodTermLabel
.
setTermLabelsRuleValue
(
"EQUAL_RENT"
);
String
monthlyInterestRate
=
info
.
getMonthlyInterestRate
();
methodTermLabel
.
setDailyRate
(
StringUtils
.
isBlank
(
monthlyInterestRate
)
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
monthlyInterestRate
).
divide
(
new
BigDecimal
(
"30"
),
4
,
BigDecimal
.
ROUND_HALF_UP
));
methodTermLabel
.
setMonthlyRate
(
StringUtils
.
isBlank
(
monthlyInterestRate
)
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
monthlyInterestRate
).
setScale
(
4
,
BigDecimal
.
ROUND_HALF_UP
));
methodTermLabel
.
setYearlyRate
(
StringUtils
.
isBlank
(
monthlyInterestRate
)
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
monthlyInterestRate
).
multiply
(
new
BigDecimal
(
"12"
)).
setScale
(
4
,
BigDecimal
.
ROUND_HALF_UP
));
methodTermLabel
.
setLoanTerm
(
info
.
getApprovalTerm
());
list
.
add
(
methodTermLabel
);
result
.
setRepaymentMethodTermLabels
(
list
);
result
.
setCreditExpireDate
(
DateUtil
.
format
(
info
.
getValidDate
(),
DateUtil
.
YYYY_MM_DD
));
return
result
;
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QueryLoanRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
查询还款结果入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryLoanRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道借款订单号
*/
private
String
channelLoanNo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QueryLoanResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
cn
.
quantgroup
.
cashloanflow
.
util
.
DateUtil
;
import
cn
.
quantgroup
.
cashloanflow
.
util
.
RegisterFrom
;
import
cn
.
quantgroup
.
loanflow
.
order
.
model
.
OrderStatus
;
import
lombok
.
Data
;
import
lombok
.
extern
.
slf4j
.
Slf4j
;
/**
*
查询还款结果入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
@
Slf4j
public
class
${
prefix
}
QueryLoanResult
{
private
String
loanApplyStatus
;
private
String
applyResult
;
private
String
loanQueryTransNo
;
public
${
prefix
}
QueryLoanResult
(
OrderStatus
orderStatus
)
{
this
.
loanQueryTransNo
=
RegisterFrom
.
JINSHAN
.
getValue
()
+
DateUtil
.
get13LongTimeFormLong
();
log
.
info
(
"借款申请的结果返回的查询交易流水号={}"
,
loanQueryTransNo
);
switch
(
orderStatus
.
getStatus
())
{
case
WITHDRAW
:
case
PAY_ING
:
this
.
loanApplyStatus
=
"APPLYING"
;
break
;
case
FUND_SUCC
:
case
ALL_REPAID
:
this
.
loanApplyStatus
=
"SUCCESS"
;
break
;
case
FUND_FAIL
:
this
.
loanApplyStatus
=
"FAIL"
;
break
;
default
:
break
;
}
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QueryLoanTrialRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
借款试算入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryLoanTrialRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道订单号
*/
private
String
channelOrderNo
;
/**
*
借款金额
*/
private
String
loanAmount
;
/**
*
借款期数
*/
private
String
loanTerm
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QueryLoanTrialResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
cn
.
quantgroup
.
cashloanflow
.
util
.
DateUtil
;
import
cn
.
quantgroup
.
clf
.
api
.
jinshan
.
util
.
JinShanUtil
;
import
cn
.
quantgroup
.
loanflow
.
repay
.
model
.
representation
.
TrialRepaymentRepresentation
;
import
lombok
.
Data
;
import
java
.
math
.
BigDecimal
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
List
;
/**
*
借款试算出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryLoanTrialResult
{
/**
*
息费总和
*/
private
BigDecimal
receivableTotalAmount
;
/**
*
利息总和
*/
private
BigDecimal
receivableInterestAmount
;
private
List
<${
prefix
}
TrialInoutPlan
>
trialInoutPlanList
;
public
static
${
prefix
}
QueryLoanTrialResult
getCoverResult
(
TrialRepaymentRepresentation
data
)
{
${
prefix
}
QueryLoanTrialResult
result
=
new
${
prefix
}
QueryLoanTrialResult
();
result
.
setReceivableInterestAmount
(
data
.
getTotalInterest
());
result
.
setReceivableTotalAmount
(
data
.
getTotalLoanAmount
().
add
(
data
.
getTotalInterest
().
add
(
data
.
getServiceFee
())));
result
.
setTrialInoutPlanList
(
getTrialInoutPlanList
(
data
.
getRepaymentPlans
()));
return
result
;
}
private
static
List
<${
prefix
}
TrialInoutPlan
>
getTrialInoutPlanList
(
List
<
TrialRepaymentRepresentation
.
TrialRepaymentPlan
>
repaymentPlans
)
{
List
<${
prefix
}
TrialInoutPlan
>
list
=
new
ArrayList
<>();
repaymentPlans
.
forEach
(
i
->{
${
prefix
}
TrialInoutPlan
plan
=
new
${
prefix
}
TrialInoutPlan
();
plan
.
setLeaseTime
(
i
.
getPeriodNo
());
plan
.
setRepayDate
(
DateUtil
.
format
(
i
.
getDueTime
(),
DateUtil
.
YYYY_MM_DD
));
plan
.
setTermAmount
(
i
.
getRequiredRepayment
());
plan
.
setTermCorpus
(
i
.
getPrincipal
());
plan
.
setTermInterest
(
i
.
getInterest
());
plan
.
setExtraFee
(
i
.
getServiceFee
().
add
(
i
.
getOtherFee
()));
if
(
BigDecimal
.
ZERO
.
compareTo
(
plan
.
getExtraFee
())
!= 0) {
plan
.
setExtraInfo
(
"担保费"
);
}
list
.
add
(
plan
);
});
return
list
;
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QueryRepayRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
查询还款结果入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryRepayRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道订单号
*/
private
String
channelOrderNo
;
/**
*
还款流水号
*/
private
String
businessFlowNo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QueryRepayResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
cn
.
quantgroup
.
loanflow
.
repay
.
model
.
representation
.
QueryNormalRepayRepresentation
;
import
lombok
.
Data
;
import
org
.
apache
.
commons
.
lang3
.
StringUtils
;
import
cn
.
quantgroup
.
loanflow
.
repay
.
model
.
RepaymentPlanItem
;
import
${
enumsPackage
}.${
prefix
}
RepayTypeEnum
;
import
${
enumsPackage
}.${
prefix
}
RepayStatusEnum
;
import
${
callbackPackage
}.${
prefix
}
ContractInfoNotice
;
import
${
callbackPackage
}.${
prefix
}
InoutPlanNotice
;
import
java
.
math
.
BigDecimal
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
List
;
/**
*
查询还款结果出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QueryRepayResult
{
private
${
prefix
}
RepayStatusEnum
repayStatus
;
private
BigDecimal
repayAmount
;
/**
*
实际还款时间
(
金额实际到账的时间
,
精确到时分秒
)
格式如:
yyyy
-
MM
-
dd
HH
:
mm
:
ss
成功的时候必填
*/
private
String
actualTime
;
private
String
failMsg
;
private
String
failCode
;
private
List
<${
prefix
}
ContractInfoNotice
>
contractList
;
private
${
prefix
}
RepayTypeEnum
repayType
;
public
static
${
prefix
}
QueryRepayResult
getSuccessResult
(
String
channelLoanNo
,
QueryNormalRepayRepresentation
repayResult
,
List
<
RepaymentPlanItem
>
repaymentPlans
)
{
String
loanId
=
repayResult
.
getLoanId
();
String
repaymentReceivedAt
=
repayResult
.
getRepaymentReceivedAt
();
${
prefix
}
QueryRepayResult
callback
=
new
${
prefix
}
QueryRepayResult
();
callback
.
setRepayStatus
(${
prefix
}
RepayStatusEnum
.
getStatusByRepayStatus
(
repayResult
.
getRepayStatus
()));
callback
.
setRepayType
(${
prefix
}
RepayTypeEnum
.
ACTIVE
);
if
(
StringUtils
.
isNotBlank
(
repayResult
.
getActualRepayment
()))
{
callback
.
setRepayAmount
(
new
BigDecimal
(
repayResult
.
getActualRepayment
()));
}
if
(${
prefix
}
RepayStatusEnum
.
FAIL
==
callback
.
getRepayStatus
())
{
callback
.
setFailMsg
(
repayResult
.
getFailMsg
());
callback
.
setFailCode
(
"0001"
);
}
else
{
callback
.
setActualTime
(
repaymentReceivedAt
);
}
List
<${
prefix
}
ContractInfoNotice
>
contractInfoNotices
=
new
ArrayList
<>();
${
prefix
}
ContractInfoNotice
notice
=
new
${
prefix
}
ContractInfoNotice
();
notice
.
setChannelLoanNo
(
channelLoanNo
);
notice
.
setLoanNo
(
loanId
);
List
<${
prefix
}
InoutPlanNotice
>
inoutPlanNotices
=
new
ArrayList
<>();
repaymentPlans
.
forEach
(
i
->
{
${
prefix
}
InoutPlanNotice
planNotice
=
new
${
prefix
}
InoutPlanNotice
();
planNotice
.
setLeaseTime
(
i
.
getPeriodNo
());
planNotice
.
setReceivedCorpus
(
i
.
getActPrincipal
());
planNotice
.
setReceivedInterest
(
i
.
getActInterest
());
planNotice
.
setReceivedFine
(
i
.
getActOverdueInterest
());
planNotice
.
setReceivedInterestRate
(
BigDecimal
.
ZERO
);
planNotice
.
setReceivedTotalAmount
(
i
.
getRepayAmount
());
planNotice
.
setExtraFee
(
i
.
getActServiceFee
());
if
(
i
.
getActServiceFee
().
compareTo
(
BigDecimal
.
ZERO
)
!= 0) {
planNotice
.
setExtraInfo
(
"担保费"
);
}
inoutPlanNotices
.
add
(
planNotice
);
});
notice
.
setInoutPlanList
(
inoutPlanNotices
);
contractInfoNotices
.
add
(
notice
);
callback
.
setContractList
(
contractInfoNotices
);
return
callback
;
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QuerySupportBankcardsRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
org
.
apache
.
commons
.
lang3
.
StringUtils
;
import
lombok
.
Data
;
/**
*
查询支持银行卡入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QuerySupportBankcardsRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道订单号
*/
private
String
channelOrderNo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/QuerySupportBankcardsResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
org
.
apache
.
commons
.
lang3
.
StringUtils
;
import
cn
.
quantgroup
.
mo
.
order
.
model
.
output
.
MoSimpleBank
;
import
lombok
.
Data
;
import
java
.
math
.
BigDecimal
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
List
;
/**
*
查询支持银行卡出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
QuerySupportBankcardsResult
{
private
List
<${
prefix
}
BankInfo
>
bankInfoList
;
public
static
${
prefix
}
QuerySupportBankcardsResult
getSuccessResult
(
List
<
MoSimpleBank
>
list
)
{
//
-
1
表示没有限额
String
noLimit
=
"-1"
;
${
prefix
}
QuerySupportBankcardsResult
result
=
new
${
prefix
}
QuerySupportBankcardsResult
();
List
<${
prefix
}
BankInfo
>
bankInfoList1
=
new
ArrayList
<>();
list
.
forEach
(
t
->
{
${
prefix
}
BankInfo
bankInfo
=
new
${
prefix
}
BankInfo
();
bankInfo
.
setBankCode
(
t
.
getBankCode
());
bankInfo
.
setBankName
(
t
.
getBankName
());
bankInfo
.
setDaysLimit
(
StringUtils
.
isBlank
(
t
.
getDayQuota
())
?
new
BigDecimal
(
noLimit
)
:
new
BigDecimal
(
t
.
getDayQuota
()));
bankInfo
.
setSingleLimit
(
StringUtils
.
isBlank
(
t
.
getSingleQuota
())
?
new
BigDecimal
(
noLimit
)
:
new
BigDecimal
(
t
.
getSingleQuota
()));
bankInfoList1
.
add
(
bankInfo
);
});
result
.
setBankInfoList
(
bankInfoList1
);
return
result
;
}
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/RepayByPlanRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
主动还款入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
RepayByPlanRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道订单号
*/
private
String
channelOrderNo
;
/**
*
绑卡
Id
*/
private
String
bindId
;
/**
*
渠道借款订单号
*/
private
String
channelLoanNo
;
/**
*
借款流水号
*/
private
String
businessFlowNo
;
/**
*
还款金额
*/
private
String
repayAmount
;
/**
*
还款期数
*/
private
Integer
termNo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/RepayByPlanResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
AllArgsConstructor
;
import
lombok
.
Data
;
/**
*
主动还款出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
@
AllArgsConstructor
public
class
${
prefix
}
RepayByPlanResult
{
private
String
businessFlowNo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/TrialInoutPlan.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
java
.
math
.
BigDecimal
;
import
lombok
.
Data
;
/**
*
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
TrialInoutPlan
{
/**
*
期次
*/
private
Integer
leaseTime
;
/**
*
应还款日期
(
yyyy
-
MM
-
dd
)
*/
private
String
repayDate
;
/**
*
本期应还总金额
单位元
*/
private
BigDecimal
termAmount
;
/**
*
本金
单位元
*/
private
BigDecimal
termCorpus
;
/**
*
利息
单位元
*/
private
BigDecimal
termInterest
;
/**
*
优惠券金额
单位元
*/
private
BigDecimal
deductionAmount
;
/**
*
额外金额
单位元
*/
private
BigDecimal
extraFee
;
/**
*
额外金额描述
*/
private
String
extraInfo
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/UserAccessRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
准入入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
UserAccessRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
手机号
MD5
*/
private
String
phoneMD5
;
/**
*
身份证号
MD5
*/
private
String
idNoMD5
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/UserAccessResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
准入出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
UserAccessResult
{
private
String
accessResult
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/VerifyBindSmsRequest.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
lombok
.
Data
;
/**
*
验卡入参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
VerifyBindSmsRequest
{
/**
*
渠道号
*/
private
Long
channelId
;
/**
*
渠道订单号
*/
private
String
channelOrderNo
;
/**
*
验证
id
*/
private
String
verifyId
;
/**
*
验证码
*/
private
String
smsCode
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/model/VerifyBindSmsResult.ftl
0 → 100644
View file @
ca6c9738
package
${
modelPackage
};
import
${
enumsPackage
}.${
prefix
}
SignStatusEnum
;
import
lombok
.
Data
;
/**
*
验卡出参
*
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
@
Data
public
class
${
prefix
}
VerifyBindSmsResult
{
private
${
prefix
}
SignStatusEnum
signStatus
;
private
String
bindId
;
}
\ No newline at end of file
src/main/resources/templates/code-generator/service/Service.ftl
0 → 100644
View file @
ca6c9738
package
${
servicePackage
};
import
${
modelPackage
}.${
prefix
}
QueryCreditApplyRequest
;
import
${
modelPackage
}.${
prefix
}
UserAccessRequest
;
import
${
modelPackage
}.${
prefix
}
QuerySupportBankcardsRequest
;
import
${
modelPackage
}.${
prefix
}
QueryLoanTrialRequest
;
import
${
modelPackage
}.${
prefix
}
BindBankCardSmsRequest
;
import
${
modelPackage
}.${
prefix
}
VerifyBindSmsRequest
;
import
${
modelPackage
}.${
prefix
}
ApplyLoanRequest
;
import
${
modelPackage
}.${
prefix
}
QueryLoanRequest
;
import
${
modelPackage
}.${
prefix
}
RepayByPlanRequest
;
import
${
modelPackage
}.${
prefix
}
QueryRepayRequest
;
import
cn
.
quantgroup
.
loanflow
.
application
.
model
.
ApplyLoanData
;
/**
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
interface
${
prefix
}
Service
{
/**
*
预审
*
*
@
param
userAccessRequest
*
@
return
*/
String
userAccess
(${
prefix
}
UserAccessRequest
userAccessRequest
);
/**
*
提交授信
*
*
@
param
request
*
@
return
*/
String
creditApply
(
ApplyLoanData
request
);
/**
*
授信申请结果主动查询
*
*
@
param
request
*
@
return
*/
String
queryCreditApply
(${
prefix
}
QueryCreditApplyRequest
request
);
/**
*
查询支持的银行列表
*
*
@
param
request
*
@
return
*/
String
querySupportBankcards
(${
prefix
}
QuerySupportBankcardsRequest
request
);
/**
*
借款试算
*
*
@
param
request
*
@
return
*/
String
queryLoanTrial
(${
prefix
}
QueryLoanTrialRequest
request
);
/**
*
绑卡发验证码
*
*
@
param
request
*
@
return
*/
String
bindBankCardSms
(${
prefix
}
BindBankCardSmsRequest
request
);
/**
*
验卡
*
*
@
param
request
*
@
return
*/
String
verifyBindSms
(${
prefix
}
VerifyBindSmsRequest
request
);
/**
*
申请提现
*
*
@
param
request
*
@
return
*/
String
applyWithdraw
(${
prefix
}
ApplyLoanRequest
request
);
/**
*
借款结果查询
*
*
@
param
request
*
@
return
*/
String
queryLoanResult
(${
prefix
}
QueryLoanRequest
request
);
/**
*
主动还款
*
*
@
param
request
*
@
return
*/
String
repayByPlan
(${
prefix
}
RepayByPlanRequest
request
);
/**
*
查询还款结果
*
*
@
param
request
*
@
return
*/
String
queryRepayResult
(${
prefix
}
QueryRepayRequest
request
);
}
src/main/resources/templates/code-generator/service/ServiceImpl.ftl
0 → 100644
View file @
ca6c9738
This diff is collapsed.
Click to expand it.
src/main/resources/templates/code-generator/util/CodeEnum.ftl
0 → 100644
View file @
ca6c9738
package
${
utilPackage
};
import
cn
.
quantgroup
.
loanflow
.
infrastructure
.
code
.
ApplicationServiceCode
;
import
lombok
.
Getter
;
import
org
.
apache
.
commons
.
lang3
.
StringUtils
;
/**
*
@
author
${
author
}
*
@
date
${.
now
?
string
(
'yyyy-MM-dd HH:mm:ss'
)}
*/
public
enum
${
prefix
}
CodeEnum
implements
ApplicationServiceCode
{
SUCCESS
(
"100000"
,
"成功"
),
ERROR
(
"200000"
,
"异常"
),
SIGN_ERROR
(
"200001"
,
"加签失败"
),
VERIFY_SIGN_ERROR
(
"200002"
,
"验签失败"
),
DECRYPT_ERROR
(
"200003"
,
"解密失败"
),
ENCRYPTION_ERROR
(
"200004"
,
"加密失败"
),
TIME_OUT_ERROR
(
"200005"
,
"系统超时"
),
SYSTEM_ERROR
(
"200006"
,
"系统异常"
),
PARAM_ERROR
(
"200007"
,
"无效的请求参数"
),
AGREEMENT_NULL
(
"200900"
,
"查询没有数据"
),
//
准入
USER_ACCESS_NO
(
"200100"
,
"准入失败"
),
USER_REPEAT
(
"200101"
,
"重复用户"
),
//
联合注册
USER_REGISTER_ERROR
(
"200200"
,
"注册失败(非准入失败导致)"
),
USER_REGISTER_ACCESS_ERROR
(
"200201"
,
"注册失败(准入失败导致)"
),
//
绑卡
BIND_PHONE_ERROR
(
"200300"
,
"预留手机号错误"
),
BIND_IDNO_ERROR
(
"200301"
,
"身份证验证失败"
),
BIND_BANKCARDNO_ERROR
(
"200302"
,
"银行卡已绑定"
),
BIND_OVERDUE_ERROR
(
"200303"
,
"验证码过期"
),
BIND_NAME_ERROR
(
"301204"
,
"实名认证不通过"
),
BIND_NAME_AND_ID_ERROR
(
"301205"
,
"姓名身份证号码不一致"
),
BIND_BANKCARDNO_PHONE_ERROR
(
"301206"
,
"银行卡预留手机不一致"
),
BIND_BANKCARDNO_SUPPORT_ERROR
(
"301207"
,
"银行卡不支持"
),
BIND_SEND_FREQUENTLY_ERROR
(
"301208"
,
"发送短信过于频繁"
),
//
提现
;
@
Getter
private
String
code
;
@
Getter
private
String
msg
;
${
prefix
}
CodeEnum
(
String
value
,
String
msg
)
{
this
.
code
=
value
;
this
.
msg
=
msg
;
}
/**
*
预审
*
REVIEW_USER_ERROR
(
"0100"
,
"复申用户"
),
*
BLACKLIST_USER_ERROR
(
"0200"
,
"黑名单用户"
),
*
EXIST_LOAN_USER_ERROR
(
"0300"
,
"在贷用户,不允许进件"
),
*
OVERDUE_ERROR
(
"0400"
,
"逾期记录"
),
*
REFUSE_ERROR
(
"0500"
,
"30天内拒绝"
),
*
EXIST_LOANING_ERROR
(
"0600"
,
"存在申请订单"
),
*
AGE_ERROR
(
"0701"
,
"年龄不符合要求"
),
*
NOT_WITHDRAW_ERROR
(
"0702"
,
"审核已通过未提现"
),
*
BLACKLIST_USERS_ERROR
(
"0703"
,
"黑名单用户"
),
*
*
@
param
code
*
@
return
*/
public
static
ApplicationServiceCode
getUserAccessCode
(
String
code
)
{
if
(
StringUtils
.
isEmpty
(
code
))
{
return
USER_ACCESS_NO
;
}
switch
(
code
)
{
case
"0300"
:
return
USER_REPEAT
;
case
"0100"
:
case
"0200"
:
case
"0400"
:
case
"0500"
:
case
"0600"
:
case
"0701"
:
case
"0702"
:
case
"0703"
:
return
USER_ACCESS_NO
;
default
:
return
USER_ACCESS_NO
;
}
}
/**
*
绑卡
*
*
@
param
code
*
@
return
*/
public
static
ApplicationServiceCode
getBindSmsCode
(
String
code
)
{
if
(
StringUtils
.
isEmpty
(
code
))
{
return
ERROR
;
}
switch
(
code
)
{
case
"0010"
:
return
ERROR
;
case
"0011"
:
return
ERROR
;
case
"0100"
:
return
ERROR
;
case
"0101"
:
return
BIND_BANKCARDNO_SUPPORT_ERROR
;
case
"0102"
:
return
BIND_PHONE_ERROR
;
case
"0103"
:
return
ERROR
;
default
:
return
ERROR
;
}
}
/**
*
验卡
*
*
@
param
code
*
@
return
*/
public
static
ApplicationServiceCode
getVerifySmsCode
(
String
code
)
{
if
(
StringUtils
.
isEmpty
(
code
))
{
return
ERROR
;
}
switch
(
code
)
{
case
"0101"
:
return
ERROR
;
case
"0010"
:
return
BIND_OVERDUE_ERROR
;
default
:
return
ERROR
;
}
}
/**
*
提现
*
200500
*
借款金额超限
*
<
p
>
*
200501
*
当日放款总额超限
*
<
p
>
*
200502
*
贷款期数不支持
*
<
p
>
*
200503
*
额度审批未通过
*
*
@
param
code
*
@
return
*/
public
static
ApplicationServiceCode
getApplyWithdraw
(
String
code
)
{
switch
(
code
)
{
case
"0003"
:
case
"1001"
:
return
ERROR
;
case
"0004"
:
return
ERROR
;
case
"0101"
:
return
ERROR
;
case
"0200"
:
return
ERROR
;
default
:
return
ERROR
;
}
}
/**
*
如果
code
==
ERROR
(
"200000"
,
"异常"
),
则取内部系统具体的错误信息
*
*
@
param
code
根据内部系统返回的
code
转换成金山的
code
*
@
param
msg
内部系统详细的
msg
*
@
return
返回给金山的
msg
*/
public
static
String
getReturnMsg
(
ApplicationServiceCode
code
,
String
msg
)
{
if
(${
prefix
}
CodeEnum
.
ERROR
.
equals
(
code
))
{
return
msg
;
}
return
code
.
getMsg
();
}
}
src/main/resources/templates/code-generator/util/ResultUtils.ftl
0 → 100644
View file @
ca6c9738
package
${
utilPackage
};
import
cn
.
quantgroup
.
loanflow
.
infrastructure
.
code
.
ApplicationServiceCode
;
import
lombok
.
Data
;
import
java
.
io
.
Serializable
;
public
class
${
prefix
}
ResultUtils
{
public
static
ResultDTO
success
(
String
msg
,
Object
data
)
{
return
new
ResultDTO
(
msg
,
data
);
}
public
static
ResultDTO
success
(
Object
data
)
{
return
new
ResultDTO
(
data
);
}
public
static
ResultDTO
success
()
{
return
new
ResultDTO
();
}
public
static
ResultDTO
fail
(
String
code
,
String
msg
,
Object
data
)
{
return
new
ResultDTO
(
code
,
msg
,
data
);
}
public
static
ResultDTO
fail
(
String
code
,
String
msg
)
{
return
new
ResultDTO
(
code
,
msg
,
null
);
}
public
static
ResultDTO
fail
(
ApplicationServiceCode
code
)
{
return
new
ResultDTO
(
code
.
getCode
(),
code
.
getMsg
(),
null
);
}
@
Data
public
static
class
ResultDTO
implements
Serializable
{
private
String
code
;
private
String
message
;
private
Object
data
;
public
ResultDTO
()
{
this
.
code
=
"100000"
;
this
.
message
=
"成功"
;
}
public
ResultDTO
(
Object
data
)
{
this
.
data
=
data
;
this
.
code
=
"100000"
;
this
.
message
=
"成功"
;
}
public
ResultDTO
(
String
msg
)
{
this
.
code
=
"100000"
;
this
.
message
=
msg
;
}
public
ResultDTO
(
String
message
,
Object
data
)
{
this
.
code
=
"100000"
;
this
.
message
=
message
;
this
.
data
=
data
;
}
public
ResultDTO
(
String
code
,
String
message
,
Object
data
)
{
this
.
code
=
code
;
this
.
message
=
message
;
this
.
data
=
data
;
}
public
boolean
checkSuccess
()
{
return
"100000"
.
equals
(
code
);
}
}
}
src/test/java/cn/quantgroup/codegenerator/CodegeneratorApplicationTests.java
0 → 100644
View file @
ca6c9738
package
cn
.
quantgroup
.
codegenerator
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
class
CodegeneratorApplicationTests
{
@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