refactor: 将 payapi 移到子目录下
diff --git a/build.gradle b/build.gradle
index 9d339e7..d3f7c74 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,24 +1,3 @@
-plugins {
-    id 'java'
-    id 'org.springframework.boot' version '2.1.6.RELEASE'
-    id 'org.jetbrains.kotlin.jvm' version '1.3.31'
-    id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.31'
-    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31'
-    id "com.palantir.git-version" version "0.12.0-rc2"
-    id 'com.palantir.docker' version '0.22.1'
-}
-
-apply plugin: 'java'
-apply plugin: 'io.spring.dependency-management'
-
-payapiVersion = gitVersion()
-
-group = 'com.supwisdom'
-version = '1'
-sourceCompatibility = jdkVersion
-def startClass = 'com.supwisdom.dlpay.PayApiApplicationKt'
-
-println("Build version: $payapiVersion")
 allprojects {
     repositories {
         jcenter()
@@ -30,78 +9,6 @@
     version = '1.0'
 }
 
-bootJar {
-    mainClassName = startClass
-    manifest {
-        attributes('Payapi-Version': payapiVersion)
-    }
-}
-
-jar {
-    baseName = 'payapi'
-}
-
-docker {
-    name 'harbor.supwisdom.com/dali/payapi:' + version
-    println(jar.archivePath)
-    files jar.archivePath
-}
-
-docker.dependsOn(jar)
-
-dependencies {
-    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
-    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
-    implementation 'org.springframework.boot:spring-boot-starter-web'
-    implementation 'org.springframework.boot:spring-boot-starter-security'
-    implementation 'org.springframework.boot:spring-boot-starter-cache'
-    implementation 'org.springframework.boot:spring-boot-autoconfigure'
-    implementation 'org.springframework.security:spring-security-oauth2-jose'
-    implementation 'org.springframework.security:spring-security-oauth2-client'
-    implementation 'org.springframework.security:spring-security-oauth2-jose'
-    implementation 'org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.5.RELEASE'
-    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
-    implementation 'org.springframework.session:spring-session-data-redis'
-    implementation 'org.springframework.boot:spring-boot-starter-cache'
-    implementation 'org.springframework.social:spring-social-web:1.1.6.RELEASE'
-    implementation 'org.jetbrains.kotlin:kotlin-reflect'
-    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
-    implementation 'commons-codec:commons-codec:1.12'
-
-    implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery:2.1.2.RELEASE'
-
-    implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
-
-    runtime("org.springframework.boot:spring-boot-devtools")
-
-    implementation 'org.postgresql:postgresql:42.2.5'
-    implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
-    implementation 'com.jcabi:jcabi-manifests:1.1'
-    implementation 'org.bitbucket.b_c:jose4j:0.6.3'
-    implementation 'io.github.microutils:kotlin-logging:1.6.26'
-    implementation 'org.slf4j:slf4j-parent:1.7.26'
-    implementation 'com.github.penggle:kaptcha:2.3.2'
-    implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
-    implementation group: 'com.sun.jersey', name: 'jersey-client', version: '1.19'
-    implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
-    implementation group: 'taglibs', name: 'standard', version: '1.1.2'
-    implementation group: 'commons-codec', name: 'commons-codec', version: '1.6'
-    implementation files('libs/ojdbc6.jar')
-    implementation 'commons-dbcp:commons-dbcp:1.4'
-
-    implementation project(':common')
-
-    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
-    annotationProcessor 'org.projectlombok:lombok:1.18.8'
-    compileOnly 'org.projectlombok:lombok:1.18.8'
-
-//    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
-    testImplementation 'org.springframework.boot:spring-boot-starter-test'
-    testImplementation 'io.rest-assured:rest-assured:3.3.0'
-    testImplementation 'io.rest-assured:spring-mock-mvc:3.3.0'
-    testImplementation 'org.hamcrest:hamcrest:2.1'
-}
-
 compileKotlin {
     kotlinOptions {
         freeCompilerArgs = ['-Xjsr305=strict']
diff --git a/payapi/build.gradle b/payapi/build.gradle
new file mode 100644
index 0000000..9d339e7
--- /dev/null
+++ b/payapi/build.gradle
@@ -0,0 +1,117 @@
+plugins {
+    id 'java'
+    id 'org.springframework.boot' version '2.1.6.RELEASE'
+    id 'org.jetbrains.kotlin.jvm' version '1.3.31'
+    id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.31'
+    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31'
+    id "com.palantir.git-version" version "0.12.0-rc2"
+    id 'com.palantir.docker' version '0.22.1'
+}
+
+apply plugin: 'java'
+apply plugin: 'io.spring.dependency-management'
+
+payapiVersion = gitVersion()
+
+group = 'com.supwisdom'
+version = '1'
+sourceCompatibility = jdkVersion
+def startClass = 'com.supwisdom.dlpay.PayApiApplicationKt'
+
+println("Build version: $payapiVersion")
+allprojects {
+    repositories {
+        jcenter()
+        mavenCentral()
+    }
+}
+
+subprojects {
+    version = '1.0'
+}
+
+bootJar {
+    mainClassName = startClass
+    manifest {
+        attributes('Payapi-Version': payapiVersion)
+    }
+}
+
+jar {
+    baseName = 'payapi'
+}
+
+docker {
+    name 'harbor.supwisdom.com/dali/payapi:' + version
+    println(jar.archivePath)
+    files jar.archivePath
+}
+
+docker.dependsOn(jar)
+
+dependencies {
+    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
+    implementation 'org.springframework.boot:spring-boot-starter-web'
+    implementation 'org.springframework.boot:spring-boot-starter-security'
+    implementation 'org.springframework.boot:spring-boot-starter-cache'
+    implementation 'org.springframework.boot:spring-boot-autoconfigure'
+    implementation 'org.springframework.security:spring-security-oauth2-jose'
+    implementation 'org.springframework.security:spring-security-oauth2-client'
+    implementation 'org.springframework.security:spring-security-oauth2-jose'
+    implementation 'org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.5.RELEASE'
+    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
+    implementation 'org.springframework.session:spring-session-data-redis'
+    implementation 'org.springframework.boot:spring-boot-starter-cache'
+    implementation 'org.springframework.social:spring-social-web:1.1.6.RELEASE'
+    implementation 'org.jetbrains.kotlin:kotlin-reflect'
+    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
+    implementation 'commons-codec:commons-codec:1.12'
+
+    implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery:2.1.2.RELEASE'
+
+    implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+
+    runtime("org.springframework.boot:spring-boot-devtools")
+
+    implementation 'org.postgresql:postgresql:42.2.5'
+    implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
+    implementation 'com.jcabi:jcabi-manifests:1.1'
+    implementation 'org.bitbucket.b_c:jose4j:0.6.3'
+    implementation 'io.github.microutils:kotlin-logging:1.6.26'
+    implementation 'org.slf4j:slf4j-parent:1.7.26'
+    implementation 'com.github.penggle:kaptcha:2.3.2'
+    implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
+    implementation group: 'com.sun.jersey', name: 'jersey-client', version: '1.19'
+    implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
+    implementation group: 'taglibs', name: 'standard', version: '1.1.2'
+    implementation group: 'commons-codec', name: 'commons-codec', version: '1.6'
+    implementation files('libs/ojdbc6.jar')
+    implementation 'commons-dbcp:commons-dbcp:1.4'
+
+    implementation project(':common')
+
+    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
+    annotationProcessor 'org.projectlombok:lombok:1.18.8'
+    compileOnly 'org.projectlombok:lombok:1.18.8'
+
+//    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
+    testImplementation 'org.springframework.boot:spring-boot-starter-test'
+    testImplementation 'io.rest-assured:rest-assured:3.3.0'
+    testImplementation 'io.rest-assured:spring-mock-mvc:3.3.0'
+    testImplementation 'org.hamcrest:hamcrest:2.1'
+}
+
+compileKotlin {
+    kotlinOptions {
+        freeCompilerArgs = ['-Xjsr305=strict']
+        jvmTarget = jdkVersion
+    }
+}
+
+compileTestKotlin {
+    kotlinOptions {
+        freeCompilerArgs = ['-Xjsr305=strict']
+        jvmTarget = jdkVersion
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/AppPreparedEvent.java b/payapi/src/main/java/com/supwisdom/dlpay/AppPreparedEvent.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/AppPreparedEvent.java
rename to payapi/src/main/java/com/supwisdom/dlpay/AppPreparedEvent.java
diff --git a/src/main/java/com/supwisdom/dlpay/ServletInitializer.kt b/payapi/src/main/java/com/supwisdom/dlpay/ServletInitializer.kt
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/ServletInitializer.kt
rename to payapi/src/main/java/com/supwisdom/dlpay/ServletInitializer.kt
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/BaseResp.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/BaseResp.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/bean/BaseResp.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/bean/BaseResp.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/DlpayReq.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayReq.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/bean/DlpayReq.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayReq.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/JsonResult.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/JsonResult.java
similarity index 99%
rename from src/main/java/com/supwisdom/dlpay/api/bean/JsonResult.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/bean/JsonResult.java
index 67c9b77..dafde31 100755
--- a/src/main/java/com/supwisdom/dlpay/api/bean/JsonResult.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/JsonResult.java
@@ -1,78 +1,78 @@
-package com.supwisdom.dlpay.api.bean;

-

-import java.util.HashMap;

-

-public class JsonResult extends HashMap<String, Object> {

-    public JsonResult() {

-    }

-

-    /**

-     * 返回成功

-     */

-    public static JsonResult ok() {

-        return ok("操作成功");

-    }

-

-    /**

-     * 返回成功

-     */

-    public static JsonResult ok(String message) {

-        return ok(200, message);

-    }

-

-    /**

-     * 返回成功

-     */

-    public static JsonResult ok(int code, String message) {

-        JsonResult jsonResult = new JsonResult();

-        jsonResult.put("code", code);

-        jsonResult.put("msg", message);

-        return jsonResult;

-    }

-

-    /**

-     * 返回失败

-     */

-    public static JsonResult error() {

-        return error("操作失败");

-    }

-

-    /**

-     * 返回失败

-     */

-    public static JsonResult error(String messag) {

-        return error(500, messag);

-    }

-

-    /**

-     * 返回失败

-     */

-    public static JsonResult error(int code, String message) {

-        return ok(code, message);

-    }

-

-    /**

-     * 设置code

-     */

-    public JsonResult setCode(int code) {

-        super.put("code", code);

-        return this;

-    }

-

-    /**

-     * 设置message

-     */

-    public JsonResult setMessage(String message) {

-        super.put("msg", message);

-        return this;

-    }

-

-    /**

-     * 放入object

-     */

-    @Override

-    public JsonResult put(String key, Object object) {

-        super.put(key, object);

-        return this;

-    }

+package com.supwisdom.dlpay.api.bean;
+
+import java.util.HashMap;
+
+public class JsonResult extends HashMap<String, Object> {
+    public JsonResult() {
+    }
+
+    /**
+     * 返回成功
+     */
+    public static JsonResult ok() {
+        return ok("操作成功");
+    }
+
+    /**
+     * 返回成功
+     */
+    public static JsonResult ok(String message) {
+        return ok(200, message);
+    }
+
+    /**
+     * 返回成功
+     */
+    public static JsonResult ok(int code, String message) {
+        JsonResult jsonResult = new JsonResult();
+        jsonResult.put("code", code);
+        jsonResult.put("msg", message);
+        return jsonResult;
+    }
+
+    /**
+     * 返回失败
+     */
+    public static JsonResult error() {
+        return error("操作失败");
+    }
+
+    /**
+     * 返回失败
+     */
+    public static JsonResult error(String messag) {
+        return error(500, messag);
+    }
+
+    /**
+     * 返回失败
+     */
+    public static JsonResult error(int code, String message) {
+        return ok(code, message);
+    }
+
+    /**
+     * 设置code
+     */
+    public JsonResult setCode(int code) {
+        super.put("code", code);
+        return this;
+    }
+
+    /**
+     * 设置message
+     */
+    public JsonResult setMessage(String message) {
+        super.put("msg", message);
+        return this;
+    }
+
+    /**
+     * 放入object
+     */
+    @Override
+    public JsonResult put(String key, Object object) {
+        super.put(key, object);
+        return this;
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/ReqParam.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/ReqParam.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/bean/ReqParam.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/bean/ReqParam.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/SupStatusRevResp.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/SupStatusRevResp.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/bean/SupStatusRevResp.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/bean/SupStatusRevResp.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/SupYktResp.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/SupYktResp.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/bean/SupYktResp.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/bean/SupYktResp.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/bean/WechatReqResp.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/WechatReqResp.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/bean/WechatReqResp.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/bean/WechatReqResp.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java b/payapi/src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/DebitCreditDtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/DebitCreditDtlDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/DebitCreditDtlDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/DebitCreditDtlDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PaytypeConfigDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PaytypeConfigDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/PaytypeConfigDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/PaytypeConfigDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PersonIdentityDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonIdentityDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/PersonIdentityDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonIdentityDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeConfigDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeConfigDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeConfigDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeConfigDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopPaytypeDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/ShopdtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopdtlDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/ShopdtlDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/ShopdtlDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/SubjectdtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SubjectdtlDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/SubjectdtlDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/SubjectdtlDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/TransactionMainDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionMainDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/dao/TransactionMainDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionMainDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccount.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBal.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBalPk.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBalPk.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBalPk.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TAccountDayBalPk.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtl.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtl.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtlPK.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtlPK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtlPK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDebitCreditDtlPK.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfigPK.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfigPK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfigPK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPaytypeConfigPK.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytype.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytype.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytype.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytype.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypeConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypeConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypeConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypeConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypePK.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypePK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypePK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopPaytypePK.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TShopdtl.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TSubjectdtl.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSubjectdtl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TSubjectdtl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSubjectdtl.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/domain/TTransactionMain.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java b/payapi/src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/repositories/AccountService.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/repositories/ShopaccService.java b/payapi/src/main/java/com/supwisdom/dlpay/api/repositories/ShopaccService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/repositories/ShopaccService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/repositories/ShopaccService.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/SourceTypeService.java b/payapi/src/main/java/com/supwisdom/dlpay/api/service/SourceTypeService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/service/SourceTypeService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/service/SourceTypeService.java
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/api/service/impl/SourceTypeServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/exception/TransactionCheckException.java b/payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionCheckException.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/exception/TransactionCheckException.java
rename to payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionCheckException.java
diff --git a/src/main/java/com/supwisdom/dlpay/exception/TransactionException.java b/payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionException.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/exception/TransactionException.java
rename to payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionException.java
diff --git a/src/main/java/com/supwisdom/dlpay/exception/TransactionProcessException.java b/payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionProcessException.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/exception/TransactionProcessException.java
rename to payapi/src/main/java/com/supwisdom/dlpay/exception/TransactionProcessException.java
diff --git a/src/main/java/com/supwisdom/dlpay/exception/ValidateCodeException.java b/payapi/src/main/java/com/supwisdom/dlpay/exception/ValidateCodeException.java
similarity index 99%
rename from src/main/java/com/supwisdom/dlpay/exception/ValidateCodeException.java
rename to payapi/src/main/java/com/supwisdom/dlpay/exception/ValidateCodeException.java
index 0a500ad..98ea42b 100755
--- a/src/main/java/com/supwisdom/dlpay/exception/ValidateCodeException.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/exception/ValidateCodeException.java
@@ -1,23 +1,23 @@
-/**

- * 

- */

-package com.supwisdom.dlpay.exception;

-

-import org.springframework.security.core.AuthenticationException;

-

-/**

- * @author lenovo

- *

- */

-public class ValidateCodeException extends AuthenticationException {

-

-	/**

-	 * 

-	 */

-	private static final long serialVersionUID = 1170189980006964105L;

-

-	

-	public ValidateCodeException(String msg) {

-		super(msg);

-	}

-}

+/**
+ * 
+ */
+package com.supwisdom.dlpay.exception;
+
+import org.springframework.security.core.AuthenticationException;
+
+/**
+ * @author lenovo
+ *
+ */
+public class ValidateCodeException extends AuthenticationException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1170189980006964105L;
+
+	
+	public ValidateCodeException(String msg) {
+		super(msg);
+	}
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/KaptchaConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/KaptchaConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/KaptchaConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/KaptchaConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/JwtConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/core/JwtConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/JwtToken.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtToken.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/core/JwtToken.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtToken.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/JwtTokenUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtTokenUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/core/JwtTokenUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/core/JwtTokenUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ApiClientDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ApiClientDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/ApiClientDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ApiClientDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/BusinessparaDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/BusinessparaDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/BusinessparaDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/BusinessparaDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/DictionaryDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperLogDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/OperatorDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/PeriodDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PeriodDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/PeriodDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PeriodDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/PermissionDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/TenantConfigDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantConfigDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/TenantConfigDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantConfigDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/TranscodeDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TranscodeDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/TranscodeDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TranscodeDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/data/ExistBean.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/data/ExistBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/data/ExistBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/data/ExistBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/data/FSubjectInfoBean.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/data/FSubjectInfoBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/data/FSubjectInfoBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/data/FSubjectInfoBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/data/MerchBean.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/data/MerchBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/data/MerchBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/data/MerchBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/data/NodeData.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/data/NodeData.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/data/NodeData.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/data/NodeData.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/data/SubjectInfoBean.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/data/SubjectInfoBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/data/SubjectInfoBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/data/SubjectInfoBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/data/SystemDateTime.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/data/VoucherTemp.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/data/VoucherTemp.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/data/VoucherTemp.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/data/VoucherTemp.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/ApiClientRedis.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/ApiClientRedis.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/ApiClientRedis.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/ApiClientRedis.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/DictionaryTable.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/DictionaryTable.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/DictionaryTable.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/DictionaryTable.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/JwtRedis.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/JwtRedis.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/JwtRedis.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/JwtRedis.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/PersonRedis.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/PersonRedis.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/PersonRedis.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/PersonRedis.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TApiClient.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TBusinesspara.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionary.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TDictionaryPK.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfigPK.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfigPK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfigPK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFeetypeConfigPK.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperLog.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TPeriod.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPeriod.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TPeriod.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPeriod.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TPeriodPK.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPeriodPK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TPeriodPK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPeriodPK.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TPermission.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TResource.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TResource.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TResource.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TResource.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TSettleLog.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSettleLog.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TSettleLog.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSettleLog.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShop.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccday.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccday.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccday.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccday.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccdayPK.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccdayPK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccdayPK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopaccdayPK.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubject.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectbal.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectbal.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectbal.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectbal.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectday.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectday.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectday.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectday.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectdayPK.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectdayPK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectdayPK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSubjectdayPK.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TTaskLock.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTaskLock.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TTaskLock.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTaskLock.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TTenantConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TTranscode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTranscode.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TTranscode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTranscode.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TTranstype.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTranstype.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TTranstype.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTranstype.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntry.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntry.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntry.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntry.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntryPK.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntryPK.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntryPK.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucherEntryPK.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java
similarity index 99%
rename from src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java
index ac7a323..c58260d 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/filter/ValidateCodeFilter.java
@@ -1,92 +1,92 @@
-package com.supwisdom.dlpay.framework.filter;

-

-

-import com.supwisdom.dlpay.exception.ValidateCodeException;

-import com.supwisdom.dlpay.framework.security.CodeUtil;

-import com.supwisdom.dlpay.framework.security.MyAuthenticationFailureHandler;

-import com.supwisdom.dlpay.framework.security.validate.ImageCodeUtil;

-import com.supwisdom.dlpay.framework.security.validate.VerifyCode;

-import com.supwisdom.dlpay.framework.util.StringUtil;

-import org.springframework.beans.factory.annotation.Autowired;

-import org.springframework.stereotype.Component;

-import org.springframework.web.filter.OncePerRequestFilter;

-

-import javax.servlet.FilterChain;

-import javax.servlet.ServletException;

-import javax.servlet.http.HttpServletRequest;

-import javax.servlet.http.HttpServletResponse;

-import java.io.IOException;

-

-

-@Component("validateCodeFilter")

-public class ValidateCodeFilter extends OncePerRequestFilter {

-

-  /**

-   * 校验失败处理器

-   */

-  @Autowired

-  private MyAuthenticationFailureHandler myAuthenticationFailureHandler;

-

-

-  @Override

-  protected void doFilterInternal(HttpServletRequest request,

-                                  HttpServletResponse response, FilterChain filterChain)

-      throws ServletException, IOException {

-    String context = request.getContextPath();

-    if (context == null || "" == context.trim()) {

-      context = "/";

-    }

-    if (request.getRequestURI().isEmpty()) {

-      filterChain.doFilter(request, response);

-      return;

-    }

-    String url = request.getRequestURI();

-    if (!"/".equals(context)) {

-      url = url.replace(context, "");

-    }

-    if (StringUtil.equals("/login/form", url)

-        && StringUtil.equalsIgnoreCase(request.getMethod(), "post")) {

-      try {

-        validate(request);

-      } catch (ValidateCodeException e) {

-        //response.setStatus(HttpStatus.OK.value());

-        //response.setContentType("application/json;charset=UTF-8");

-        //response.getWriter().write(objectMapper.writeValueAsString(JsonResult.error(400, e.getMessage())));

-        //response.sendError(HttpStatus.UNAUTHORIZED.value(),e.getMessage());

-        myAuthenticationFailureHandler.onAuthenticationFailure(request, response, e);

-        return;

-      }

-    }

-    filterChain.doFilter(request, response);

-  }

-

-  private void validate(HttpServletRequest request) throws ValidateCodeException {

-    if (!CodeUtil.checkVerifyCode(request)) {

-      throw new ValidateCodeException("验证码不匹配");

-    } else {

-      request.getSession().removeAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);

-    }

-//    VerifyCode imageCode = (VerifyCode) request.getSession().getAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);

-//    String inputCode;

-//    try {

-//      inputCode = request.getParameter("imageCode");

-//    } catch (Exception e) {

-//      throw new ValidateCodeException("获取验证码的值失败");

-//    }

-//    if (StringUtil.isEmpty(inputCode)) {

-//      throw new ValidateCodeException("验证码不能为空");

-//    }

-//    if (null == imageCode) {

-//      throw new ValidateCodeException("验证码不存在");

-//    }

-//    if (imageCode.isExpired()) {

-//      request.getSession().removeAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);

-//      throw new ValidateCodeException("验证码已过期");

-//    }

-//    if (!StringUtil.equalsIgnoreCase(imageCode.getText(), inputCode)) {

-//      throw new ValidateCodeException("验证码不匹配");

-//    }

-//    request.getSession().removeAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);

-  }

-

-}

+package com.supwisdom.dlpay.framework.filter;
+
+
+import com.supwisdom.dlpay.exception.ValidateCodeException;
+import com.supwisdom.dlpay.framework.security.CodeUtil;
+import com.supwisdom.dlpay.framework.security.MyAuthenticationFailureHandler;
+import com.supwisdom.dlpay.framework.security.validate.ImageCodeUtil;
+import com.supwisdom.dlpay.framework.security.validate.VerifyCode;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+
+@Component("validateCodeFilter")
+public class ValidateCodeFilter extends OncePerRequestFilter {
+
+  /**
+   * 校验失败处理器
+   */
+  @Autowired
+  private MyAuthenticationFailureHandler myAuthenticationFailureHandler;
+
+
+  @Override
+  protected void doFilterInternal(HttpServletRequest request,
+                                  HttpServletResponse response, FilterChain filterChain)
+      throws ServletException, IOException {
+    String context = request.getContextPath();
+    if (context == null || "" == context.trim()) {
+      context = "/";
+    }
+    if (request.getRequestURI().isEmpty()) {
+      filterChain.doFilter(request, response);
+      return;
+    }
+    String url = request.getRequestURI();
+    if (!"/".equals(context)) {
+      url = url.replace(context, "");
+    }
+    if (StringUtil.equals("/login/form", url)
+        && StringUtil.equalsIgnoreCase(request.getMethod(), "post")) {
+      try {
+        validate(request);
+      } catch (ValidateCodeException e) {
+        //response.setStatus(HttpStatus.OK.value());
+        //response.setContentType("application/json;charset=UTF-8");
+        //response.getWriter().write(objectMapper.writeValueAsString(JsonResult.error(400, e.getMessage())));
+        //response.sendError(HttpStatus.UNAUTHORIZED.value(),e.getMessage());
+        myAuthenticationFailureHandler.onAuthenticationFailure(request, response, e);
+        return;
+      }
+    }
+    filterChain.doFilter(request, response);
+  }
+
+  private void validate(HttpServletRequest request) throws ValidateCodeException {
+    if (!CodeUtil.checkVerifyCode(request)) {
+      throw new ValidateCodeException("验证码不匹配");
+    } else {
+      request.getSession().removeAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
+    }
+//    VerifyCode imageCode = (VerifyCode) request.getSession().getAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);
+//    String inputCode;
+//    try {
+//      inputCode = request.getParameter("imageCode");
+//    } catch (Exception e) {
+//      throw new ValidateCodeException("获取验证码的值失败");
+//    }
+//    if (StringUtil.isEmpty(inputCode)) {
+//      throw new ValidateCodeException("验证码不能为空");
+//    }
+//    if (null == imageCode) {
+//      throw new ValidateCodeException("验证码不存在");
+//    }
+//    if (imageCode.isExpired()) {
+//      request.getSession().removeAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);
+//      throw new ValidateCodeException("验证码已过期");
+//    }
+//    if (!StringUtil.equalsIgnoreCase(imageCode.getText(), inputCode)) {
+//      throw new ValidateCodeException("验证码不匹配");
+//    }
+//    request.getSession().removeAttribute(ImageCodeUtil.LOGIN_IMAGECODE_SESSIONKEY);
+  }
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiClientRepository.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiClientRepository.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiClientRepository.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiClientRepository.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiJwtRepository.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiJwtRepository.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiJwtRepository.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/ApiJwtRepository.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/redisrepo/PersonRepository.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/PersonRepository.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/redisrepo/PersonRepository.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/redisrepo/PersonRepository.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/CodeUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/CodeUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/security/CodeUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/CodeUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationFailureHandler.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationFailureHandler.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationFailureHandler.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationFailureHandler.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationSuccessHandler.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationSuccessHandler.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationSuccessHandler.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyAuthenticationSuccessHandler.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/MyInvalidSessionStrategy.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyInvalidSessionStrategy.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/security/MyInvalidSessionStrategy.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyInvalidSessionStrategy.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/OperUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/OperUtil.java
similarity index 99%
rename from src/main/java/com/supwisdom/dlpay/framework/security/OperUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/OperUtil.java
index d576b41..4dd8c9e 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/security/OperUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/OperUtil.java
@@ -1,68 +1,68 @@
-package com.supwisdom.dlpay.framework.security;

-

-import com.supwisdom.dlpay.framework.domain.TOperator;

-import org.springframework.security.core.Authentication;

-import org.springframework.security.core.GrantedAuthority;

-import org.springframework.security.core.context.SecurityContextHolder;

-

-import java.util.Collection;

-

-public class OperUtil {

-

-  public static TOperator getCurrentOper() {

-    Authentication au = SecurityContextHolder.getContext()

-        .getAuthentication();

-    if (au == null)

-      return null;

-    if (au.getPrincipal() == null)

-      return null;

-    if (au != null && au.getPrincipal() instanceof TOperator) {

-      return (TOperator) au.getPrincipal();

-    } else {

-      TOperator oper = new TOperator();

-      oper.setOpername(au.getPrincipal().toString());

-      oper.setOperpwd(au.getCredentials() == null ? null : au

-          .getCredentials().toString());

-      return oper;

-    }

-  }

-

-  public static String getCurrentOperid() {

-    TOperator oper = getCurrentOper();

-    if (oper == null)

-      return null;

-    return oper.getOperid() == null ? oper.getOpercode() : oper.getOperid();

-  }

-

-  public static boolean isLogined() {

-    Authentication au = SecurityContextHolder.getContext()

-        .getAuthentication();

-    if (au == null)

-      return false;

-    if (au.getPrincipal() == null)

-      return false;

-    if (au.getPrincipal() instanceof TOperator)

-      return true;

-    return false;

-  }

-

-  public static boolean isAdmin() {

-    TOperator loginOper = OperUtil.getCurrentOper();

-    if (loginOper != null) {

-      Collection<? extends GrantedAuthority> gas = loginOper.getAuthorities();

-      if (gas == null) {

-        return false;

-      }

-      boolean flag = false;

-      for (GrantedAuthority grantedAuthority : gas) {

-        if ("ROLE_ADMIN".equals(grantedAuthority.getAuthority())) {

-          flag = true;

-        }

-      }

-      return flag;

-    } else {

-      return false;

-    }

-  }

-

-}

+package com.supwisdom.dlpay.framework.security;
+
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+
+import java.util.Collection;
+
+public class OperUtil {
+
+  public static TOperator getCurrentOper() {
+    Authentication au = SecurityContextHolder.getContext()
+        .getAuthentication();
+    if (au == null)
+      return null;
+    if (au.getPrincipal() == null)
+      return null;
+    if (au != null && au.getPrincipal() instanceof TOperator) {
+      return (TOperator) au.getPrincipal();
+    } else {
+      TOperator oper = new TOperator();
+      oper.setOpername(au.getPrincipal().toString());
+      oper.setOperpwd(au.getCredentials() == null ? null : au
+          .getCredentials().toString());
+      return oper;
+    }
+  }
+
+  public static String getCurrentOperid() {
+    TOperator oper = getCurrentOper();
+    if (oper == null)
+      return null;
+    return oper.getOperid() == null ? oper.getOpercode() : oper.getOperid();
+  }
+
+  public static boolean isLogined() {
+    Authentication au = SecurityContextHolder.getContext()
+        .getAuthentication();
+    if (au == null)
+      return false;
+    if (au.getPrincipal() == null)
+      return false;
+    if (au.getPrincipal() instanceof TOperator)
+      return true;
+    return false;
+  }
+
+  public static boolean isAdmin() {
+    TOperator loginOper = OperUtil.getCurrentOper();
+    if (loginOper != null) {
+      Collection<? extends GrantedAuthority> gas = loginOper.getAuthorities();
+      if (gas == null) {
+        return false;
+      }
+      boolean flag = false;
+      for (GrantedAuthority grantedAuthority : gas) {
+        if ("ROLE_ADMIN".equals(grantedAuthority.getAuthority())) {
+          flag = true;
+        }
+      }
+      return flag;
+    } else {
+      return false;
+    }
+  }
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/ValidateCodeSecurityConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/ValidateCodeSecurityConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/security/ValidateCodeSecurityConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/ValidateCodeSecurityConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCode.java
similarity index 99%
rename from src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCode.java
index 6b56ca8..d88d3af 100755
--- a/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCode.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCode.java
@@ -1,21 +1,21 @@
-package com.supwisdom.dlpay.framework.security.validate;

-

-import java.awt.image.BufferedImage;

-

-public class ImageCode extends ValidateCode {

-	private BufferedImage image;

-

-	public ImageCode(BufferedImage image, String code, int expireTime) {

-		super(code, expireTime);

-		this.image = image;

-	}

-

-	public BufferedImage getImage() {

-		return image;

-	}

-

-	public void setImage(BufferedImage image) {

-		this.image = image;

-	}

-

-}

+package com.supwisdom.dlpay.framework.security.validate;
+
+import java.awt.image.BufferedImage;
+
+public class ImageCode extends ValidateCode {
+	private BufferedImage image;
+
+	public ImageCode(BufferedImage image, String code, int expireTime) {
+		super(code, expireTime);
+		this.image = image;
+	}
+
+	public BufferedImage getImage() {
+		return image;
+	}
+
+	public void setImage(BufferedImage image) {
+		this.image = image;
+	}
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCodeUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCodeUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCodeUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ImageCodeUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/validate/ValidateCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ValidateCode.java
similarity index 99%
rename from src/main/java/com/supwisdom/dlpay/framework/security/validate/ValidateCode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ValidateCode.java
index b20eca2..67a4812 100755
--- a/src/main/java/com/supwisdom/dlpay/framework/security/validate/ValidateCode.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/ValidateCode.java
@@ -1,55 +1,55 @@
-package com.supwisdom.dlpay.framework.security.validate;

-

-import com.fasterxml.jackson.annotation.JsonIgnore;

-import com.supwisdom.dlpay.framework.util.DateUtil;

-import java.util.Date;

-

-

-public class ValidateCode{

-

-	private String code;

-	

-	private Date expireTime;

-

-	public ValidateCode() {

-		super();

-	}

-

-	public ValidateCode(String code, Date expireTime) {

-		super();

-		this.code = code;

-		this.expireTime = expireTime;

-	}

-

-	public ValidateCode(String code, int expireTime) {

-		super();

-		this.code = code;

-		this.expireTime = DateUtil.setMinutes(new Date(), expireTime);

-	}

-

-	public String getCode() {

-		return code;

-	}

-

-	public void setCode(String code) {

-		this.code = code;

-	}

-

-	public Date getExpireTime() {

-		return expireTime;

-	}

-

-	public void setExpireTime(Date expireTime) {

-		this.expireTime = expireTime;

-	}

-

-	@JsonIgnore

-	public boolean isExpired() {

-		return new Date().compareTo(expireTime) > 0;

-	}

-

-	@Override

-	public String toString() {

-		return "ValidateCode [code=" + code + ", expireTime=" + expireTime + "]";

-	}

-}

+package com.supwisdom.dlpay.framework.security.validate;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import java.util.Date;
+
+
+public class ValidateCode{
+
+	private String code;
+	
+	private Date expireTime;
+
+	public ValidateCode() {
+		super();
+	}
+
+	public ValidateCode(String code, Date expireTime) {
+		super();
+		this.code = code;
+		this.expireTime = expireTime;
+	}
+
+	public ValidateCode(String code, int expireTime) {
+		super();
+		this.code = code;
+		this.expireTime = DateUtil.setMinutes(new Date(), expireTime);
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Date getExpireTime() {
+		return expireTime;
+	}
+
+	public void setExpireTime(Date expireTime) {
+		this.expireTime = expireTime;
+	}
+
+	@JsonIgnore
+	public boolean isExpired() {
+		return new Date().compareTo(expireTime) > 0;
+	}
+
+	@Override
+	public String toString() {
+		return "ValidateCode [code=" + code + ", expireTime=" + expireTime + "]";
+	}
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/validate/VerifyCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/VerifyCode.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/security/validate/VerifyCode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/security/validate/VerifyCode.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/OperatorDetailService.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/OperatorDetailService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/service/OperatorDetailService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/service/OperatorDetailService.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/OperatorDetailServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/OperatorDetailServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/service/impl/OperatorDetailServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/OperatorDetailServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantConnectionProviderImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantIdentifierResolver.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantIdentifierResolver.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantIdentifierResolver.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/MultiTenantIdentifierResolver.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantContext.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantContext.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/tenant/TenantContext.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantContext.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantInterceptor.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/Constants.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Constants.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/Constants.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/Constants.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/Dictionary.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Dictionary.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/Dictionary.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/Dictionary.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/MD5.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/MD5.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/MD5.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/MD5.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/MoneyUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/NumberUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/NumberUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/NumberUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/NumberUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/PageResult.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/PageResult.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/PageResult.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/PageResult.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/RandomUtils.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/RandomUtils.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/RandomUtils.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/RandomUtils.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/Sign.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Sign.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/Sign.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/Sign.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/Subject.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Subject.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/Subject.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/Subject.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeSummary.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/Tradetype.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/Tradetype.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/Tradetype.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/Tradetype.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/TranstypeCode.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/WebConstant.java
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java
rename to payapi/src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/AccountPerson.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/AccountPerson.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/AccountPerson.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/AccountPerson.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/IdTypeBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/IdTypeBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/IdTypeBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/IdTypeBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/LogBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/OperatorSearchBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/OperatorSearchBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/OperatorSearchBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/OperatorSearchBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/PersonParamBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/PersonParamBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/PersonParamBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/PersonParamBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessInfo.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessInfo.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessInfo.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessInfo.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessShowBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessShowBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessShowBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopBusinessShowBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/ShopConfigBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopConfigBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/ShopConfigBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopConfigBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/ShopdtlSearchBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayInfo.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayInfo.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayInfo.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayInfo.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayShowBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayShowBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayShowBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDayShowBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/TreeSelectNode.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/UserdtlSearchBean.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/ZTreeNode.java b/payapi/src/main/java/com/supwisdom/dlpay/system/bean/ZTreeNode.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/bean/ZTreeNode.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/bean/ZTreeNode.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/DictPoolAction.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/RoleController.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/UserController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/UserController.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/controller/UserController.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/controller/UserController.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryDataService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/DictionaryProxy.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/DtlDataService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/OperatorService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/ParamService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/ParamService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/ParamService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/ParamService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/RoleService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DictionaryDataServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
rename to payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
diff --git a/src/main/java/com/supwisdom/dlpay/util/Code.java b/payapi/src/main/java/com/supwisdom/dlpay/util/Code.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/util/Code.java
rename to payapi/src/main/java/com/supwisdom/dlpay/util/Code.java
diff --git a/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/util/DESedeUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/util/DESedeUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/util/DESedeUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/util/DESedeUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/util/DlpayUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/util/DlpayUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/util/DlpayUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/util/DlpayUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/util/PaytypeUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/util/PaytypeUtil.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/util/PaytypeUtil.java
rename to payapi/src/main/java/com/supwisdom/dlpay/util/PaytypeUtil.java
diff --git a/src/main/java/com/supwisdom/dlpay/util/WebCheckException.java b/payapi/src/main/java/com/supwisdom/dlpay/util/WebCheckException.java
similarity index 100%
rename from src/main/java/com/supwisdom/dlpay/util/WebCheckException.java
rename to payapi/src/main/java/com/supwisdom/dlpay/util/WebCheckException.java
diff --git a/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/async_tasks.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/consume_pay_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/consume_pay_service.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/consume_pay_service.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/consume_pay_service.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/account_service_impl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/consume_pay_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/consume_pay_service_impl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/consume_pay_service_impl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/consume_pay_service_impl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/pay_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/pay_service_impl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/pay_service_impl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/pay_service_impl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/framework_controller.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/service/framework_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/framework_service.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/framework/service/framework_service.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/framework_service.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/tenant.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/tenant.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/framework/tenant.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/framework/tenant.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/dao/MobileUserDao.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/dao/MobileUserDao.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/dao/MobileUserDao.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/dao/MobileUserDao.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/exception/UserLoginFailException.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/exception/UserLoginFailException.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/exception/UserLoginFailException.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/exception/UserLoginFailException.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileUserService.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileUserService.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileUserService.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileUserService.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileUserServiceImpl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileUserServiceImpl.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileUserServiceImpl.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileUserServiceImpl.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/oauth.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/oauth.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/oauth.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/oauth.kt
diff --git a/src/main/kotlin/com/supwisdom/dlpay/security.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/security.kt
similarity index 100%
rename from src/main/kotlin/com/supwisdom/dlpay/security.kt
rename to payapi/src/main/kotlin/com/supwisdom/dlpay/security.kt
diff --git a/src/main/resources/application.properties b/payapi/src/main/resources/application.properties
similarity index 100%
rename from src/main/resources/application.properties
rename to payapi/src/main/resources/application.properties
diff --git a/src/main/resources/data-postgresql.sql b/payapi/src/main/resources/data-postgresql.sql
similarity index 100%
rename from src/main/resources/data-postgresql.sql
rename to payapi/src/main/resources/data-postgresql.sql
diff --git a/src/main/resources/data.sql b/payapi/src/main/resources/data.sql
similarity index 100%
rename from src/main/resources/data.sql
rename to payapi/src/main/resources/data.sql
diff --git a/src/main/resources/static/custom/css/admin.css b/payapi/src/main/resources/static/custom/css/admin.css
similarity index 100%
rename from src/main/resources/static/custom/css/admin.css
rename to payapi/src/main/resources/static/custom/css/admin.css
diff --git a/src/main/resources/static/custom/css/console.css b/payapi/src/main/resources/static/custom/css/console.css
similarity index 100%
rename from src/main/resources/static/custom/css/console.css
rename to payapi/src/main/resources/static/custom/css/console.css
diff --git a/src/main/resources/static/custom/css/login.css b/payapi/src/main/resources/static/custom/css/login.css
similarity index 100%
rename from src/main/resources/static/custom/css/login.css
rename to payapi/src/main/resources/static/custom/css/login.css
diff --git a/src/main/resources/static/custom/css/theme-blue.css b/payapi/src/main/resources/static/custom/css/theme-blue.css
similarity index 100%
rename from src/main/resources/static/custom/css/theme-blue.css
rename to payapi/src/main/resources/static/custom/css/theme-blue.css
diff --git a/src/main/resources/static/custom/images/bg_login.png b/payapi/src/main/resources/static/custom/images/bg_login.png
similarity index 100%
rename from src/main/resources/static/custom/images/bg_login.png
rename to payapi/src/main/resources/static/custom/images/bg_login.png
Binary files differ
diff --git a/src/main/resources/static/custom/images/head.png b/payapi/src/main/resources/static/custom/images/head.png
similarity index 100%
rename from src/main/resources/static/custom/images/head.png
rename to payapi/src/main/resources/static/custom/images/head.png
Binary files differ
diff --git a/src/main/resources/static/custom/images/logo.png b/payapi/src/main/resources/static/custom/images/logo.png
similarity index 100%
rename from src/main/resources/static/custom/images/logo.png
rename to payapi/src/main/resources/static/custom/images/logo.png
Binary files differ
diff --git a/src/main/resources/static/custom/module/admin.js b/payapi/src/main/resources/static/custom/module/admin.js
similarity index 99%
rename from src/main/resources/static/custom/module/admin.js
rename to payapi/src/main/resources/static/custom/module/admin.js
index e15cfdf..cbdbc36 100755
--- a/src/main/resources/static/custom/module/admin.js
+++ b/payapi/src/main/resources/static/custom/module/admin.js
@@ -1,387 +1,387 @@
-layui.define(['layer'], function (exports) {

-    var layer = layui.layer;

-    var popupRightIndex, popupCenterIndex, popupCenterParam;

-    var baseUrl = window.location.pathname;

-

-    var admin = {

-        isRefresh: false,

-        // 设置侧栏折叠

-        flexible: function (expand) {

-            var isExapnd = $('.layui-layout-admin').hasClass('admin-nav-mini');

-            if (isExapnd == !expand) {

-                return;

-            }

-            if (expand) {

-                $('.layui-layout-admin').removeClass('admin-nav-mini');

-            } else {

-                $('.layui-layout-admin').addClass('admin-nav-mini');

-            }

-        },

-        // 设置导航栏选中

-        activeNav: function (url) {

-            $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child dd').removeClass('layui-this');

-            $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-this');

-            if (url && url != '') {

-                $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-nav-itemed');

-                var $a = $('.layui-layout-admin .layui-side .layui-nav a[href="#!' + url + '"]');

-                $a.parent('li').addClass('layui-this');

-                $a.parent('dd').addClass('layui-this');

-                $a.parent('dd').parent('.layui-nav-child').parent('.layui-nav-item').addClass('layui-nav-itemed');

-            }

-        },

-        // 右侧弹出

-        popupRight: function (path) {

-            var param = new Object();

-            param.path = path;

-            param.id = 'adminPopupR';

-            param.title = false;

-            param.anim = 2;

-            param.isOutAnim = false;

-            param.closeBtn = false;

-            param.offset = 'r';

-            param.shadeClose = true;

-            param.area = '336px';

-            param.skin = 'layui-layer-adminRight';

-            param.end = function () {

-                layer.closeAll('tips');

-            };

-            popupRightIndex = admin.open(param);

-            return popupRightIndex;

-        },

-        // 关闭右侧弹出

-        closePopupRight: function () {

-            layer.close(popupRightIndex);

-        },

-        // 中间弹出

-        popupCenter: function (param) {

-            param.id = 'adminPopupC';

-            popupCenterParam = param;

-            popupCenterIndex = admin.open(param);

-            return popupCenterIndex;

-        },

-        // 关闭中间弹出并且触发finish回调

-        finishPopupCenter: function () {

-            layer.close(popupCenterIndex);

-            popupCenterParam.finish ? popupCenterParam.finish() : '';

-        },

-        // 关闭中间弹出

-        closePopupCenter: function () {

-            layer.close(popupCenterIndex);

-        },

-        // 封装layer.open

-        open: function (param) {

-            var sCallBack = param.success;

-            param.type = 1;

-            param.area = param.area ? param.area : '450px';

-            param.offset = param.offset ? param.offset : '120px';

-            param.resize ? param.resize : false;

-            param.shade ? param.shade : .2;

-            param.success = function (layero, index) {

-                sCallBack ? sCallBack(layero, index) : '';

-                admin.ajax({

-                    url: param.path,

-                    type: 'GET',

-                    dataType: 'html',

-                    success: function (result, status, xhr) {

-                        $(layero).children('.layui-layer-content').html(result);

-                    }

-                });

-            };

-            return layer.open(param);

-        },

-        

-        go:function(url,data,success,error){

-        	  $.ajax({

-        		  url: url,

-        		  data: data,

-        		  async: false,

-        		  dataType: 'json',

-        		  type: 'post',

-        		  success: success,

-                  error:error

-        	  })

-        },

-        dgo:function(url,data,success,error){

-      	  $.ajax({

-      		  url: url,

-      		  data: data,

-      		  async: false,

-      		  dataType: 'json',

-      		  type: 'get',

-      		  success: success,

-              error:error

-      	  })

-      },

-        // 封装ajax请求,返回数据类型为json

-        req: function (url, data, success, method) {

-            admin.ajax({

-                url: url,

-                data: data,

-                async: false,

-                type: method,

-                dataType: 'json',

-                success: success

-            });

-        },

-        // 封装ajax请求

-        ajax: function (param) {

-        	console.log(param);

-            var successCallback = param.success;

-            param.success = function (result, status, xhr) {

-                // 判断登录过期和没有权限

-                var jsonRs;

-                if ('json' == param.dataType.toLowerCase()) {

-                    jsonRs = result;

-                } else if ('html' == param.dataType.toLowerCase() || 'text' == param.dataType.toLowerCase()) {

-                    jsonRs = admin.parseJSON(result);

-                }

-                if (jsonRs) {

-                    if (jsonRs.code == 401) {

-                        layer.msg(jsonRs.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('/login');

-                        }, 1000);

-                        return;

-                    } else if ('html' == param.dataType.toLowerCase() && jsonRs.code == 403) {

-                        layer.msg(jsonRs.msg, {icon: 2});

-                    }

-                }

-                successCallback(result, status, xhr);

-            };

-            param.error = function (xhr) {

-                //{code: xhr.status, msg: xhr.statusText}

-                param.success(xhr.responseText,xhr.status,xhr);

-            };

-            $.ajax(param);

-        },

-        // 显示加载动画

-        showLoading: function (element) {

-            $(element).append('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop admin-loading"></i>');

-        },

-        // 移除加载动画

-        removeLoading: function (element) {

-            $(element + '>.admin-loading').remove();

-        },

-        // 缓存临时数据

-        putTempData: function (key, value) {

-            if (value) {

-                layui.sessionData('tempData', {key: key, value: value});

-            } else {

-                layui.sessionData('tempData', {key: key, remove: true});

-            }

-        },

-        // 获取缓存临时数据

-        getTempData: function (key) {

-            return layui.sessionData('tempData')[key];

-        },

-        // 滑动选项卡

-        rollPage: function (d) {

-            var $tabTitle = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title');

-            var left = $tabTitle.scrollLeft();

-            if ('left' === d) {

-                $tabTitle.scrollLeft(left - 120);

-            } else if ('auto' === d) {

-                var autoLeft = 0;

-                $tabTitle.children("li").each(function () {

-                    if ($(this).hasClass('layui-this')) {

-                        return false;

-                    } else {

-                        autoLeft += $(this).outerWidth();

-                    }

-                });

-                $tabTitle.scrollLeft(autoLeft - 47);

-            } else {

-                $tabTitle.scrollLeft(left + 120);

-            }

-        },

-        // 刷新主题部分

-        refresh: function () {

-            admin.isRefresh = true;

-            Q.refresh();

-        },

-        // 判断是否为json

-        parseJSON: function (str) {

-            if (typeof str == 'string') {

-                try {

-                    var obj = JSON.parse(str);

-                    if (typeof obj == 'object' && obj) {

-                        return obj;

-                    }

-                } catch (e) {

-                }

-            }

-        },

-        formatDate:function (str) {

-            if (str == null || str == "") {

-                return;

-            }

-            switch (str.length) {

-                case 8:

-                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8);

-                    return str;

-                case 12:

-                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10)

-                        + ":" + str.substring(10, 12);

-                    return str;

-                case 14:

-                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10)

-                        + ":" + str.substring(10, 12) + ":" + str.substring(12, 14);

-                    return str;

-                default:

-                    return str;

-            }

-        },

-        errorBack: function (err) {

-            layer.closeAll('loading');

-            if (403 == err.status) {

-                layer.msg("无资源权限!", {icon: 2, time: 1500});

-                return;

-            }

-            if (200 == err.status) {

-                layer.msg("请求异常,请刷新页面重新操作", {icon: 2, time: 1500});

-                return;

-            } else {

-                layer.msg("请求服务器失败!", {icon: 2});

-            }

-        }

-    };

-

-    // ewAdmin提供的事件

-    admin.events = {

-        // 折叠侧导航

-        flexible: function (e) {

-            var expand = $('.layui-layout-admin').hasClass('admin-nav-mini');

-            admin.flexible(expand);

-        },

-        // 刷新主体部分

-        refresh: function () {

-            admin.refresh();

-        },

-        //后退

-        back: function () {

-            history.back();

-        },

-        // 设置主题

-        theme: function () {

-            admin.popupRight(baseUrl+'home/theme');

-        },

-        // 全屏

-        fullScreen: function (e) {

-            var ac = 'layui-icon-screen-full', ic = 'layui-icon-screen-restore';

-            var ti = $(this).find('i');

-

-            var isFullscreen = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || false;

-            if (isFullscreen) {

-                var efs = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen;

-                if (efs) {

-                    efs.call(document);

-                } else if (window.ActiveXObject) {

-                    var ws = new ActiveXObject('WScript.Shell');

-                    ws && ws.SendKeys('{F11}');

-                }

-                ti.addClass(ac).removeClass(ic);

-            } else {

-                var el = document.documentElement;

-                var rfs = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen;

-                if (rfs) {

-                    rfs.call(el);

-                } else if (window.ActiveXObject) {

-                    var ws = new ActiveXObject('WScript.Shell');

-                    ws && ws.SendKeys('{F11}');

-                }

-                ti.addClass(ic).removeClass(ac);

-            }

-        },

-        // 左滑动tab

-        leftPage: function () {

-            admin.rollPage("left");

-        },

-        // 右滑动tab

-        rightPage: function () {

-            admin.rollPage();

-        },

-        // 关闭当前选项卡

-        closeThisTabs: function () {

-            var $title = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title');

-            if ($title.find('li').first().hasClass('layui-this')) {

-                return;

-            }

-            $title.find('li.layui-this').find(".layui-tab-close").trigger("click");

-        },

-        // 关闭其他选项卡

-        closeOtherTabs: function () {

-            $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0):not(.layui-this)').find('.layui-tab-close').trigger('click');

-        },

-        // 关闭所有选项卡

-        closeAllTabs: function () {

-            $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0)').find('.layui-tab-close').trigger('click');

-        },

-        // 关闭所有弹窗

-        closeDialog: function () {

-            layer.closeAll('page');

-        },

-        //刷新字典

-        refreshDict: function (){

-            layer.confirm('确定要刷新数据字典吗?', {

-                    btn: ['确定', '取消']

-                }, function (index, layero) {

-                    layer.closeAll('dialog');  //加入这个信息点击确定 会关闭这个消息框

-                    admin.dgo(baseUrl+"dictrefresh", {}, function (data) {

-                        if (data.code == 200) {

-                            layer.msg("刷新数据字典成功!", {icon: 1, time: 1000});

-                            DictPoolToolkit().initAll(baseUrl+"dictpool");

-                        } else if (data.code == 401) {

-                            layer.msg(data.msg, {icon: 2, time: 1500}, function () {

-                                location.replace('/login');

-                            }, 1000);

-                            return;

-                        } else {

-                            layer.msg(data.msg, {icon: 2, time: 1500});

-                        }

-                    }, function () {

-                        layer.msg("数据字典刷新失败,访问服务器失败!", {icon: 2, time: 1500});

-                    });

-                });

-        }

-    };

-

-    // 所有ew-event

-    $('body').on('click', '*[ew-event]', function () {

-        var event = $(this).attr('ew-event');

-        var te = admin.events[event];

-        te && te.call(this, $(this));

-    });

-

-    // 移动设备遮罩层点击事件

-    $('.site-mobile-shade').click(function () {

-        admin.flexible(true);

-    });

-

-    // 侧导航折叠状态下鼠标经过显示提示

-    $('body').on('mouseenter', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {

-        var tipText = $(this).find('cite').text();

-        if (document.body.clientWidth > 750) {

-            layer.tips(tipText, this);

-        }

-    }).on('mouseleave', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {

-        layer.closeAll('tips');

-    });

-

-    // 侧导航折叠状态下点击展开

-    $('body').on('click', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {

-        if (document.body.clientWidth > 750) {

-            layer.closeAll('tips');

-            admin.flexible(true);

-        }

-    });

-

-    // 所有lay-tips处理

-    $('body').on('mouseenter', '*[lay-tips]', function () {

-        var tipText = $(this).attr('lay-tips');

-        var dt = $(this).attr('lay-direction');

-        layer.tips(tipText, this, {tips: dt || 1, time: -1});

-    }).on('mouseleave', '*[lay-tips]', function () {

-        layer.closeAll('tips');

-    });

-

-    exports('admin', admin);

-});

+layui.define(['layer'], function (exports) {
+    var layer = layui.layer;
+    var popupRightIndex, popupCenterIndex, popupCenterParam;
+    var baseUrl = window.location.pathname;
+
+    var admin = {
+        isRefresh: false,
+        // 设置侧栏折叠
+        flexible: function (expand) {
+            var isExapnd = $('.layui-layout-admin').hasClass('admin-nav-mini');
+            if (isExapnd == !expand) {
+                return;
+            }
+            if (expand) {
+                $('.layui-layout-admin').removeClass('admin-nav-mini');
+            } else {
+                $('.layui-layout-admin').addClass('admin-nav-mini');
+            }
+        },
+        // 设置导航栏选中
+        activeNav: function (url) {
+            $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child dd').removeClass('layui-this');
+            $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-this');
+            if (url && url != '') {
+                $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-nav-itemed');
+                var $a = $('.layui-layout-admin .layui-side .layui-nav a[href="#!' + url + '"]');
+                $a.parent('li').addClass('layui-this');
+                $a.parent('dd').addClass('layui-this');
+                $a.parent('dd').parent('.layui-nav-child').parent('.layui-nav-item').addClass('layui-nav-itemed');
+            }
+        },
+        // 右侧弹出
+        popupRight: function (path) {
+            var param = new Object();
+            param.path = path;
+            param.id = 'adminPopupR';
+            param.title = false;
+            param.anim = 2;
+            param.isOutAnim = false;
+            param.closeBtn = false;
+            param.offset = 'r';
+            param.shadeClose = true;
+            param.area = '336px';
+            param.skin = 'layui-layer-adminRight';
+            param.end = function () {
+                layer.closeAll('tips');
+            };
+            popupRightIndex = admin.open(param);
+            return popupRightIndex;
+        },
+        // 关闭右侧弹出
+        closePopupRight: function () {
+            layer.close(popupRightIndex);
+        },
+        // 中间弹出
+        popupCenter: function (param) {
+            param.id = 'adminPopupC';
+            popupCenterParam = param;
+            popupCenterIndex = admin.open(param);
+            return popupCenterIndex;
+        },
+        // 关闭中间弹出并且触发finish回调
+        finishPopupCenter: function () {
+            layer.close(popupCenterIndex);
+            popupCenterParam.finish ? popupCenterParam.finish() : '';
+        },
+        // 关闭中间弹出
+        closePopupCenter: function () {
+            layer.close(popupCenterIndex);
+        },
+        // 封装layer.open
+        open: function (param) {
+            var sCallBack = param.success;
+            param.type = 1;
+            param.area = param.area ? param.area : '450px';
+            param.offset = param.offset ? param.offset : '120px';
+            param.resize ? param.resize : false;
+            param.shade ? param.shade : .2;
+            param.success = function (layero, index) {
+                sCallBack ? sCallBack(layero, index) : '';
+                admin.ajax({
+                    url: param.path,
+                    type: 'GET',
+                    dataType: 'html',
+                    success: function (result, status, xhr) {
+                        $(layero).children('.layui-layer-content').html(result);
+                    }
+                });
+            };
+            return layer.open(param);
+        },
+        
+        go:function(url,data,success,error){
+        	  $.ajax({
+        		  url: url,
+        		  data: data,
+        		  async: false,
+        		  dataType: 'json',
+        		  type: 'post',
+        		  success: success,
+                  error:error
+        	  })
+        },
+        dgo:function(url,data,success,error){
+      	  $.ajax({
+      		  url: url,
+      		  data: data,
+      		  async: false,
+      		  dataType: 'json',
+      		  type: 'get',
+      		  success: success,
+              error:error
+      	  })
+      },
+        // 封装ajax请求,返回数据类型为json
+        req: function (url, data, success, method) {
+            admin.ajax({
+                url: url,
+                data: data,
+                async: false,
+                type: method,
+                dataType: 'json',
+                success: success
+            });
+        },
+        // 封装ajax请求
+        ajax: function (param) {
+        	console.log(param);
+            var successCallback = param.success;
+            param.success = function (result, status, xhr) {
+                // 判断登录过期和没有权限
+                var jsonRs;
+                if ('json' == param.dataType.toLowerCase()) {
+                    jsonRs = result;
+                } else if ('html' == param.dataType.toLowerCase() || 'text' == param.dataType.toLowerCase()) {
+                    jsonRs = admin.parseJSON(result);
+                }
+                if (jsonRs) {
+                    if (jsonRs.code == 401) {
+                        layer.msg(jsonRs.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('/login');
+                        }, 1000);
+                        return;
+                    } else if ('html' == param.dataType.toLowerCase() && jsonRs.code == 403) {
+                        layer.msg(jsonRs.msg, {icon: 2});
+                    }
+                }
+                successCallback(result, status, xhr);
+            };
+            param.error = function (xhr) {
+                //{code: xhr.status, msg: xhr.statusText}
+                param.success(xhr.responseText,xhr.status,xhr);
+            };
+            $.ajax(param);
+        },
+        // 显示加载动画
+        showLoading: function (element) {
+            $(element).append('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop admin-loading"></i>');
+        },
+        // 移除加载动画
+        removeLoading: function (element) {
+            $(element + '>.admin-loading').remove();
+        },
+        // 缓存临时数据
+        putTempData: function (key, value) {
+            if (value) {
+                layui.sessionData('tempData', {key: key, value: value});
+            } else {
+                layui.sessionData('tempData', {key: key, remove: true});
+            }
+        },
+        // 获取缓存临时数据
+        getTempData: function (key) {
+            return layui.sessionData('tempData')[key];
+        },
+        // 滑动选项卡
+        rollPage: function (d) {
+            var $tabTitle = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title');
+            var left = $tabTitle.scrollLeft();
+            if ('left' === d) {
+                $tabTitle.scrollLeft(left - 120);
+            } else if ('auto' === d) {
+                var autoLeft = 0;
+                $tabTitle.children("li").each(function () {
+                    if ($(this).hasClass('layui-this')) {
+                        return false;
+                    } else {
+                        autoLeft += $(this).outerWidth();
+                    }
+                });
+                $tabTitle.scrollLeft(autoLeft - 47);
+            } else {
+                $tabTitle.scrollLeft(left + 120);
+            }
+        },
+        // 刷新主题部分
+        refresh: function () {
+            admin.isRefresh = true;
+            Q.refresh();
+        },
+        // 判断是否为json
+        parseJSON: function (str) {
+            if (typeof str == 'string') {
+                try {
+                    var obj = JSON.parse(str);
+                    if (typeof obj == 'object' && obj) {
+                        return obj;
+                    }
+                } catch (e) {
+                }
+            }
+        },
+        formatDate:function (str) {
+            if (str == null || str == "") {
+                return;
+            }
+            switch (str.length) {
+                case 8:
+                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8);
+                    return str;
+                case 12:
+                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10)
+                        + ":" + str.substring(10, 12);
+                    return str;
+                case 14:
+                    str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10)
+                        + ":" + str.substring(10, 12) + ":" + str.substring(12, 14);
+                    return str;
+                default:
+                    return str;
+            }
+        },
+        errorBack: function (err) {
+            layer.closeAll('loading');
+            if (403 == err.status) {
+                layer.msg("无资源权限!", {icon: 2, time: 1500});
+                return;
+            }
+            if (200 == err.status) {
+                layer.msg("请求异常,请刷新页面重新操作", {icon: 2, time: 1500});
+                return;
+            } else {
+                layer.msg("请求服务器失败!", {icon: 2});
+            }
+        }
+    };
+
+    // ewAdmin提供的事件
+    admin.events = {
+        // 折叠侧导航
+        flexible: function (e) {
+            var expand = $('.layui-layout-admin').hasClass('admin-nav-mini');
+            admin.flexible(expand);
+        },
+        // 刷新主体部分
+        refresh: function () {
+            admin.refresh();
+        },
+        //后退
+        back: function () {
+            history.back();
+        },
+        // 设置主题
+        theme: function () {
+            admin.popupRight(baseUrl+'home/theme');
+        },
+        // 全屏
+        fullScreen: function (e) {
+            var ac = 'layui-icon-screen-full', ic = 'layui-icon-screen-restore';
+            var ti = $(this).find('i');
+
+            var isFullscreen = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || false;
+            if (isFullscreen) {
+                var efs = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen;
+                if (efs) {
+                    efs.call(document);
+                } else if (window.ActiveXObject) {
+                    var ws = new ActiveXObject('WScript.Shell');
+                    ws && ws.SendKeys('{F11}');
+                }
+                ti.addClass(ac).removeClass(ic);
+            } else {
+                var el = document.documentElement;
+                var rfs = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen;
+                if (rfs) {
+                    rfs.call(el);
+                } else if (window.ActiveXObject) {
+                    var ws = new ActiveXObject('WScript.Shell');
+                    ws && ws.SendKeys('{F11}');
+                }
+                ti.addClass(ic).removeClass(ac);
+            }
+        },
+        // 左滑动tab
+        leftPage: function () {
+            admin.rollPage("left");
+        },
+        // 右滑动tab
+        rightPage: function () {
+            admin.rollPage();
+        },
+        // 关闭当前选项卡
+        closeThisTabs: function () {
+            var $title = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title');
+            if ($title.find('li').first().hasClass('layui-this')) {
+                return;
+            }
+            $title.find('li.layui-this').find(".layui-tab-close").trigger("click");
+        },
+        // 关闭其他选项卡
+        closeOtherTabs: function () {
+            $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0):not(.layui-this)').find('.layui-tab-close').trigger('click');
+        },
+        // 关闭所有选项卡
+        closeAllTabs: function () {
+            $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0)').find('.layui-tab-close').trigger('click');
+        },
+        // 关闭所有弹窗
+        closeDialog: function () {
+            layer.closeAll('page');
+        },
+        //刷新字典
+        refreshDict: function (){
+            layer.confirm('确定要刷新数据字典吗?', {
+                    btn: ['确定', '取消']
+                }, function (index, layero) {
+                    layer.closeAll('dialog');  //加入这个信息点击确定 会关闭这个消息框
+                    admin.dgo(baseUrl+"dictrefresh", {}, function (data) {
+                        if (data.code == 200) {
+                            layer.msg("刷新数据字典成功!", {icon: 1, time: 1000});
+                            DictPoolToolkit().initAll(baseUrl+"dictpool");
+                        } else if (data.code == 401) {
+                            layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                                location.replace('/login');
+                            }, 1000);
+                            return;
+                        } else {
+                            layer.msg(data.msg, {icon: 2, time: 1500});
+                        }
+                    }, function () {
+                        layer.msg("数据字典刷新失败,访问服务器失败!", {icon: 2, time: 1500});
+                    });
+                });
+        }
+    };
+
+    // 所有ew-event
+    $('body').on('click', '*[ew-event]', function () {
+        var event = $(this).attr('ew-event');
+        var te = admin.events[event];
+        te && te.call(this, $(this));
+    });
+
+    // 移动设备遮罩层点击事件
+    $('.site-mobile-shade').click(function () {
+        admin.flexible(true);
+    });
+
+    // 侧导航折叠状态下鼠标经过显示提示
+    $('body').on('mouseenter', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {
+        var tipText = $(this).find('cite').text();
+        if (document.body.clientWidth > 750) {
+            layer.tips(tipText, this);
+        }
+    }).on('mouseleave', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {
+        layer.closeAll('tips');
+    });
+
+    // 侧导航折叠状态下点击展开
+    $('body').on('click', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () {
+        if (document.body.clientWidth > 750) {
+            layer.closeAll('tips');
+            admin.flexible(true);
+        }
+    });
+
+    // 所有lay-tips处理
+    $('body').on('mouseenter', '*[lay-tips]', function () {
+        var tipText = $(this).attr('lay-tips');
+        var dt = $(this).attr('lay-direction');
+        layer.tips(tipText, this, {tips: dt || 1, time: -1});
+    }).on('mouseleave', '*[lay-tips]', function () {
+        layer.closeAll('tips');
+    });
+
+    exports('admin', admin);
+});
diff --git a/src/main/resources/static/custom/module/formSelects/formSelects-v4.all.js b/payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.all.js
similarity index 100%
rename from src/main/resources/static/custom/module/formSelects/formSelects-v4.all.js
rename to payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.all.js
diff --git a/src/main/resources/static/custom/module/formSelects/formSelects-v4.css b/payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.css
similarity index 100%
rename from src/main/resources/static/custom/module/formSelects/formSelects-v4.css
rename to payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.css
diff --git a/src/main/resources/static/custom/module/formSelects/formSelects-v4.js b/payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.js
similarity index 100%
rename from src/main/resources/static/custom/module/formSelects/formSelects-v4.js
rename to payapi/src/main/resources/static/custom/module/formSelects/formSelects-v4.js
diff --git a/src/main/resources/static/custom/module/index.js b/payapi/src/main/resources/static/custom/module/index.js
similarity index 100%
rename from src/main/resources/static/custom/module/index.js
rename to payapi/src/main/resources/static/custom/module/index.js
diff --git a/src/main/resources/static/custom/module/treeSelect/treeSelect.js b/payapi/src/main/resources/static/custom/module/treeSelect/treeSelect.js
similarity index 100%
rename from src/main/resources/static/custom/module/treeSelect/treeSelect.js
rename to payapi/src/main/resources/static/custom/module/treeSelect/treeSelect.js
diff --git a/src/main/resources/static/custom/module/treetable-lay/treetable.css b/payapi/src/main/resources/static/custom/module/treetable-lay/treetable.css
similarity index 100%
rename from src/main/resources/static/custom/module/treetable-lay/treetable.css
rename to payapi/src/main/resources/static/custom/module/treetable-lay/treetable.css
diff --git a/src/main/resources/static/custom/module/treetable-lay/treetable.js b/payapi/src/main/resources/static/custom/module/treetable-lay/treetable.js
similarity index 100%
rename from src/main/resources/static/custom/module/treetable-lay/treetable.js
rename to payapi/src/main/resources/static/custom/module/treetable-lay/treetable.js
diff --git a/src/main/resources/static/libs/custom.js b/payapi/src/main/resources/static/libs/custom.js
similarity index 100%
rename from src/main/resources/static/libs/custom.js
rename to payapi/src/main/resources/static/libs/custom.js
diff --git a/src/main/resources/static/libs/jquery/jquery-3.2.1.min.js b/payapi/src/main/resources/static/libs/jquery/jquery-3.2.1.min.js
similarity index 100%
rename from src/main/resources/static/libs/jquery/jquery-3.2.1.min.js
rename to payapi/src/main/resources/static/libs/jquery/jquery-3.2.1.min.js
diff --git a/src/main/resources/static/libs/layui/css/layui.css b/payapi/src/main/resources/static/libs/layui/css/layui.css
similarity index 100%
rename from src/main/resources/static/libs/layui/css/layui.css
rename to payapi/src/main/resources/static/libs/layui/css/layui.css
diff --git a/src/main/resources/static/libs/layui/css/layui.mobile.css b/payapi/src/main/resources/static/libs/layui/css/layui.mobile.css
similarity index 100%
rename from src/main/resources/static/libs/layui/css/layui.mobile.css
rename to payapi/src/main/resources/static/libs/layui/css/layui.mobile.css
diff --git a/src/main/resources/static/libs/layui/css/modules/code.css b/payapi/src/main/resources/static/libs/layui/css/modules/code.css
similarity index 100%
rename from src/main/resources/static/libs/layui/css/modules/code.css
rename to payapi/src/main/resources/static/libs/layui/css/modules/code.css
diff --git a/src/main/resources/static/libs/layui/css/modules/laydate/default/laydate.css b/payapi/src/main/resources/static/libs/layui/css/modules/laydate/default/laydate.css
similarity index 100%
rename from src/main/resources/static/libs/layui/css/modules/laydate/default/laydate.css
rename to payapi/src/main/resources/static/libs/layui/css/modules/laydate/default/laydate.css
diff --git a/src/main/resources/static/libs/layui/css/modules/layer/default/icon-ext.png b/payapi/src/main/resources/static/libs/layui/css/modules/layer/default/icon-ext.png
similarity index 100%
rename from src/main/resources/static/libs/layui/css/modules/layer/default/icon-ext.png
rename to payapi/src/main/resources/static/libs/layui/css/modules/layer/default/icon-ext.png
Binary files differ
diff --git a/src/main/resources/static/libs/layui/css/modules/layer/default/icon.png b/payapi/src/main/resources/static/libs/layui/css/modules/layer/default/icon.png
similarity index 100%
rename from src/main/resources/static/libs/layui/css/modules/layer/default/icon.png
rename to payapi/src/main/resources/static/libs/layui/css/modules/layer/default/icon.png
Binary files differ
diff --git a/src/main/resources/static/libs/layui/css/modules/layer/default/layer.css b/payapi/src/main/resources/static/libs/layui/css/modules/layer/default/layer.css
similarity index 100%
rename from src/main/resources/static/libs/layui/css/modules/layer/default/layer.css
rename to payapi/src/main/resources/static/libs/layui/css/modules/layer/default/layer.css
diff --git a/src/main/resources/static/libs/layui/css/modules/layer/default/loading-0.gif b/payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-0.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/css/modules/layer/default/loading-0.gif
rename to payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-0.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/css/modules/layer/default/loading-1.gif b/payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-1.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/css/modules/layer/default/loading-1.gif
rename to payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-1.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/css/modules/layer/default/loading-2.gif b/payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-2.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/css/modules/layer/default/loading-2.gif
rename to payapi/src/main/resources/static/libs/layui/css/modules/layer/default/loading-2.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/font/iconfont.eot b/payapi/src/main/resources/static/libs/layui/font/iconfont.eot
similarity index 100%
rename from src/main/resources/static/libs/layui/font/iconfont.eot
rename to payapi/src/main/resources/static/libs/layui/font/iconfont.eot
Binary files differ
diff --git a/src/main/resources/static/libs/layui/font/iconfont.svg b/payapi/src/main/resources/static/libs/layui/font/iconfont.svg
similarity index 100%
rename from src/main/resources/static/libs/layui/font/iconfont.svg
rename to payapi/src/main/resources/static/libs/layui/font/iconfont.svg
diff --git a/src/main/resources/static/libs/layui/font/iconfont.ttf b/payapi/src/main/resources/static/libs/layui/font/iconfont.ttf
similarity index 100%
rename from src/main/resources/static/libs/layui/font/iconfont.ttf
rename to payapi/src/main/resources/static/libs/layui/font/iconfont.ttf
Binary files differ
diff --git a/src/main/resources/static/libs/layui/font/iconfont.woff b/payapi/src/main/resources/static/libs/layui/font/iconfont.woff
similarity index 100%
rename from src/main/resources/static/libs/layui/font/iconfont.woff
rename to payapi/src/main/resources/static/libs/layui/font/iconfont.woff
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/0.gif b/payapi/src/main/resources/static/libs/layui/images/face/0.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/0.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/0.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/1.gif b/payapi/src/main/resources/static/libs/layui/images/face/1.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/1.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/1.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/10.gif b/payapi/src/main/resources/static/libs/layui/images/face/10.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/10.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/10.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/11.gif b/payapi/src/main/resources/static/libs/layui/images/face/11.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/11.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/11.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/12.gif b/payapi/src/main/resources/static/libs/layui/images/face/12.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/12.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/12.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/13.gif b/payapi/src/main/resources/static/libs/layui/images/face/13.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/13.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/13.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/14.gif b/payapi/src/main/resources/static/libs/layui/images/face/14.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/14.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/14.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/15.gif b/payapi/src/main/resources/static/libs/layui/images/face/15.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/15.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/15.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/16.gif b/payapi/src/main/resources/static/libs/layui/images/face/16.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/16.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/16.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/17.gif b/payapi/src/main/resources/static/libs/layui/images/face/17.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/17.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/17.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/18.gif b/payapi/src/main/resources/static/libs/layui/images/face/18.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/18.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/18.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/19.gif b/payapi/src/main/resources/static/libs/layui/images/face/19.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/19.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/19.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/2.gif b/payapi/src/main/resources/static/libs/layui/images/face/2.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/2.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/2.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/20.gif b/payapi/src/main/resources/static/libs/layui/images/face/20.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/20.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/20.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/21.gif b/payapi/src/main/resources/static/libs/layui/images/face/21.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/21.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/21.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/22.gif b/payapi/src/main/resources/static/libs/layui/images/face/22.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/22.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/22.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/23.gif b/payapi/src/main/resources/static/libs/layui/images/face/23.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/23.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/23.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/24.gif b/payapi/src/main/resources/static/libs/layui/images/face/24.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/24.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/24.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/25.gif b/payapi/src/main/resources/static/libs/layui/images/face/25.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/25.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/25.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/26.gif b/payapi/src/main/resources/static/libs/layui/images/face/26.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/26.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/26.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/27.gif b/payapi/src/main/resources/static/libs/layui/images/face/27.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/27.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/27.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/28.gif b/payapi/src/main/resources/static/libs/layui/images/face/28.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/28.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/28.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/29.gif b/payapi/src/main/resources/static/libs/layui/images/face/29.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/29.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/29.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/3.gif b/payapi/src/main/resources/static/libs/layui/images/face/3.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/3.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/3.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/30.gif b/payapi/src/main/resources/static/libs/layui/images/face/30.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/30.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/30.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/31.gif b/payapi/src/main/resources/static/libs/layui/images/face/31.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/31.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/31.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/32.gif b/payapi/src/main/resources/static/libs/layui/images/face/32.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/32.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/32.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/33.gif b/payapi/src/main/resources/static/libs/layui/images/face/33.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/33.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/33.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/34.gif b/payapi/src/main/resources/static/libs/layui/images/face/34.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/34.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/34.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/35.gif b/payapi/src/main/resources/static/libs/layui/images/face/35.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/35.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/35.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/36.gif b/payapi/src/main/resources/static/libs/layui/images/face/36.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/36.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/36.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/37.gif b/payapi/src/main/resources/static/libs/layui/images/face/37.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/37.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/37.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/38.gif b/payapi/src/main/resources/static/libs/layui/images/face/38.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/38.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/38.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/39.gif b/payapi/src/main/resources/static/libs/layui/images/face/39.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/39.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/39.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/4.gif b/payapi/src/main/resources/static/libs/layui/images/face/4.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/4.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/4.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/40.gif b/payapi/src/main/resources/static/libs/layui/images/face/40.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/40.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/40.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/41.gif b/payapi/src/main/resources/static/libs/layui/images/face/41.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/41.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/41.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/42.gif b/payapi/src/main/resources/static/libs/layui/images/face/42.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/42.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/42.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/43.gif b/payapi/src/main/resources/static/libs/layui/images/face/43.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/43.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/43.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/44.gif b/payapi/src/main/resources/static/libs/layui/images/face/44.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/44.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/44.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/45.gif b/payapi/src/main/resources/static/libs/layui/images/face/45.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/45.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/45.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/46.gif b/payapi/src/main/resources/static/libs/layui/images/face/46.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/46.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/46.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/47.gif b/payapi/src/main/resources/static/libs/layui/images/face/47.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/47.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/47.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/48.gif b/payapi/src/main/resources/static/libs/layui/images/face/48.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/48.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/48.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/49.gif b/payapi/src/main/resources/static/libs/layui/images/face/49.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/49.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/49.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/5.gif b/payapi/src/main/resources/static/libs/layui/images/face/5.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/5.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/5.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/50.gif b/payapi/src/main/resources/static/libs/layui/images/face/50.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/50.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/50.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/51.gif b/payapi/src/main/resources/static/libs/layui/images/face/51.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/51.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/51.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/52.gif b/payapi/src/main/resources/static/libs/layui/images/face/52.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/52.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/52.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/53.gif b/payapi/src/main/resources/static/libs/layui/images/face/53.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/53.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/53.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/54.gif b/payapi/src/main/resources/static/libs/layui/images/face/54.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/54.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/54.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/55.gif b/payapi/src/main/resources/static/libs/layui/images/face/55.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/55.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/55.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/56.gif b/payapi/src/main/resources/static/libs/layui/images/face/56.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/56.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/56.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/57.gif b/payapi/src/main/resources/static/libs/layui/images/face/57.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/57.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/57.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/58.gif b/payapi/src/main/resources/static/libs/layui/images/face/58.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/58.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/58.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/59.gif b/payapi/src/main/resources/static/libs/layui/images/face/59.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/59.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/59.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/6.gif b/payapi/src/main/resources/static/libs/layui/images/face/6.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/6.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/6.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/60.gif b/payapi/src/main/resources/static/libs/layui/images/face/60.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/60.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/60.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/61.gif b/payapi/src/main/resources/static/libs/layui/images/face/61.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/61.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/61.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/62.gif b/payapi/src/main/resources/static/libs/layui/images/face/62.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/62.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/62.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/63.gif b/payapi/src/main/resources/static/libs/layui/images/face/63.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/63.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/63.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/64.gif b/payapi/src/main/resources/static/libs/layui/images/face/64.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/64.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/64.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/65.gif b/payapi/src/main/resources/static/libs/layui/images/face/65.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/65.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/65.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/66.gif b/payapi/src/main/resources/static/libs/layui/images/face/66.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/66.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/66.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/67.gif b/payapi/src/main/resources/static/libs/layui/images/face/67.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/67.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/67.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/68.gif b/payapi/src/main/resources/static/libs/layui/images/face/68.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/68.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/68.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/69.gif b/payapi/src/main/resources/static/libs/layui/images/face/69.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/69.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/69.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/7.gif b/payapi/src/main/resources/static/libs/layui/images/face/7.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/7.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/7.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/70.gif b/payapi/src/main/resources/static/libs/layui/images/face/70.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/70.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/70.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/71.gif b/payapi/src/main/resources/static/libs/layui/images/face/71.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/71.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/71.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/8.gif b/payapi/src/main/resources/static/libs/layui/images/face/8.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/8.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/8.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/images/face/9.gif b/payapi/src/main/resources/static/libs/layui/images/face/9.gif
similarity index 100%
rename from src/main/resources/static/libs/layui/images/face/9.gif
rename to payapi/src/main/resources/static/libs/layui/images/face/9.gif
Binary files differ
diff --git a/src/main/resources/static/libs/layui/lay/modules/carousel.js b/payapi/src/main/resources/static/libs/layui/lay/modules/carousel.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/carousel.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/carousel.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/code.js b/payapi/src/main/resources/static/libs/layui/lay/modules/code.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/code.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/code.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/colorpicker.js b/payapi/src/main/resources/static/libs/layui/lay/modules/colorpicker.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/colorpicker.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/colorpicker.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/element.js b/payapi/src/main/resources/static/libs/layui/lay/modules/element.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/element.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/element.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/flow.js b/payapi/src/main/resources/static/libs/layui/lay/modules/flow.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/flow.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/flow.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/form.js b/payapi/src/main/resources/static/libs/layui/lay/modules/form.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/form.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/form.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/jquery.js b/payapi/src/main/resources/static/libs/layui/lay/modules/jquery.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/jquery.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/jquery.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/laydate.js b/payapi/src/main/resources/static/libs/layui/lay/modules/laydate.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/laydate.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/laydate.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/layedit.js b/payapi/src/main/resources/static/libs/layui/lay/modules/layedit.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/layedit.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/layedit.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/layer.js b/payapi/src/main/resources/static/libs/layui/lay/modules/layer.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/layer.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/layer.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/laypage.js b/payapi/src/main/resources/static/libs/layui/lay/modules/laypage.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/laypage.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/laypage.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/laytpl.js b/payapi/src/main/resources/static/libs/layui/lay/modules/laytpl.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/laytpl.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/laytpl.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/mobile.js b/payapi/src/main/resources/static/libs/layui/lay/modules/mobile.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/mobile.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/mobile.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/rate.js b/payapi/src/main/resources/static/libs/layui/lay/modules/rate.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/rate.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/rate.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/slider.js b/payapi/src/main/resources/static/libs/layui/lay/modules/slider.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/slider.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/slider.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/table.js b/payapi/src/main/resources/static/libs/layui/lay/modules/table.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/table.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/table.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/tree.js b/payapi/src/main/resources/static/libs/layui/lay/modules/tree.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/tree.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/tree.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/upload.js b/payapi/src/main/resources/static/libs/layui/lay/modules/upload.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/upload.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/upload.js
diff --git a/src/main/resources/static/libs/layui/lay/modules/util.js b/payapi/src/main/resources/static/libs/layui/lay/modules/util.js
similarity index 100%
rename from src/main/resources/static/libs/layui/lay/modules/util.js
rename to payapi/src/main/resources/static/libs/layui/lay/modules/util.js
diff --git a/src/main/resources/static/libs/layui/layui.all.js b/payapi/src/main/resources/static/libs/layui/layui.all.js
similarity index 100%
rename from src/main/resources/static/libs/layui/layui.all.js
rename to payapi/src/main/resources/static/libs/layui/layui.all.js
diff --git a/src/main/resources/static/libs/layui/layui.js b/payapi/src/main/resources/static/libs/layui/layui.js
similarity index 100%
rename from src/main/resources/static/libs/layui/layui.js
rename to payapi/src/main/resources/static/libs/layui/layui.js
diff --git a/src/main/resources/static/libs/q.js b/payapi/src/main/resources/static/libs/q.js
similarity index 100%
rename from src/main/resources/static/libs/q.js
rename to payapi/src/main/resources/static/libs/q.js
diff --git a/src/main/resources/static/libs/zTree/css/metroStyle/img/line_conn.png b/payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/line_conn.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/metroStyle/img/line_conn.png
rename to payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/line_conn.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/metroStyle/img/loading.gif b/payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/loading.gif
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/metroStyle/img/loading.gif
rename to payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/loading.gif
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/metroStyle/img/metro.gif b/payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/metro.gif
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/metroStyle/img/metro.gif
rename to payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/metro.gif
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/metroStyle/img/metro.png b/payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/metro.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/metroStyle/img/metro.png
rename to payapi/src/main/resources/static/libs/zTree/css/metroStyle/img/metro.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/metroStyle/metroStyle.css b/payapi/src/main/resources/static/libs/zTree/css/metroStyle/metroStyle.css
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/metroStyle/metroStyle.css
rename to payapi/src/main/resources/static/libs/zTree/css/metroStyle/metroStyle.css
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_close.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_close.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_close.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_close.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_open.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_open.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_open.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/1_open.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/2.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/2.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/2.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/2.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/3.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/3.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/3.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/3.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/4.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/4.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/4.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/4.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/5.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/5.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/5.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/5.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/6.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/6.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/6.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/6.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/7.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/7.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/7.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/7.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/8.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/8.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/8.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/8.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/9.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/9.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/9.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/diy/9.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/line_conn.gif b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/line_conn.gif
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/line_conn.gif
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/line_conn.gif
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/loading.gif b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/loading.gif
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/loading.gif
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/loading.gif
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.gif b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.gif
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.gif
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.gif
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.png b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.png
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.png
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/img/zTreeStandard.png
Binary files differ
diff --git a/src/main/resources/static/libs/zTree/css/zTreeStyle/zTreeStyle.css b/payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/zTreeStyle.css
similarity index 100%
rename from src/main/resources/static/libs/zTree/css/zTreeStyle/zTreeStyle.css
rename to payapi/src/main/resources/static/libs/zTree/css/zTreeStyle/zTreeStyle.css
diff --git a/src/main/resources/static/libs/zTree/js/jquery.ztree.all-3.5.min.js b/payapi/src/main/resources/static/libs/zTree/js/jquery.ztree.all-3.5.min.js
similarity index 100%
rename from src/main/resources/static/libs/zTree/js/jquery.ztree.all-3.5.min.js
rename to payapi/src/main/resources/static/libs/zTree/js/jquery.ztree.all-3.5.min.js
diff --git a/src/main/resources/templates/error/403.html b/payapi/src/main/resources/templates/error/403.html
similarity index 99%
rename from src/main/resources/templates/error/403.html
rename to payapi/src/main/resources/templates/error/403.html
index 155f35a..a3843f7 100755
--- a/src/main/resources/templates/error/403.html
+++ b/payapi/src/main/resources/templates/error/403.html
@@ -1,27 +1,27 @@
-<!DOCTYPE html>

-<html xmlns:th="http://www.thymeleaf.org" >

-<head>

-  <meta charset="utf-8">

-  <title>403 无权限</title>

-  <meta name="renderer" content="webkit">

-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">

-  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>

-  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>

-</head>

-<body>

-<div class="layui-fluid">

-  <div class="layadmin-tips">

-    <i class="layui-icon" face>&#xe664;</i>

-    <div class="layui-text">

-      <p>没有权限</p>

-      <h1>

-        <span class="layui-anim layui-anim-loop layui-anim-">4</span> 

-        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 

-        <span class="layui-anim layui-anim-loop layui-anim-">3</span>

-      </h1>

-    </div>

-  </div>

-</div>

-</body>

+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" >
+<head>
+  <meta charset="utf-8">
+  <title>403 无权限</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>
+  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>
+</head>
+<body>
+<div class="layui-fluid">
+  <div class="layadmin-tips">
+    <i class="layui-icon" face>&#xe664;</i>
+    <div class="layui-text">
+      <p>没有权限</p>
+      <h1>
+        <span class="layui-anim layui-anim-loop layui-anim-">4</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-">3</span>
+      </h1>
+    </div>
+  </div>
+</div>
+</body>
 </html>
\ No newline at end of file
diff --git a/src/main/resources/templates/error/404.html b/payapi/src/main/resources/templates/error/404.html
similarity index 99%
rename from src/main/resources/templates/error/404.html
rename to payapi/src/main/resources/templates/error/404.html
index 89144f5..b818658 100755
--- a/src/main/resources/templates/error/404.html
+++ b/payapi/src/main/resources/templates/error/404.html
@@ -1,28 +1,28 @@
-<!DOCTYPE html>

-<html xmlns:th="http://www.thymeleaf.org" >

-<head>

-  <meta charset="utf-8">

-  <title>404 页面不存在</title>

-  <meta name="renderer" content="webkit">

-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">

-  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>

-  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>

-</head>

-<body>

-

-<div class="layui-fluid">

-  <div class="layadmin-tips">

-    <i class="layui-icon" face>&#xe664;</i>

-    <div class="layui-text">

-      <p>页面不存在</p>

-      <h1>

-        <span class="layui-anim layui-anim-loop layui-anim-">4</span> 

-        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 

-        <span class="layui-anim layui-anim-loop layui-anim-">4</span>

-      </h1>

-    </div>

-  </div>

-</div>

-</body>

+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" >
+<head>
+  <meta charset="utf-8">
+  <title>404 页面不存在</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>
+  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>
+</head>
+<body>
+
+<div class="layui-fluid">
+  <div class="layadmin-tips">
+    <i class="layui-icon" face>&#xe664;</i>
+    <div class="layui-text">
+      <p>页面不存在</p>
+      <h1>
+        <span class="layui-anim layui-anim-loop layui-anim-">4</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-">4</span>
+      </h1>
+    </div>
+  </div>
+</div>
+</body>
 </html>
\ No newline at end of file
diff --git a/src/main/resources/templates/error/500.html b/payapi/src/main/resources/templates/error/500.html
similarity index 99%
rename from src/main/resources/templates/error/500.html
rename to payapi/src/main/resources/templates/error/500.html
index c46acd2..fc442c7 100755
--- a/src/main/resources/templates/error/500.html
+++ b/payapi/src/main/resources/templates/error/500.html
@@ -1,28 +1,28 @@
-<!DOCTYPE html>

-<html xmlns:th="http://www.thymeleaf.org" >

-<head>

-  <meta charset="utf-8">

-  <title>500 服务出错</title>

-  <meta name="renderer" content="webkit">

-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">

-  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>

-  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>

-</head>

-<body>

-

-<div class="layui-fluid">

-  <div class="layadmin-tips">

-    <i class="layui-icon" face>&#xe664;</i>

-    <div class="layui-text">

-      <p>服务器出错了</p>

-      <h1>

-        <span class="layui-anim layui-anim-loop layui-anim-">5</span>

-        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 

-        <span class="layui-anim layui-anim-loop layui-anim-">0</span>

-      </h1>

-    </div>

-  </div>

-</div>

-</body>

+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" >
+<head>
+  <meta charset="utf-8">
+  <title>500 服务出错</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}" media="all"/>
+  <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}" media="all"/>
+</head>
+<body>
+
+<div class="layui-fluid">
+  <div class="layadmin-tips">
+    <i class="layui-icon" face>&#xe664;</i>
+    <div class="layui-text">
+      <p>服务器出错了</p>
+      <h1>
+        <span class="layui-anim layui-anim-loop layui-anim-">5</span>
+        <span class="layui-anim layui-anim-loop layui-anim-rotate">0</span> 
+        <span class="layui-anim layui-anim-loop layui-anim-">0</span>
+      </h1>
+    </div>
+  </div>
+</div>
+</body>
 </html>
\ No newline at end of file
diff --git a/src/main/resources/templates/home/console.html b/payapi/src/main/resources/templates/home/console.html
similarity index 99%
rename from src/main/resources/templates/home/console.html
rename to payapi/src/main/resources/templates/home/console.html
index 63cb260..76b0b79 100755
--- a/src/main/resources/templates/home/console.html
+++ b/payapi/src/main/resources/templates/home/console.html
@@ -1,28 +1,28 @@
-<div class="layui-row layui-col-space15">

-

-</div>

-

-

-

-    

-

-<script>

-    layui.use(['carousel', 'element'], function () {

-        var carousel = layui.carousel;

-        var element = layui.element;

-        var device = layui.device;

-

-        layui.link('[[@{/static/custom/css/console.css}]]');

-

-        // 渲染轮播

-        carousel.render({

-            elem: '.layui-carousel',

-            width: '100%',

-            height: '60px',

-            arrow: 'none',

-            autoplay: true,

-            trigger: device.ios || device.android ? 'click' : 'hover',

-            anim: 'fade'

-        });

-    });

-</script>

+<div class="layui-row layui-col-space15">
+
+</div>
+
+
+
+    
+
+<script>
+    layui.use(['carousel', 'element'], function () {
+        var carousel = layui.carousel;
+        var element = layui.element;
+        var device = layui.device;
+
+        layui.link('[[@{/static/custom/css/console.css}]]');
+
+        // 渲染轮播
+        carousel.render({
+            elem: '.layui-carousel',
+            width: '100%',
+            height: '60px',
+            arrow: 'none',
+            autoplay: true,
+            trigger: device.ios || device.android ? 'click' : 'hover',
+            anim: 'fade'
+        });
+    });
+</script>
diff --git a/src/main/resources/templates/home/message.html b/payapi/src/main/resources/templates/home/message.html
similarity index 100%
rename from src/main/resources/templates/home/message.html
rename to payapi/src/main/resources/templates/home/message.html
diff --git a/src/main/resources/templates/home/password.html b/payapi/src/main/resources/templates/home/password.html
similarity index 99%
rename from src/main/resources/templates/home/password.html
rename to payapi/src/main/resources/templates/home/password.html
index e9e8aee..e74beba 100755
--- a/src/main/resources/templates/home/password.html
+++ b/payapi/src/main/resources/templates/home/password.html
@@ -1,58 +1,58 @@
-<div class="layui-card-header">

-    <h2 class="header-title">修改密码</h2>

-</div>

-<div class="layui-card-body" style="padding: 30px;">

-    <form class="layui-form" id="form-psw">

-        <div class="layui-form-item">

-            <input type="password" name="oldPsw" required lay-verify="required" class="layui-input"

-                   placeholder="请输入原密码" lay-verType="tips">

-        </div>

-        <div class="layui-form-item">

-            <input type="password" name="newPsw" required lay-verify="required|psw" class="layui-input"

-                   placeholder="请输入新密码" lay-verType="tips">

-        </div>

-        <div class="layui-form-item">

-            <input type="password" name="rePsw" required lay-verify="required|repsw" class="layui-input"

-                   placeholder="再次输入新密码" lay-verType="tips">

-        </div>

-        <div class="layui-form-item">

-            <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="submit-psw">确认修改</button>

-        </div>

-    </form>

-</div>

-

-<script>

-    layui.use(['form', 'admin', 'layer'], function () {

-        var form = layui.form;

-        var admin = layui.admin;

-        var layer = layui.layer;

-

-        // 监听提交

-        form.on('submit(submit-psw)', function (data) {

-            layer.load(2);

-            $.post('[[@{/system/user/updatePsw}]]', data.field, function (data) {

-                if (data.code == 200) {

-                    layer.closeAll('loading');

-                    admin.closePopupRight();

-                    layer.msg(data.msg, {icon: 1, time: 1000}, function () {

-                        location.replace('logout');

-                    });

-                } else {

-                    layer.closeAll('loading');

-                    layer.msg(data.msg, {icon: 2});

-                }

-            });

-            return false;

-        });

-

-        // 添加表单验证方法

-        form.verify({

-            psw: [/^[\S]{5,12}$/, '密码必须5到12位,且不能出现空格'],

-            repsw: function (t) {

-                if (t !== $('#form-psw input[name=newPsw]').val()) {

-                    return '两次密码输入不一致';

-                }

-            }

-        });

-    });

+<div class="layui-card-header">
+    <h2 class="header-title">修改密码</h2>
+</div>
+<div class="layui-card-body" style="padding: 30px;">
+    <form class="layui-form" id="form-psw">
+        <div class="layui-form-item">
+            <input type="password" name="oldPsw" required lay-verify="required" class="layui-input"
+                   placeholder="请输入原密码" lay-verType="tips">
+        </div>
+        <div class="layui-form-item">
+            <input type="password" name="newPsw" required lay-verify="required|psw" class="layui-input"
+                   placeholder="请输入新密码" lay-verType="tips">
+        </div>
+        <div class="layui-form-item">
+            <input type="password" name="rePsw" required lay-verify="required|repsw" class="layui-input"
+                   placeholder="再次输入新密码" lay-verType="tips">
+        </div>
+        <div class="layui-form-item">
+            <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="submit-psw">确认修改</button>
+        </div>
+    </form>
+</div>
+
+<script>
+    layui.use(['form', 'admin', 'layer'], function () {
+        var form = layui.form;
+        var admin = layui.admin;
+        var layer = layui.layer;
+
+        // 监听提交
+        form.on('submit(submit-psw)', function (data) {
+            layer.load(2);
+            $.post('[[@{/system/user/updatePsw}]]', data.field, function (data) {
+                if (data.code == 200) {
+                    layer.closeAll('loading');
+                    admin.closePopupRight();
+                    layer.msg(data.msg, {icon: 1, time: 1000}, function () {
+                        location.replace('logout');
+                    });
+                } else {
+                    layer.closeAll('loading');
+                    layer.msg(data.msg, {icon: 2});
+                }
+            });
+            return false;
+        });
+
+        // 添加表单验证方法
+        form.verify({
+            psw: [/^[\S]{5,12}$/, '密码必须5到12位,且不能出现空格'],
+            repsw: function (t) {
+                if (t !== $('#form-psw input[name=newPsw]').val()) {
+                    return '两次密码输入不一致';
+                }
+            }
+        });
+    });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/home/theme.html b/payapi/src/main/resources/templates/home/theme.html
similarity index 99%
rename from src/main/resources/templates/home/theme.html
rename to payapi/src/main/resources/templates/home/theme.html
index 392a02a..71700a0 100755
--- a/src/main/resources/templates/home/theme.html
+++ b/payapi/src/main/resources/templates/home/theme.html
@@ -1,37 +1,37 @@
-<div class="layui-card-header">

-    <h2 class="header-title">多标签:</h2>

-    <div class="pull-right layui-form">

-        <input type="checkbox" lay-skin="switch" lay-text="ON|OFF" id="set-tab" lay-filter="set-tab" checked/>

-    </div>

-</div>

-

-<div class="layui-card-header"><h2 class="header-title">设置主题:</h2></div>

-<div class="layui-card-body layui-text">

-    <a th:href="@{/home/setTheme}" class="layui-btn" style="background-color: #009688;">默认主题</a>

-    <a th:href="@{/home/setTheme?themeName=blue}" class="layui-btn layui-btn-normal">蓝色主题</a>

-    <br><br><br>

-  

-</div>

-

-<script>

-    layui.use(['form', 'index', 'admin'], function () {

-        var form = layui.form;

-        var index = layui.index;

-        var admin = layui.admin;

-

-        $('#set-tab').prop('checked', index.pageTabs);

-        form.render('checkbox');

-

-        form.on('switch(set-tab)', function (data) {

-            if (data.elem.checked) {

-                location.reload();

-            } else {

-                index.pageTabs = false;

-                index.checkPageTabs();

-                admin.refresh();

-                admin.closePopupRight();

-            }

-        });

-

-    });

+<div class="layui-card-header">
+    <h2 class="header-title">多标签:</h2>
+    <div class="pull-right layui-form">
+        <input type="checkbox" lay-skin="switch" lay-text="ON|OFF" id="set-tab" lay-filter="set-tab" checked/>
+    </div>
+</div>
+
+<div class="layui-card-header"><h2 class="header-title">设置主题:</h2></div>
+<div class="layui-card-body layui-text">
+    <a th:href="@{/home/setTheme}" class="layui-btn" style="background-color: #009688;">默认主题</a>
+    <a th:href="@{/home/setTheme?themeName=blue}" class="layui-btn layui-btn-normal">蓝色主题</a>
+    <br><br><br>
+  
+</div>
+
+<script>
+    layui.use(['form', 'index', 'admin'], function () {
+        var form = layui.form;
+        var index = layui.index;
+        var admin = layui.admin;
+
+        $('#set-tab').prop('checked', index.pageTabs);
+        form.render('checkbox');
+
+        form.on('switch(set-tab)', function (data) {
+            if (data.elem.checked) {
+                location.reload();
+            } else {
+                index.pageTabs = false;
+                index.checkPageTabs();
+                admin.refresh();
+                admin.closePopupRight();
+            }
+        });
+
+    });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/index.html b/payapi/src/main/resources/templates/index.html
similarity index 99%
rename from src/main/resources/templates/index.html
rename to payapi/src/main/resources/templates/index.html
index 1fb326d..bfea46b 100755
--- a/src/main/resources/templates/index.html
+++ b/payapi/src/main/resources/templates/index.html
@@ -1,163 +1,163 @@
-<!DOCTYPE html>

-<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">

-

-<head>

-    <title>首页</title>

-    <meta name="_csrf_header" th:content="${_csrf.headerName}" />

-    <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}" />

-    <meta charset="utf-8"/>

-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

-    <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}"/>

-    <link rel="stylesheet" th:href="@{/static/libs/zTree/css/zTreeStyle/zTreeStyle.css}"/>

-    <link rel="stylesheet" th:href="@{/static/custom/module/formSelects/formSelects-v4.css}"/>

-    <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}"/>

-    <link th:if="${session.theme != null}" rel="stylesheet" th:href="@{/static/custom/css/theme-blue.css}"/>

-</head>

-

-<body class="layui-layout-body">

-<div class="layui-layout layui-layout-admin">

-    <!-- 头部 -->

-    <div class="layui-header">

-        <div class="layui-logo">

-            <img th:src="@{/static/custom/images/logo.png}"/>

-            <cite>支付中心</cite>

-        </div>

-        <ul class="layui-nav layui-layout-left">

-            <li class="layui-nav-item" lay-unselect>

-                <a ew-event="flexible" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>

-            </li>

-            <li class="layui-nav-item" lay-unselect>

-                <a ew-event="refresh" title="刷新"><i class="layui-icon layui-icon-refresh-3"></i></a>

-            </li>

-        </ul>

-        <ul class="layui-nav layui-layout-right">

-            <li class="layui-nav-item" lay-unselect>

-                <a ew-event="refreshDict" title="刷新字典"><i class="layui-icon layui-icon-read"></i></a>

-            </li>

-            <!--<li class="layui-nav-item" lay-unselect>-->

-                <!--<a id="btnMessage" title="消息"><i class="layui-icon layui-icon-notice"></i></a>-->

-            <!--</li>-->

-            <li class="layui-nav-item layui-hide-xs" lay-unselect>

-                <a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a>

-            </li>

-            <li class="layui-nav-item" lay-unselect>

-                <a href="javascript:;">

-                    <img th:src="@{/static/custom/images/head.png}" class="layui-nav-img">

-                    <cite>[[${loginOper.opername}]]</cite>

-                </a>

-                <dl class="layui-nav-child">

-                    <dd ay-unselect><a lay-href="/operator/userinfor">基本资料</a></dd>

-                    <dd ay-unselect><a lay-href="/operator/setpwd">修改密码</a></dd>

-                    <hr>

-                    <dd layadmin-event="logout" style="text-align: center;" ><a th:href="@{/logout}">退出</a></dd>

-                </dl>

-            </li>

-            <li class="layui-nav-item" lay-unselect>

-                <a ew-event="theme" title="主题"><i class="layui-icon layui-icon-more-vertical"></i></a>

-            </li>

-        </ul>

-    </div>

-

-    <!-- 侧边栏 -->

-    <div class="layui-side">

-        <div class="layui-side-scroll">

-            <ul class="layui-nav layui-nav-tree" style="margin-top: 15px;">

-

-                <li class="layui-nav-item" th:each="menu : ${menus}">

-                    <a th:lay-href="${menu.menuUrl}"><i th:class="'layui-icon '+${menu.menuIcon}"></i>&emsp;<cite>[[${menu.menuName}]]</cite></a>

-                    <dl class="layui-nav-child" th:if="${menu.subMenus.size()} > 0">

-                        <dd th:each="subMenu : ${menu.subMenus}">

-                            <a th:lay-href="${subMenu.menuUrl}">[[${subMenu.menuName}]]</a>

-                            <dl class="layui-nav-child" th:if="${subMenu.subMenus.size()} > 0">

-                                <dd th:each="temp : ${subMenu.subMenus}"><a th:lay-href="${temp.menuUrl}">

-                                    <i th:class="'layui-icon '+${temp.menuIcon}"></i>

-                                    [[${temp.menuName}]]

-                                  </a>

-                                </dd>

-                            </dl>

-                        </dd>

-                    </dl>

-                </li>

-

-                <!--<li class="layui-nav-item">-->

-                    <!--<a href="javascript:;"><i class="layui-icon layui-icon-unlink"></i>&emsp;<cite>多级菜单</cite></a>-->

-                    <!--<dl class="layui-nav-child">-->

-                        <!--<dd>-->

-                            <!--<a href="javascript:;">二级菜单</a>-->

-                            <!--<dl class="layui-nav-child">-->

-                                <!--<dd><a href="javascript:;">三级菜单</a></dd>-->

-                                <!--<dd><a href="javascript:;">三级菜单</a></dd>-->

-                            <!--</dl>-->

-                        <!--</dd>-->

-                    <!--</dl>-->

-                <!--</li>-->

-            </ul>

-        </div>

-    </div>

-

-

-    <!-- 主体部分 -->

-    <div class="layui-body">

-        <div class="layui-tab" lay-allowClose="true" lay-filter="admin-pagetabs">

-            <ul class="layui-tab-title">

-            </ul>

-            <div class="layui-tab-content">

-            </div>

-        </div>

-        <div class="layui-icon admin-tabs-control layui-icon-prev" ew-event="leftPage"></div>

-        <div class="layui-icon admin-tabs-control layui-icon-next" ew-event="rightPage"></div>

-        <div class="layui-icon admin-tabs-control layui-icon-down">

-            <ul class="layui-nav admin-tabs-select" lay-filter="admin-pagetabs-nav">

-                <li class="layui-nav-item" lay-unselect>

-                    <a href="javascript:;"></a>

-                    <dl class="layui-nav-child layui-anim-fadein">

-                        <dd ew-event="closeThisTabs" lay-unselect><a href="javascript:;">关闭当前标签页</a></dd>

-                        <dd ew-event="closeOtherTabs" lay-unselect><a href="javascript:;">关闭其它标签页</a></dd>

-                        <dd ew-event="closeAllTabs" lay-unselect><a href="javascript:;">关闭全部标签页</a></dd>

-                    </dl>

-                </li>

-            </ul>

-        </div>

-    </div>

-

-    <!-- 底部 -->

-    <div class="layui-footer">Copyright © 2018 supwisdom All rights reserved. <span class="pull-right" th:text="${payapiVersion}">Version 1.0</span>

-    </div>

-

-    <!-- 手机屏幕遮罩层 -->

-    <div class="site-mobile-shade"></div>

-</div>

-

-<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>

-<script type="text/javascript" th:src="@{/static/libs/q.js}"></script>

-<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>

-<script type="text/javascript" th:src="@{/static/libs/zTree/js/jquery.ztree.all-3.5.min.js}"></script>

-<script type="text/javascript" th:src="@{/static/libs/custom.js}"></script>

-

-<script>

-    layui.config({

-        base: 'static/custom/module/'

-    }).extend({

-        formSelects: 'formSelects/formSelects-v4',

-        treetable: 'treetable-lay/treetable',

-        treeSelect: 'treeSelect/treeSelect'

-    }).use(['admin'], function () {

-        var admin = layui.admin;

-    });

-</script>

-

-<script>

-    layui.use(['index'], function () {

-        var index = layui.index;

-        index.checkPageTabs(true);  // 检查多标签是否开启

-        index.initRouter();  // 导航栏和tab联动

-        index.bindEvent();  // 绑定事件

-

-        var dictpool = DictPoolToolkit();

-        dictpool.initAll("[[@{/dictpool}]]"); //加载字典

-    });

-</script>

-</body>

-

+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+
+<head>
+    <title>首页</title>
+    <meta name="_csrf_header" th:content="${_csrf.headerName}" />
+    <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}" />
+    <meta charset="utf-8"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}"/>
+    <link rel="stylesheet" th:href="@{/static/libs/zTree/css/zTreeStyle/zTreeStyle.css}"/>
+    <link rel="stylesheet" th:href="@{/static/custom/module/formSelects/formSelects-v4.css}"/>
+    <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}"/>
+    <link th:if="${session.theme != null}" rel="stylesheet" th:href="@{/static/custom/css/theme-blue.css}"/>
+</head>
+
+<body class="layui-layout-body">
+<div class="layui-layout layui-layout-admin">
+    <!-- 头部 -->
+    <div class="layui-header">
+        <div class="layui-logo">
+            <img th:src="@{/static/custom/images/logo.png}"/>
+            <cite>支付中心</cite>
+        </div>
+        <ul class="layui-nav layui-layout-left">
+            <li class="layui-nav-item" lay-unselect>
+                <a ew-event="flexible" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>
+            </li>
+            <li class="layui-nav-item" lay-unselect>
+                <a ew-event="refresh" title="刷新"><i class="layui-icon layui-icon-refresh-3"></i></a>
+            </li>
+        </ul>
+        <ul class="layui-nav layui-layout-right">
+            <li class="layui-nav-item" lay-unselect>
+                <a ew-event="refreshDict" title="刷新字典"><i class="layui-icon layui-icon-read"></i></a>
+            </li>
+            <!--<li class="layui-nav-item" lay-unselect>-->
+                <!--<a id="btnMessage" title="消息"><i class="layui-icon layui-icon-notice"></i></a>-->
+            <!--</li>-->
+            <li class="layui-nav-item layui-hide-xs" lay-unselect>
+                <a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a>
+            </li>
+            <li class="layui-nav-item" lay-unselect>
+                <a href="javascript:;">
+                    <img th:src="@{/static/custom/images/head.png}" class="layui-nav-img">
+                    <cite>[[${loginOper.opername}]]</cite>
+                </a>
+                <dl class="layui-nav-child">
+                    <dd ay-unselect><a lay-href="/operator/userinfor">基本资料</a></dd>
+                    <dd ay-unselect><a lay-href="/operator/setpwd">修改密码</a></dd>
+                    <hr>
+                    <dd layadmin-event="logout" style="text-align: center;" ><a th:href="@{/logout}">退出</a></dd>
+                </dl>
+            </li>
+            <li class="layui-nav-item" lay-unselect>
+                <a ew-event="theme" title="主题"><i class="layui-icon layui-icon-more-vertical"></i></a>
+            </li>
+        </ul>
+    </div>
+
+    <!-- 侧边栏 -->
+    <div class="layui-side">
+        <div class="layui-side-scroll">
+            <ul class="layui-nav layui-nav-tree" style="margin-top: 15px;">
+
+                <li class="layui-nav-item" th:each="menu : ${menus}">
+                    <a th:lay-href="${menu.menuUrl}"><i th:class="'layui-icon '+${menu.menuIcon}"></i>&emsp;<cite>[[${menu.menuName}]]</cite></a>
+                    <dl class="layui-nav-child" th:if="${menu.subMenus.size()} > 0">
+                        <dd th:each="subMenu : ${menu.subMenus}">
+                            <a th:lay-href="${subMenu.menuUrl}">[[${subMenu.menuName}]]</a>
+                            <dl class="layui-nav-child" th:if="${subMenu.subMenus.size()} > 0">
+                                <dd th:each="temp : ${subMenu.subMenus}"><a th:lay-href="${temp.menuUrl}">
+                                    <i th:class="'layui-icon '+${temp.menuIcon}"></i>
+                                    [[${temp.menuName}]]
+                                  </a>
+                                </dd>
+                            </dl>
+                        </dd>
+                    </dl>
+                </li>
+
+                <!--<li class="layui-nav-item">-->
+                    <!--<a href="javascript:;"><i class="layui-icon layui-icon-unlink"></i>&emsp;<cite>多级菜单</cite></a>-->
+                    <!--<dl class="layui-nav-child">-->
+                        <!--<dd>-->
+                            <!--<a href="javascript:;">二级菜单</a>-->
+                            <!--<dl class="layui-nav-child">-->
+                                <!--<dd><a href="javascript:;">三级菜单</a></dd>-->
+                                <!--<dd><a href="javascript:;">三级菜单</a></dd>-->
+                            <!--</dl>-->
+                        <!--</dd>-->
+                    <!--</dl>-->
+                <!--</li>-->
+            </ul>
+        </div>
+    </div>
+
+
+    <!-- 主体部分 -->
+    <div class="layui-body">
+        <div class="layui-tab" lay-allowClose="true" lay-filter="admin-pagetabs">
+            <ul class="layui-tab-title">
+            </ul>
+            <div class="layui-tab-content">
+            </div>
+        </div>
+        <div class="layui-icon admin-tabs-control layui-icon-prev" ew-event="leftPage"></div>
+        <div class="layui-icon admin-tabs-control layui-icon-next" ew-event="rightPage"></div>
+        <div class="layui-icon admin-tabs-control layui-icon-down">
+            <ul class="layui-nav admin-tabs-select" lay-filter="admin-pagetabs-nav">
+                <li class="layui-nav-item" lay-unselect>
+                    <a href="javascript:;"></a>
+                    <dl class="layui-nav-child layui-anim-fadein">
+                        <dd ew-event="closeThisTabs" lay-unselect><a href="javascript:;">关闭当前标签页</a></dd>
+                        <dd ew-event="closeOtherTabs" lay-unselect><a href="javascript:;">关闭其它标签页</a></dd>
+                        <dd ew-event="closeAllTabs" lay-unselect><a href="javascript:;">关闭全部标签页</a></dd>
+                    </dl>
+                </li>
+            </ul>
+        </div>
+    </div>
+
+    <!-- 底部 -->
+    <div class="layui-footer">Copyright © 2018 supwisdom All rights reserved. <span class="pull-right" th:text="${payapiVersion}">Version 1.0</span>
+    </div>
+
+    <!-- 手机屏幕遮罩层 -->
+    <div class="site-mobile-shade"></div>
+</div>
+
+<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/q.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/zTree/js/jquery.ztree.all-3.5.min.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/custom.js}"></script>
+
+<script>
+    layui.config({
+        base: 'static/custom/module/'
+    }).extend({
+        formSelects: 'formSelects/formSelects-v4',
+        treetable: 'treetable-lay/treetable',
+        treeSelect: 'treeSelect/treeSelect'
+    }).use(['admin'], function () {
+        var admin = layui.admin;
+    });
+</script>
+
+<script>
+    layui.use(['index'], function () {
+        var index = layui.index;
+        index.checkPageTabs(true);  // 检查多标签是否开启
+        index.initRouter();  // 导航栏和tab联动
+        index.bindEvent();  // 绑定事件
+
+        var dictpool = DictPoolToolkit();
+        dictpool.initAll("[[@{/dictpool}]]"); //加载字典
+    });
+</script>
+</body>
+
 </html>
\ No newline at end of file
diff --git a/src/main/resources/templates/login.html b/payapi/src/main/resources/templates/login.html
similarity index 100%
rename from src/main/resources/templates/login.html
rename to payapi/src/main/resources/templates/login.html
diff --git a/src/main/resources/templates/ologin.html b/payapi/src/main/resources/templates/ologin.html
similarity index 100%
rename from src/main/resources/templates/ologin.html
rename to payapi/src/main/resources/templates/ologin.html
diff --git a/src/main/resources/templates/system/dtl/shopdtl.html b/payapi/src/main/resources/templates/system/dtl/shopdtl.html
similarity index 100%
rename from src/main/resources/templates/system/dtl/shopdtl.html
rename to payapi/src/main/resources/templates/system/dtl/shopdtl.html
diff --git a/src/main/resources/templates/system/dtl/userdtl.html b/payapi/src/main/resources/templates/system/dtl/userdtl.html
similarity index 100%
rename from src/main/resources/templates/system/dtl/userdtl.html
rename to payapi/src/main/resources/templates/system/dtl/userdtl.html
diff --git a/src/main/resources/templates/system/function/form.html b/payapi/src/main/resources/templates/system/function/form.html
similarity index 99%
rename from src/main/resources/templates/system/function/form.html
rename to payapi/src/main/resources/templates/system/function/form.html
index e1468be..fa8d43b 100755
--- a/src/main/resources/templates/system/function/form.html
+++ b/payapi/src/main/resources/templates/system/function/form.html
@@ -1,117 +1,117 @@
-<!-- operator表单弹窗 -->

-<form id="form" lay-filter="form" class="layui-form model-form">

-    <input name="id" id="id" type="hidden"/>

-    <div class="layui-form-item">

-        <label class="layui-form-label">功能名称</label>

-        <div class="layui-input-block">

-            <input name="name" placeholder="请输入功能名称" type="text" class="layui-input" maxlength="20"

-                   lay-verify="required|name" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">路径</label>

-        <div class="layui-input-block">

-            <input name="menuUrl" placeholder="请输入路径,父节点默认为 # " type="text" class="layui-input" maxlength="60" value="#" lay-verify="required" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">节点</label>

-        <div class="layui-input-block">

-            <input type="radio" name="isLeaf" value="0" title="父" checked/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">序号</label>

-        <div class="layui-input-block">

-            <input name="orderNum" placeholder="请输入序号" type="text" class="layui-input" />

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">图标</label>

-        <div class="layui-input-block">

-            <input name="menuIcon" placeholder="请输入图标 例:layui-icon-xx " type="text" class="layui-input" />

-        </div>

-    </div>

-

-    <div class="layui-form-item model-form-footer">

-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>

-        <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>

-    </div>

-</form>

-

-<script>

-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {

-        var layer = layui.layer;

-        var admin = layui.admin;

-        var form = layui.form;

-        var formSelects = layui.formSelects;

-        form.render('radio');

-        form.verify({

-            "name": function (e) {

-                var msg = "";

-                $.ajax({

-                    type: "GET",

-                    url: '[[@{/function/checkname}]]',

-                    async: false,

-                    data: {

-                        name: e,

-                        id: $("#id").val()

-                    },

-                    success: function (result) {

-                        if (result.code != 200) {

-                            msg = result.msg;

-                        }

-                    },

-                    error: function (error) {

-                        msg = "请求服务器校验账号失败";

-                    }

-                });

-            }

-        });

-

-        var url = '[[@{/function/add}]]';

-        // 回显user数据

-        var func = admin.getTempData('t_func');

-        if (func) {

-            $('input[name="id"]').attr('readonly', 'readonly');

-            form.val('form', func);

-        }

-        // 表单提交事件

-        form.on('submit(form-submit)', function (data) {

-            layer.load(2);

-            let token = $("meta[name='_csrf_token']").attr("value");

-            debugger

-            $.ajax({

-                type : "POST",

-                dataType : "json",

-                url : url,

-                headers: {

-                    'Accept': 'application/json',

-                    'Content-Type': 'application/json',

-                    'X-CSRF-TOKEN':token,

-                },

-                data : JSON.stringify(data.field),

-                success : function(result) {

-                    layer.closeAll('loading');

-                    if (result.code == 200) {

-                        layer.msg(result.msg, {icon: 1});

-                        admin.finishPopupCenter();

-                    } else if (result.code == 401) {

-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('[[@{/login}]]');

-                        }, 1000);

-                        return;

-                    } else {

-                        console.log('err:' + result.code);

-                        layer.msg(result.msg, {icon: 2});

-                    }

-                },

-                error : function() {

-                    layer.closeAll('loading');

-                    layer.msg("请求服务器失败!", {icon: 2});

-                }

-            });

-            return false;

-        });

-    });

+<!-- operator表单弹窗 -->
+<form id="form" lay-filter="form" class="layui-form model-form">
+    <input name="id" id="id" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">功能名称</label>
+        <div class="layui-input-block">
+            <input name="name" placeholder="请输入功能名称" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|name" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">路径</label>
+        <div class="layui-input-block">
+            <input name="menuUrl" placeholder="请输入路径,父节点默认为 # " type="text" class="layui-input" maxlength="60" value="#" lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">节点</label>
+        <div class="layui-input-block">
+            <input type="radio" name="isLeaf" value="0" title="父" checked/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">序号</label>
+        <div class="layui-input-block">
+            <input name="orderNum" placeholder="请输入序号" type="text" class="layui-input" />
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">图标</label>
+        <div class="layui-input-block">
+            <input name="menuIcon" placeholder="请输入图标 例:layui-icon-xx " type="text" class="layui-input" />
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        var formSelects = layui.formSelects;
+        form.render('radio');
+        form.verify({
+            "name": function (e) {
+                var msg = "";
+                $.ajax({
+                    type: "GET",
+                    url: '[[@{/function/checkname}]]',
+                    async: false,
+                    data: {
+                        name: e,
+                        id: $("#id").val()
+                    },
+                    success: function (result) {
+                        if (result.code != 200) {
+                            msg = result.msg;
+                        }
+                    },
+                    error: function (error) {
+                        msg = "请求服务器校验账号失败";
+                    }
+                });
+            }
+        });
+
+        var url = '[[@{/function/add}]]';
+        // 回显user数据
+        var func = admin.getTempData('t_func');
+        if (func) {
+            $('input[name="id"]').attr('readonly', 'readonly');
+            form.val('form', func);
+        }
+        // 表单提交事件
+        form.on('submit(form-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            debugger
+            $.ajax({
+                type : "POST",
+                dataType : "json",
+                url : url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN':token,
+                },
+                data : JSON.stringify(data.field),
+                success : function(result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error : function() {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/system/function/index.html b/payapi/src/main/resources/templates/system/function/index.html
similarity index 99%
rename from src/main/resources/templates/system/function/index.html
rename to payapi/src/main/resources/templates/system/function/index.html
index 2e85a8c..5cff759 100755
--- a/src/main/resources/templates/system/function/index.html
+++ b/payapi/src/main/resources/templates/system/function/index.html
@@ -1,175 +1,175 @@
-<div class="layui-card">

-    <div class="layui-card-header">

-        <h2 class="header-title">功能维护</h2>

-        <span class="layui-breadcrumb pull-right">

-          <a href="#">系统中心</a>

-          <a><cite>功能维护</cite></a>

-        </span>

-    </div>

-    <div class="layui-card-body">

-        <div class="layui-form toolbar">

-            搜索:

-            <input id="search-value" class="layui-input search-input" type="text" placeholder="输入功能名称"/>&emsp;

-            <button id="btn-search-func" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索

-            </button>

-            <button id="btn-add-func" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>添加父功能</button>

-        </div>

-        <table class="layui-table" id="table" lay-filter="table"></table>

-    </div>

-</div>

-

-<script>

-    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {

-        let form = layui.form;

-        let table = layui.table;

-        let admin = layui.admin;

-

-        form.render('select');

-

-        // 渲染表格

-        table.render({

-            elem: '#table',

-            url: '[[@{/function/list}]]',

-            page: true,

-            cols: [

-                [

-                    {field: 'id', title: '功能ID', width: 80,fixed: 'left', sort: true},

-                    {field: 'name', title: '功能名称', sort: true},

-                    {

-                        field: 'isLeaf', title: '节点', sort: true, width: 80, align: 'center', templet: function (item) {

-                            if (item.isLeaf == 0) {

-                                return '<span class="layui-badge ">父</span>'

-                            } else if (item.isLeaf == 1) {

-                                return '<span class="layui-badge layui-bg-green">子</span>'

-                            } else {

-                                return ''

-                            }

-                        }

-                    },

-                    {field: 'menuUrl', title: '路径'},

-                    {field: 'orderNum', sort: true, width: 80,title: '序号'},

-                    {

-                        field: 'menuIcon', title: '图标', width: 80,align: 'center', templet: function (item) {

-                            return '<i class="layui-icon ' + item.menuIcon + '"></i> '

-                        }

-                    },

-                    {

-                        field: 'id', align: 'center', title: '操作', fixed: 'right', width:350, templet: function (item) {

-                            if (item.isLeaf == 0) {

-                                return ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +

-                                    ' <a class="layui-btn layui-btn-normal  layui-btn-xs" lay-event="addsub"><i class="layui-icon layui-icon-set-sm"></i>添加子功能</a> ' +

-                                    ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'

-                            } else {

-                                return ' <a class="layui-btn  layui-btn-xs" lay-event="editsub"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +

-                                    ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="addres"><i class="layui-icon layui-icon-set-sm"></i>添加资源</a> ' +

-                                    ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="listres"><i class="layui-icon layui-icon-set-sm"></i>维护资源</a> ' +

-                                    ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'

-                            }

-                        }

-                    }

-                ]

-            ]

-        });

-        // 搜索按钮点击事件

-        $('#btn-search-func').click(function () {

-            let key = $('#search-value').val();

-            table.reload('table', {where: {searchkey: key}, page: {curr: 1}});

-        });

-        $('#btn-add-func').click(function () {

-            showModel();

-        });

-        let showModel = function (data) {

-            let title = data ? '编辑父功能' : '添加父功能';

-            admin.putTempData('t_func', data);

-            admin.popupCenter({

-                title: title,

-                path: '[[@{/function/loadadd}]]',

-                finish: function () {

-                    table.reload('table', {});

-                }

-            });

-        };

-        let showModelSub = function (data,parentid) {

-            let title = data ? '编辑子功能' : '添加子功能';

-            admin.putTempData('parentId', parentid);

-            admin.putTempData('t_func', data);

-            admin.popupCenter({

-                title: title,

-                path: '[[@{/function/loadsubadd}]]',

-                finish: function () {

-                    table.reload('table', {});

-                }

-            });

-        };

-

-        let showResModel = function (functionid) {

-            let title = '维护资源';

-            admin.putTempData('functionid', functionid);

-            admin.popupCenter({

-                title: title,

-                area:'70%',

-                path: '[[@{/function/loadres}]]?functionid='+functionid

-            });

-        };

-        let showAddResModelSub = function (functionid) {

-            let title = '添加资源';

-            admin.putTempData('functionid', functionid);

-            admin.popupCenter({

-                title: title,

-                path: '[[@{/function/loadresadd}]]',

-                finish: function () {

-                    table.reload('table', {});

-                }

-            });

-        };

-        // 工具条点击事件

-        table.on('tool(table)', function (obj) {

-            let data = obj.data;

-            let layEvent = obj.event;

-            console.log(data);

-            if (layEvent === 'edit') {

-                showModel(data);

-            } else if (layEvent === 'addsub') {

-                showModelSub(null,data.id);

-            } else if (layEvent === 'editsub') {

-                showModelSub(data,data.parentId);

-            } else if (layEvent === 'del') {

-                showDelete(data);

-            } else if(layEvent === 'listres'){

-                showResModel(data.id);

-            } else if(layEvent === 'addres'){

-                showAddResModelSub(data.id);

-            }

-        });

-        let showDelete = function (data) {

-            layer.confirm('确定删除吗,该功能下的子功能、资源、角色分配的该功能都将被删除?', function (i) {

-                layer.close(i);

-                layer.load(2);

-                let token = $("meta[name='_csrf_token']").attr("value");

-                admin.go('[[@{/function/delfunc}]]', {

-                    funcid: data.id,

-                    _csrf:token

-                }, function (data) {

-                    console.log(data.code);

-                    layer.closeAll('loading');

-                    if (data.code == 200) {

-                        layer.msg(data.msg, {icon: 1});

-                    } else if (data.code == 401) {

-                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('[[@{/login}]]');

-                        }, 1000);

-                        return;

-                    }

-                    else {

-                        layer.msg(data.msg, {icon: 2});

-                    }

-                    table.reload('table', {});

-                },function(ret){

-                    console.log(ret);

-                    layer.closeAll('loading');

-                    layer.msg('请求失败了,请稍后再试', {icon: 2});

-                });

-            });

-        }

-    });

-</script>

+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">功能维护</h2>
+        <span class="layui-breadcrumb pull-right">
+          <a href="#">系统中心</a>
+          <a><cite>功能维护</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form toolbar">
+            搜索:
+            <input id="search-value" class="layui-input search-input" type="text" placeholder="输入功能名称"/>&emsp;
+            <button id="btn-search-func" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
+            </button>
+            <button id="btn-add-func" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>添加父功能</button>
+        </div>
+        <table class="layui-table" id="table" lay-filter="table"></table>
+    </div>
+</div>
+
+<script>
+    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+        let form = layui.form;
+        let table = layui.table;
+        let admin = layui.admin;
+
+        form.render('select');
+
+        // 渲染表格
+        table.render({
+            elem: '#table',
+            url: '[[@{/function/list}]]',
+            page: true,
+            cols: [
+                [
+                    {field: 'id', title: '功能ID', width: 80,fixed: 'left', sort: true},
+                    {field: 'name', title: '功能名称', sort: true},
+                    {
+                        field: 'isLeaf', title: '节点', sort: true, width: 80, align: 'center', templet: function (item) {
+                            if (item.isLeaf == 0) {
+                                return '<span class="layui-badge ">父</span>'
+                            } else if (item.isLeaf == 1) {
+                                return '<span class="layui-badge layui-bg-green">子</span>'
+                            } else {
+                                return ''
+                            }
+                        }
+                    },
+                    {field: 'menuUrl', title: '路径'},
+                    {field: 'orderNum', sort: true, width: 80,title: '序号'},
+                    {
+                        field: 'menuIcon', title: '图标', width: 80,align: 'center', templet: function (item) {
+                            return '<i class="layui-icon ' + item.menuIcon + '"></i> '
+                        }
+                    },
+                    {
+                        field: 'id', align: 'center', title: '操作', fixed: 'right', width:350, templet: function (item) {
+                            if (item.isLeaf == 0) {
+                                return ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +
+                                    ' <a class="layui-btn layui-btn-normal  layui-btn-xs" lay-event="addsub"><i class="layui-icon layui-icon-set-sm"></i>添加子功能</a> ' +
+                                    ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+                            } else {
+                                return ' <a class="layui-btn  layui-btn-xs" lay-event="editsub"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +
+                                    ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="addres"><i class="layui-icon layui-icon-set-sm"></i>添加资源</a> ' +
+                                    ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="listres"><i class="layui-icon layui-icon-set-sm"></i>维护资源</a> ' +
+                                    ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+                            }
+                        }
+                    }
+                ]
+            ]
+        });
+        // 搜索按钮点击事件
+        $('#btn-search-func').click(function () {
+            let key = $('#search-value').val();
+            table.reload('table', {where: {searchkey: key}, page: {curr: 1}});
+        });
+        $('#btn-add-func').click(function () {
+            showModel();
+        });
+        let showModel = function (data) {
+            let title = data ? '编辑父功能' : '添加父功能';
+            admin.putTempData('t_func', data);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/function/loadadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+        let showModelSub = function (data,parentid) {
+            let title = data ? '编辑子功能' : '添加子功能';
+            admin.putTempData('parentId', parentid);
+            admin.putTempData('t_func', data);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/function/loadsubadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+
+        let showResModel = function (functionid) {
+            let title = '维护资源';
+            admin.putTempData('functionid', functionid);
+            admin.popupCenter({
+                title: title,
+                area:'70%',
+                path: '[[@{/function/loadres}]]?functionid='+functionid
+            });
+        };
+        let showAddResModelSub = function (functionid) {
+            let title = '添加资源';
+            admin.putTempData('functionid', functionid);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/function/loadresadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+        // 工具条点击事件
+        table.on('tool(table)', function (obj) {
+            let data = obj.data;
+            let layEvent = obj.event;
+            console.log(data);
+            if (layEvent === 'edit') {
+                showModel(data);
+            } else if (layEvent === 'addsub') {
+                showModelSub(null,data.id);
+            } else if (layEvent === 'editsub') {
+                showModelSub(data,data.parentId);
+            } else if (layEvent === 'del') {
+                showDelete(data);
+            } else if(layEvent === 'listres'){
+                showResModel(data.id);
+            } else if(layEvent === 'addres'){
+                showAddResModelSub(data.id);
+            }
+        });
+        let showDelete = function (data) {
+            layer.confirm('确定删除吗,该功能下的子功能、资源、角色分配的该功能都将被删除?', function (i) {
+                layer.close(i);
+                layer.load(2);
+                let token = $("meta[name='_csrf_token']").attr("value");
+                admin.go('[[@{/function/delfunc}]]', {
+                    funcid: data.id,
+                    _csrf:token
+                }, function (data) {
+                    console.log(data.code);
+                    layer.closeAll('loading');
+                    if (data.code == 200) {
+                        layer.msg(data.msg, {icon: 1});
+                    } else if (data.code == 401) {
+                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    }
+                    else {
+                        layer.msg(data.msg, {icon: 2});
+                    }
+                    table.reload('table', {});
+                },function(ret){
+                    console.log(ret);
+                    layer.closeAll('loading');
+                    layer.msg('请求失败了,请稍后再试', {icon: 2});
+                });
+            });
+        }
+    });
+</script>
diff --git a/src/main/resources/templates/system/function/resform.html b/payapi/src/main/resources/templates/system/function/resform.html
similarity index 99%
rename from src/main/resources/templates/system/function/resform.html
rename to payapi/src/main/resources/templates/system/function/resform.html
index 4ac8b98..50cd1aa 100755
--- a/src/main/resources/templates/system/function/resform.html
+++ b/payapi/src/main/resources/templates/system/function/resform.html
@@ -1,94 +1,94 @@
-<!-- operator表单弹窗 -->

-<form id="resform" lay-filter="resform" class="layui-form model-form">

-    <input name="id" id="id" type="hidden"/>

-    <div class="layui-form-item">

-        <label class="layui-form-label">资源名称</label>

-        <div class="layui-input-block">

-            <input name="name" placeholder="请输入资源名称" type="text" class="layui-input" maxlength="60"

-                   lay-verify="required|name" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">路径</label>

-        <div class="layui-input-block">

-            <input name="uri" placeholder="请输入资源路径 " type="text" class="layui-input" maxlength="100"

-                   lay-verify="required" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">所属功能</label>

-        <div class="layui-input-block">

-            <select name="functionId" id="functionId" lay-verify="required">

-                <option th:each="func : ${list}" th:value="${func.id}">[[${func.name}]]</option>

-            </select>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">代码</label>

-        <div class="layui-input-block">

-            <input name="code" placeholder="请输入代码" type="text" class="layui-input"/>

-        </div>

-    </div>

-    <div class="layui-form-item model-form-footer">

-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>

-        <button class="layui-btn" lay-filter="resform-submit" lay-submit id="submitbtn">保存</button>

-    </div>

-</form>

-

-<script>

-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {

-        var layer = layui.layer;

-        var admin = layui.admin;

-        var form = layui.form;

-        form.render('select');

-        form.render('radio');

-        var url = '[[@{/function/addres}]]';

-        // 回显user数据

-        var func = admin.getTempData('t_res');

-        if (func) {

-            $('input[name="id"]').attr('readonly', 'readonly');

-            form.val('resform', func);

-        }

-        let functionid = admin.getTempData("functionid");

-        if (functionid) {

-            form.val('resform', {"functionId": functionid});

-        }

-        // 表单提交事件

-        form.on('submit(resform-submit)', function (data) {

-            layer.load(2);

-            let token = $("meta[name='_csrf_token']").attr("value");

-            debugger

-            $.ajax({

-                type: "POST",

-                dataType: "json",

-                url: url,

-                headers: {

-                    'Accept': 'application/json',

-                    'Content-Type': 'application/json',

-                    'X-CSRF-TOKEN': token,

-                },

-                data: JSON.stringify(data.field),

-                success: function (result) {

-                    layer.closeAll('loading');

-                    if (result.code == 200) {

-                        layer.msg(result.msg, {icon: 1});

-                        admin.finishPopupCenter();

-                    } else if (result.code == 401) {

-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('[[@{/login}]]');

-                        }, 1000);

-                        return;

-                    } else {

-                        console.log('err:' + result.code);

-                        layer.msg(result.msg, {icon: 2});

-                    }

-                },

-                error: function () {

-                    layer.closeAll('loading');

-                    layer.msg("请求服务器失败!", {icon: 2});

-                }

-            });

-            return false;

-        });

-    });

+<!-- operator表单弹窗 -->
+<form id="resform" lay-filter="resform" class="layui-form model-form">
+    <input name="id" id="id" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">资源名称</label>
+        <div class="layui-input-block">
+            <input name="name" placeholder="请输入资源名称" type="text" class="layui-input" maxlength="60"
+                   lay-verify="required|name" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">路径</label>
+        <div class="layui-input-block">
+            <input name="uri" placeholder="请输入资源路径 " type="text" class="layui-input" maxlength="100"
+                   lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">所属功能</label>
+        <div class="layui-input-block">
+            <select name="functionId" id="functionId" lay-verify="required">
+                <option th:each="func : ${list}" th:value="${func.id}">[[${func.name}]]</option>
+            </select>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">代码</label>
+        <div class="layui-input-block">
+            <input name="code" placeholder="请输入代码" type="text" class="layui-input"/>
+        </div>
+    </div>
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="resform-submit" lay-submit id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        form.render('select');
+        form.render('radio');
+        var url = '[[@{/function/addres}]]';
+        // 回显user数据
+        var func = admin.getTempData('t_res');
+        if (func) {
+            $('input[name="id"]').attr('readonly', 'readonly');
+            form.val('resform', func);
+        }
+        let functionid = admin.getTempData("functionid");
+        if (functionid) {
+            form.val('resform', {"functionId": functionid});
+        }
+        // 表单提交事件
+        form.on('submit(resform-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            debugger
+            $.ajax({
+                type: "POST",
+                dataType: "json",
+                url: url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN': token,
+                },
+                data: JSON.stringify(data.field),
+                success: function (result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error: function () {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/system/function/reslist.html b/payapi/src/main/resources/templates/system/function/reslist.html
similarity index 99%
rename from src/main/resources/templates/system/function/reslist.html
rename to payapi/src/main/resources/templates/system/function/reslist.html
index 63ba042..9a39b92 100755
--- a/src/main/resources/templates/system/function/reslist.html
+++ b/payapi/src/main/resources/templates/system/function/reslist.html
@@ -1,90 +1,90 @@
-<div style="padding:20px;">

-    <table class="layui-table" id="restable" lay-filter="restable">

-    </table>

-    <input type="hidden" id="functionid" th:value="${function.id}">

-    <input type="hidden" id="functionname" th:value="${function.name}">

-</div>

-<script>

-    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {

-        let form = layui.form;

-        let admin = layui.admin;

-        form.render('select');

-        let table = layui.table;

-        let func = admin.getTempData('functionid');

-        table.render({

-            elem: '#restable',

-            url: '[[@{/function/reslist}]]?functionid=' + func,

-            cols: [

-                [

-                    {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},

-                    {field: 'name', title: '资源名称', sort: true},

-                    {

-                        field: 'functionId', title: '所属功能', sort: true, align: 'center', templet: function (item) {

-                            return $("#functionname").val();

-                        }

-                    },

-                    {field: 'uri', title: '路径'},

-                    {field: 'code', sort: true, width: 80, title: '代码'},

-                    {

-                        field: 'id', align: 'center', title: '操作',  templet: function (item) {

-                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'

-                        }

-                    }

-                ]

-            ]

-        });

-        // 工具条点击事件

-        table.on('tool(restable)', function (obj) {

-            let data = obj.data;

-            let layEvent = obj.event;

-            console.log(data);

-            if (layEvent === 'edit') {

-                showAddResModelSub(data);

-            } else if (layEvent === 'del') {

-                showDelete(data);

-            }

-        });

-        let showAddResModelSub = function (data) {

-            let title = '编辑资源';

-            admin.putTempData('functionid', $("#functionid").val());

-            admin.putTempData('t_data',data);

-            admin.popupCenter({

-                title: title,

-                path: '[[@{/function/loadresadd}]]',

-                finish: function () {

-                    table.reload('table', {});

-                }

-            });

-        };

-        let showDelete = function (data) {

-            layer.confirm('确定删除吗?', function (i) {

-                layer.close(i);

-                layer.load(2);

-                let token = $("meta[name='_csrf_token']").attr("value");

-                admin.go('[[@{/function/delres}]]', {

-                    resid: data.id,

-                    _csrf:token

-                }, function (data) {

-                    console.log(data.code);

-                    layer.closeAll('loading');

-                    if (data.code == 200) {

-                        layer.msg(data.msg, {icon: 1});

-                    } else if (data.code == 401) {

-                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('[[@{/login}]]');

-                        }, 1000);

-                        return;

-                    }

-                    else {

-                        layer.msg(data.msg, {icon: 2});

-                    }

-                    table.reload('restable', {});

-                },function(ret){

-                    console.log(ret);

-                    layer.closeAll('loading');

-                    layer.msg('请求失败了,请稍后再试', {icon: 2});

-                });

-            });

-        }

-    });

-</script>

+<div style="padding:20px;">
+    <table class="layui-table" id="restable" lay-filter="restable">
+    </table>
+    <input type="hidden" id="functionid" th:value="${function.id}">
+    <input type="hidden" id="functionname" th:value="${function.name}">
+</div>
+<script>
+    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+        let form = layui.form;
+        let admin = layui.admin;
+        form.render('select');
+        let table = layui.table;
+        let func = admin.getTempData('functionid');
+        table.render({
+            elem: '#restable',
+            url: '[[@{/function/reslist}]]?functionid=' + func,
+            cols: [
+                [
+                    {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},
+                    {field: 'name', title: '资源名称', sort: true},
+                    {
+                        field: 'functionId', title: '所属功能', sort: true, align: 'center', templet: function (item) {
+                            return $("#functionname").val();
+                        }
+                    },
+                    {field: 'uri', title: '路径'},
+                    {field: 'code', sort: true, width: 80, title: '代码'},
+                    {
+                        field: 'id', align: 'center', title: '操作',  templet: function (item) {
+                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+                        }
+                    }
+                ]
+            ]
+        });
+        // 工具条点击事件
+        table.on('tool(restable)', function (obj) {
+            let data = obj.data;
+            let layEvent = obj.event;
+            console.log(data);
+            if (layEvent === 'edit') {
+                showAddResModelSub(data);
+            } else if (layEvent === 'del') {
+                showDelete(data);
+            }
+        });
+        let showAddResModelSub = function (data) {
+            let title = '编辑资源';
+            admin.putTempData('functionid', $("#functionid").val());
+            admin.putTempData('t_data',data);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/function/loadresadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+        let showDelete = function (data) {
+            layer.confirm('确定删除吗?', function (i) {
+                layer.close(i);
+                layer.load(2);
+                let token = $("meta[name='_csrf_token']").attr("value");
+                admin.go('[[@{/function/delres}]]', {
+                    resid: data.id,
+                    _csrf:token
+                }, function (data) {
+                    console.log(data.code);
+                    layer.closeAll('loading');
+                    if (data.code == 200) {
+                        layer.msg(data.msg, {icon: 1});
+                    } else if (data.code == 401) {
+                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    }
+                    else {
+                        layer.msg(data.msg, {icon: 2});
+                    }
+                    table.reload('restable', {});
+                },function(ret){
+                    console.log(ret);
+                    layer.closeAll('loading');
+                    layer.msg('请求失败了,请稍后再试', {icon: 2});
+                });
+            });
+        }
+    });
+</script>
diff --git a/src/main/resources/templates/system/function/subform.html b/payapi/src/main/resources/templates/system/function/subform.html
similarity index 99%
rename from src/main/resources/templates/system/function/subform.html
rename to payapi/src/main/resources/templates/system/function/subform.html
index f04a15e..d207807 100755
--- a/src/main/resources/templates/system/function/subform.html
+++ b/payapi/src/main/resources/templates/system/function/subform.html
@@ -1,106 +1,106 @@
-<!-- operator表单弹窗 -->

-<form id="form" lay-filter="subform" class="layui-form model-form">

-    <input name="id" id="id" type="hidden"/>

-    <div class="layui-form-item">

-        <label class="layui-form-label">功能名称</label>

-        <div class="layui-input-block">

-            <input name="name" placeholder="请输入功能名称" type="text" class="layui-input" maxlength="20"

-                   lay-verify="required|name" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">路径</label>

-        <div class="layui-input-block">

-            <input name="menuUrl" placeholder="请输入路径,父节点默认为 # " type="text" class="layui-input" maxlength="60" lay-verify="required" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">父功能</label>

-        <div class="layui-input-block">

-            <select name="parentId" id="parentId" lay-verify="required">

-                <option th:each="func : ${list}" th:value="${func.id}">[[${func.name}]]</option>

-            </select>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">节点</label>

-        <div class="layui-input-block">

-            <input type="radio" name="isLeaf" value="1" title="子" checked/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">序号</label>

-        <div class="layui-input-block">

-            <input name="orderNum" placeholder="请输入序号" type="text" class="layui-input" />

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">图标</label>

-        <div class="layui-input-block">

-            <input name="menuIcon" placeholder="请输入图标 例:layui-icon-xx " type="text" class="layui-input" />

-        </div>

-    </div>

-

-    <div class="layui-form-item model-form-footer">

-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>

-        <button class="layui-btn" lay-filter="subform-submit" lay-submit  id="submitbtn">保存</button>

-    </div>

-</form>

-

-<script>

-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {

-        var layer = layui.layer;

-        var admin = layui.admin;

-        var form = layui.form;

-        form.render('select');

-        form.render('radio');

-        var url = '[[@{/function/add}]]';

-        // 回显user数据

-        var func = admin.getTempData('t_func');

-        if (func) {

-            $('input[name="id"]').attr('readonly', 'readonly');

-            form.val('subform', func);

-        }

-        let parentId = admin.getTempData("parentId");

-        if(parentId){

-            form.val('subform', {"parentId":parentId});

-        }

-        // 表单提交事件

-        form.on('submit(subform-submit)', function (data) {

-            layer.load(2);

-            let token = $("meta[name='_csrf_token']").attr("value");

-            debugger

-            $.ajax({

-                type : "POST",

-                dataType : "json",

-                url : url,

-                headers: {

-                    'Accept': 'application/json',

-                    'Content-Type': 'application/json',

-                    'X-CSRF-TOKEN':token,

-                },

-                data : JSON.stringify(data.field),

-                success : function(result) {

-                    layer.closeAll('loading');

-                    if (result.code == 200) {

-                        layer.msg(result.msg, {icon: 1});

-                        admin.finishPopupCenter();

-                    } else if (result.code == 401) {

-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('[[@{/login}]]');

-                        }, 1000);

-                        return;

-                    } else {

-                        console.log('err:' + result.code);

-                        layer.msg(result.msg, {icon: 2});

-                    }

-                },

-                error : function() {

-                    layer.closeAll('loading');

-                    layer.msg("请求服务器失败!", {icon: 2});

-                }

-            });

-            return false;

-        });

-    });

+<!-- operator表单弹窗 -->
+<form id="form" lay-filter="subform" class="layui-form model-form">
+    <input name="id" id="id" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">功能名称</label>
+        <div class="layui-input-block">
+            <input name="name" placeholder="请输入功能名称" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|name" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">路径</label>
+        <div class="layui-input-block">
+            <input name="menuUrl" placeholder="请输入路径,父节点默认为 # " type="text" class="layui-input" maxlength="60" lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">父功能</label>
+        <div class="layui-input-block">
+            <select name="parentId" id="parentId" lay-verify="required">
+                <option th:each="func : ${list}" th:value="${func.id}">[[${func.name}]]</option>
+            </select>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">节点</label>
+        <div class="layui-input-block">
+            <input type="radio" name="isLeaf" value="1" title="子" checked/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">序号</label>
+        <div class="layui-input-block">
+            <input name="orderNum" placeholder="请输入序号" type="text" class="layui-input" />
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">图标</label>
+        <div class="layui-input-block">
+            <input name="menuIcon" placeholder="请输入图标 例:layui-icon-xx " type="text" class="layui-input" />
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="subform-submit" lay-submit  id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        form.render('select');
+        form.render('radio');
+        var url = '[[@{/function/add}]]';
+        // 回显user数据
+        var func = admin.getTempData('t_func');
+        if (func) {
+            $('input[name="id"]').attr('readonly', 'readonly');
+            form.val('subform', func);
+        }
+        let parentId = admin.getTempData("parentId");
+        if(parentId){
+            form.val('subform', {"parentId":parentId});
+        }
+        // 表单提交事件
+        form.on('submit(subform-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            debugger
+            $.ajax({
+                type : "POST",
+                dataType : "json",
+                url : url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN':token,
+                },
+                data : JSON.stringify(data.field),
+                success : function(result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error : function() {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/system/operator/index.html b/payapi/src/main/resources/templates/system/operator/index.html
similarity index 100%
rename from src/main/resources/templates/system/operator/index.html
rename to payapi/src/main/resources/templates/system/operator/index.html
diff --git a/src/main/resources/templates/system/operator/logs.html b/payapi/src/main/resources/templates/system/operator/logs.html
similarity index 100%
rename from src/main/resources/templates/system/operator/logs.html
rename to payapi/src/main/resources/templates/system/operator/logs.html
diff --git a/src/main/resources/templates/system/operator/operator.html b/payapi/src/main/resources/templates/system/operator/operator.html
similarity index 100%
rename from src/main/resources/templates/system/operator/operator.html
rename to payapi/src/main/resources/templates/system/operator/operator.html
diff --git a/src/main/resources/templates/system/operator/setpwd.html b/payapi/src/main/resources/templates/system/operator/setpwd.html
similarity index 100%
rename from src/main/resources/templates/system/operator/setpwd.html
rename to payapi/src/main/resources/templates/system/operator/setpwd.html
diff --git a/src/main/resources/templates/system/operator/userinfor.html b/payapi/src/main/resources/templates/system/operator/userinfor.html
similarity index 100%
rename from src/main/resources/templates/system/operator/userinfor.html
rename to payapi/src/main/resources/templates/system/operator/userinfor.html
diff --git a/src/main/resources/templates/system/param/apiclientform.html b/payapi/src/main/resources/templates/system/param/apiclientform.html
similarity index 100%
rename from src/main/resources/templates/system/param/apiclientform.html
rename to payapi/src/main/resources/templates/system/param/apiclientform.html
diff --git a/src/main/resources/templates/system/param/apiclientpara.html b/payapi/src/main/resources/templates/system/param/apiclientpara.html
similarity index 100%
rename from src/main/resources/templates/system/param/apiclientpara.html
rename to payapi/src/main/resources/templates/system/param/apiclientpara.html
diff --git a/src/main/resources/templates/system/param/businesspara.html b/payapi/src/main/resources/templates/system/param/businesspara.html
similarity index 100%
rename from src/main/resources/templates/system/param/businesspara.html
rename to payapi/src/main/resources/templates/system/param/businesspara.html
diff --git a/src/main/resources/templates/system/param/busparaform.html b/payapi/src/main/resources/templates/system/param/busparaform.html
similarity index 100%
rename from src/main/resources/templates/system/param/busparaform.html
rename to payapi/src/main/resources/templates/system/param/busparaform.html
diff --git a/src/main/resources/templates/system/param/paytype.html b/payapi/src/main/resources/templates/system/param/paytype.html
similarity index 100%
rename from src/main/resources/templates/system/param/paytype.html
rename to payapi/src/main/resources/templates/system/param/paytype.html
diff --git a/src/main/resources/templates/system/param/paytypeconfig.html b/payapi/src/main/resources/templates/system/param/paytypeconfig.html
similarity index 100%
rename from src/main/resources/templates/system/param/paytypeconfig.html
rename to payapi/src/main/resources/templates/system/param/paytypeconfig.html
diff --git a/src/main/resources/templates/system/param/paytypeform.html b/payapi/src/main/resources/templates/system/param/paytypeform.html
similarity index 100%
rename from src/main/resources/templates/system/param/paytypeform.html
rename to payapi/src/main/resources/templates/system/param/paytypeform.html
diff --git a/src/main/resources/templates/system/param/syspara.html b/payapi/src/main/resources/templates/system/param/syspara.html
similarity index 100%
rename from src/main/resources/templates/system/param/syspara.html
rename to payapi/src/main/resources/templates/system/param/syspara.html
diff --git a/src/main/resources/templates/system/report/shopbusiness.html b/payapi/src/main/resources/templates/system/report/shopbusiness.html
similarity index 100%
rename from src/main/resources/templates/system/report/shopbusiness.html
rename to payapi/src/main/resources/templates/system/report/shopbusiness.html
diff --git a/src/main/resources/templates/system/report/subjectday.html b/payapi/src/main/resources/templates/system/report/subjectday.html
similarity index 100%
rename from src/main/resources/templates/system/report/subjectday.html
rename to payapi/src/main/resources/templates/system/report/subjectday.html
diff --git a/src/main/resources/templates/system/report/subjectdetail.html b/payapi/src/main/resources/templates/system/report/subjectdetail.html
similarity index 100%
rename from src/main/resources/templates/system/report/subjectdetail.html
rename to payapi/src/main/resources/templates/system/report/subjectdetail.html
diff --git a/src/main/resources/templates/system/role/form.html b/payapi/src/main/resources/templates/system/role/form.html
similarity index 99%
rename from src/main/resources/templates/system/role/form.html
rename to payapi/src/main/resources/templates/system/role/form.html
index d60bac8..607c1f3 100755
--- a/src/main/resources/templates/system/role/form.html
+++ b/payapi/src/main/resources/templates/system/role/form.html
@@ -1,73 +1,73 @@
-<!-- operator表单弹窗 -->

-<form id="form" lay-filter="form" class="layui-form model-form">

-    <input name="roleId" id="roleId" type="hidden"/>

-    <div class="layui-form-item">

-        <label class="layui-form-label">角色名称</label>

-        <div class="layui-input-block">

-            <input name="roleName" placeholder="请输入角色名称" type="text" class="layui-input" maxlength="20"

-                   lay-verify="required|roleName" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">角色描述</label>

-        <div class="layui-input-block">

-            <textarea name="roleDesc" placeholder="请输入描述" class="layui-textarea"></textarea>

-        </div>

-    </div>

-

-    <div class="layui-form-item model-form-footer">

-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>

-        <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>

-    </div>

-</form>

-

-<script>

-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {

-        var layer = layui.layer;

-        var admin = layui.admin;

-        var form = layui.form;

-        var url = '[[@{/role/add}]]';

-        // 回显user数据

-        var func = admin.getTempData('t_func');

-        if (func) {

-            $('input[name="roleId"]').attr('readonly', 'readonly');

-            form.val('form', func);

-        }

-        // 表单提交事件

-        form.on('submit(form-submit)', function (data) {

-            layer.load(2);

-            let token = $("meta[name='_csrf_token']").attr("value");

-            $.ajax({

-                type : "POST",

-                dataType : "json",

-                url : url,

-                headers: {

-                    'Accept': 'application/json',

-                    'Content-Type': 'application/json',

-                    'X-CSRF-TOKEN':token,

-                },

-                data : JSON.stringify(data.field),

-                success : function(result) {

-                    layer.closeAll('loading');

-                    if (result.code == 200) {

-                        layer.msg(result.msg, {icon: 1});

-                        admin.finishPopupCenter();

-                    } else if (result.code == 401) {

-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('[[@{/login}]]');

-                        }, 1000);

-                        return;

-                    } else {

-                        console.log('err:' + result.code);

-                        layer.msg(result.msg, {icon: 2});

-                    }

-                },

-                error : function() {

-                    layer.closeAll('loading');

-                    layer.msg("请求服务器失败!", {icon: 2});

-                }

-            });

-            return false;

-        });

-    });

+<!-- operator表单弹窗 -->
+<form id="form" lay-filter="form" class="layui-form model-form">
+    <input name="roleId" id="roleId" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">角色名称</label>
+        <div class="layui-input-block">
+            <input name="roleName" placeholder="请输入角色名称" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|roleName" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">角色描述</label>
+        <div class="layui-input-block">
+            <textarea name="roleDesc" placeholder="请输入描述" class="layui-textarea"></textarea>
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        var url = '[[@{/role/add}]]';
+        // 回显user数据
+        var func = admin.getTempData('t_func');
+        if (func) {
+            $('input[name="roleId"]').attr('readonly', 'readonly');
+            form.val('form', func);
+        }
+        // 表单提交事件
+        form.on('submit(form-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            $.ajax({
+                type : "POST",
+                dataType : "json",
+                url : url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN':token,
+                },
+                data : JSON.stringify(data.field),
+                success : function(result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error : function() {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/system/role/func.html b/payapi/src/main/resources/templates/system/role/func.html
similarity index 99%
rename from src/main/resources/templates/system/role/func.html
rename to payapi/src/main/resources/templates/system/role/func.html
index f3ebd5e..917c8d9 100755
--- a/src/main/resources/templates/system/role/func.html
+++ b/payapi/src/main/resources/templates/system/role/func.html
@@ -1,89 +1,89 @@
-<div style="padding: 0 20px">

-    <div class="layui-form-item" style="max-height: 490px;overflow: auto;">

-        <ul id="funclist" class="ztree"></ul>

-    </div>

-    <div class="layui-form-item model-form-footer">

-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>

-        <button class="layui-btn" lay-filter="form-submit" id="submitbtn">保存</button>

-    </div>

-</div>

-<script>

-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {

-        var layer = layui.layer;

-        var admin = layui.admin;

-        var form = layui.form;

-        var func = admin.getTempData('roleId');

-        let initTree = function (nodes) {

-            let menuSetting = {

-                view: {

-                    dblClickExpand: true,

-                    showLine: true,

-                    showIcon: false

-                },

-                check: {

-                    enable: true,

-                },

-                data: {

-                    simpleData: {

-                        enable: true

-                    }

-                }

-            };

-            $.fn.zTree.init($("#funclist"), menuSetting, nodes);

-        }

-        admin.dgo('[[@{/role/func}]]', {

-            roleId: func,

-        }, function (data) {

-            layer.closeAll('loading');

-            if (data.code == 200) {

-                initTree(data.node);

-            } else if (data.code == 401) {

-                layer.msg(data.msg, {icon: 2, time: 1500}, function () {

-                    location.replace('[[@{/login}]]');

-                }, 1000);

-                return;

-            } else {

-                layer.msg(data.msg, {icon: 2});

-            }

-        }, function (ret) {

-            layer.closeAll('loading');

-            layer.msg('请求失败了,请稍后再试', {icon: 2});

-        });

-        $("#submitbtn").on('click', function (e) {

-            let ids = [];

-            let treeObj = $.fn.zTree.getZTreeObj("funclist");

-            let nodes = treeObj.getCheckedNodes(true);

-            for (let i = 0; i < nodes.length; i++) {

-

-                ids.push(nodes[i].id);//存功能ID

-            }

-            if (ids.length < 1) {

-                return;

-            }

-            let idStr = ids.toString();

-            let token = $("meta[name='_csrf_token']").attr("value");

-            admin.go('[[@{/role/addfunc}]]', {

-                roleId: func,

-                funcs: idStr,

-                _csrf: token,

-            }, function (data) {

-                layer.closeAll('loading');

-                if (data.code == 200) {

-                    layer.msg(data.msg, {icon: 1});

-                    admin.finishPopupCenter();

-                } else if (data.code == 401) {

-                    layer.msg(data.msg, {icon: 2, time: 1500}, function () {

-                        location.replace('[[@{/login}]]');

-                    }, 1000);

-                    return;

-                } else {

-                    layer.msg(data.msg, {icon: 2});

-                }

-            }, function (ret) {

-                console.log(ret);

-                layer.closeAll('loading');

-                layer.msg('请求失败了,请稍后再试', {icon: 2});

-            });

-        })

-    });

+<div style="padding: 0 20px">
+    <div class="layui-form-item" style="max-height: 490px;overflow: auto;">
+        <ul id="funclist" class="ztree"></ul>
+    </div>
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="form-submit" id="submitbtn">保存</button>
+    </div>
+</div>
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        var func = admin.getTempData('roleId');
+        let initTree = function (nodes) {
+            let menuSetting = {
+                view: {
+                    dblClickExpand: true,
+                    showLine: true,
+                    showIcon: false
+                },
+                check: {
+                    enable: true,
+                },
+                data: {
+                    simpleData: {
+                        enable: true
+                    }
+                }
+            };
+            $.fn.zTree.init($("#funclist"), menuSetting, nodes);
+        }
+        admin.dgo('[[@{/role/func}]]', {
+            roleId: func,
+        }, function (data) {
+            layer.closeAll('loading');
+            if (data.code == 200) {
+                initTree(data.node);
+            } else if (data.code == 401) {
+                layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                    location.replace('[[@{/login}]]');
+                }, 1000);
+                return;
+            } else {
+                layer.msg(data.msg, {icon: 2});
+            }
+        }, function (ret) {
+            layer.closeAll('loading');
+            layer.msg('请求失败了,请稍后再试', {icon: 2});
+        });
+        $("#submitbtn").on('click', function (e) {
+            let ids = [];
+            let treeObj = $.fn.zTree.getZTreeObj("funclist");
+            let nodes = treeObj.getCheckedNodes(true);
+            for (let i = 0; i < nodes.length; i++) {
+
+                ids.push(nodes[i].id);//存功能ID
+            }
+            if (ids.length < 1) {
+                return;
+            }
+            let idStr = ids.toString();
+            let token = $("meta[name='_csrf_token']").attr("value");
+            admin.go('[[@{/role/addfunc}]]', {
+                roleId: func,
+                funcs: idStr,
+                _csrf: token,
+            }, function (data) {
+                layer.closeAll('loading');
+                if (data.code == 200) {
+                    layer.msg(data.msg, {icon: 1});
+                    admin.finishPopupCenter();
+                } else if (data.code == 401) {
+                    layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                        location.replace('[[@{/login}]]');
+                    }, 1000);
+                    return;
+                } else {
+                    layer.msg(data.msg, {icon: 2});
+                }
+            }, function (ret) {
+                console.log(ret);
+                layer.closeAll('loading');
+                layer.msg('请求失败了,请稍后再试', {icon: 2});
+            });
+        })
+    });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/system/role/index.html b/payapi/src/main/resources/templates/system/role/index.html
similarity index 100%
rename from src/main/resources/templates/system/role/index.html
rename to payapi/src/main/resources/templates/system/role/index.html
diff --git a/src/main/resources/templates/system/shop/config.html b/payapi/src/main/resources/templates/system/shop/config.html
similarity index 100%
rename from src/main/resources/templates/system/shop/config.html
rename to payapi/src/main/resources/templates/system/shop/config.html
diff --git a/src/main/resources/templates/system/shop/configform.html b/payapi/src/main/resources/templates/system/shop/configform.html
similarity index 100%
rename from src/main/resources/templates/system/shop/configform.html
rename to payapi/src/main/resources/templates/system/shop/configform.html
diff --git a/src/main/resources/templates/system/shop/configpara.html b/payapi/src/main/resources/templates/system/shop/configpara.html
similarity index 100%
rename from src/main/resources/templates/system/shop/configpara.html
rename to payapi/src/main/resources/templates/system/shop/configpara.html
diff --git a/src/main/resources/templates/system/shop/index.html b/payapi/src/main/resources/templates/system/shop/index.html
similarity index 100%
rename from src/main/resources/templates/system/shop/index.html
rename to payapi/src/main/resources/templates/system/shop/index.html
diff --git a/src/main/resources/templates/system/user/account.html b/payapi/src/main/resources/templates/system/user/account.html
similarity index 100%
rename from src/main/resources/templates/system/user/account.html
rename to payapi/src/main/resources/templates/system/user/account.html
diff --git a/src/main/resources/templates/system/user/add.html b/payapi/src/main/resources/templates/system/user/add.html
similarity index 99%
rename from src/main/resources/templates/system/user/add.html
rename to payapi/src/main/resources/templates/system/user/add.html
index d04999d..7badc58 100755
--- a/src/main/resources/templates/system/user/add.html
+++ b/payapi/src/main/resources/templates/system/user/add.html
@@ -1,110 +1,110 @@
-<!-- operator表单弹窗 -->

-<form id="user-form" lay-filter="user-form" class="layui-form model-form">

-    <input name="userid" id="userid" type="hidden"/>

-    <div class="layui-form-item">

-        <label class="layui-form-label">姓名*</label>

-        <div class="layui-input-block">

-            <input name="name" placeholder="请输入名称" type="text" class="layui-input" maxlength="100"

-                   lay-verify="required" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">性别</label>

-        <div class="layui-input-block">

-            <input type="radio" name="sex" value="male" title="男" checked/>

-            <input type="radio" name="sex" value="female" title="女"/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">证件类型*</label>

-        <div class="layui-input-block">

-            <select name="idtype" id="idtype" lay-verify="required">

-                <option th:each="bean : ${idtypeList}" th:value="${bean.dictval}">[[${bean.dictcaption}]]</option>

-            </select>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">证件号*</label>

-        <div class="layui-input-block">

-            <input name="idno" placeholder="请输入证件号" type="text" class="layui-input" maxlength="100"

-                   lay-verify="required" required/>

-        </div>

-    </div>

-

-    <div class="layui-form-item">

-        <label class="layui-form-label">手机号*</label>

-        <div class="layui-input-block">

-            <input name="mobile" placeholder="请输入手机号" type="text" class="layui-input" maxlength="11"

-                   lay-verify="required" required/>

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">邮箱</label>

-        <div class="layui-input-block">

-            <input name="email" placeholder="请输入邮箱" type="text" class="layui-input" maxlength="100" />

-        </div>

-    </div>

-    <div class="layui-form-item">

-        <label class="layui-form-label">地址</label>

-        <div class="layui-input-block">

-            <input name="addr" placeholder="请输入地址" type="text" class="layui-input" maxlength="300" />

-        </div>

-    </div>

-

-    <div class="layui-form-item model-form-footer">

-        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>

-        <button class="layui-btn" lay-filter="user-form-submit" lay-submit  id="submitbtn">保存</button>

-    </div>

-</form>

-

-<script>

-    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {

-        var layer = layui.layer;

-        var admin = layui.admin;

-        var form = layui.form;

-        var url = '[[@{/user/add}]]';

-        form.render('radio');

-        form.render('select');

-        // 回显user数据

-        var bean = admin.getTempData('t_bean');

-        if (bean) {

-            form.val('user-form', bean);

-        }

-        // 表单提交事件

-        form.on('submit(user-form-submit)', function (data) {

-            layer.load(2);

-            let token = $("meta[name='_csrf_token']").attr("value");

-            $.ajax({

-                type : "POST",

-                dataType : "json",

-                url : url,

-                headers: {

-                    'Accept': 'application/json',

-                    'Content-Type': 'application/json',

-                    'X-CSRF-TOKEN':token,

-                },

-                data : JSON.stringify(data.field),

-                success : function(result) {

-                    layer.closeAll('loading');

-                    if (result.code == 200) {

-                        layer.msg(result.msg, {icon: 1});

-                        admin.finishPopupCenter();

-                    } else if (result.code == 401) {

-                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('[[@{/login}]]');

-                        }, 1000);

-                        return;

-                    } else {

-                        console.log('err:' + result.code);

-                        layer.msg(result.msg, {icon: 2});

-                    }

-                },

-                error : function() {

-                    layer.closeAll('loading');

-                    layer.msg("请求服务器失败!", {icon: 2});

-                }

-            });

-            return false;

-        });

-    });

+<!-- operator表单弹窗 -->
+<form id="user-form" lay-filter="user-form" class="layui-form model-form">
+    <input name="userid" id="userid" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">姓名*</label>
+        <div class="layui-input-block">
+            <input name="name" placeholder="请输入名称" type="text" class="layui-input" maxlength="100"
+                   lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">性别</label>
+        <div class="layui-input-block">
+            <input type="radio" name="sex" value="male" title="男" checked/>
+            <input type="radio" name="sex" value="female" title="女"/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">证件类型*</label>
+        <div class="layui-input-block">
+            <select name="idtype" id="idtype" lay-verify="required">
+                <option th:each="bean : ${idtypeList}" th:value="${bean.dictval}">[[${bean.dictcaption}]]</option>
+            </select>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">证件号*</label>
+        <div class="layui-input-block">
+            <input name="idno" placeholder="请输入证件号" type="text" class="layui-input" maxlength="100"
+                   lay-verify="required" required/>
+        </div>
+    </div>
+
+    <div class="layui-form-item">
+        <label class="layui-form-label">手机号*</label>
+        <div class="layui-input-block">
+            <input name="mobile" placeholder="请输入手机号" type="text" class="layui-input" maxlength="11"
+                   lay-verify="required" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">邮箱</label>
+        <div class="layui-input-block">
+            <input name="email" placeholder="请输入邮箱" type="text" class="layui-input" maxlength="100" />
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">地址</label>
+        <div class="layui-input-block">
+            <input name="addr" placeholder="请输入地址" type="text" class="layui-input" maxlength="300" />
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="user-form-submit" lay-submit  id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        var url = '[[@{/user/add}]]';
+        form.render('radio');
+        form.render('select');
+        // 回显user数据
+        var bean = admin.getTempData('t_bean');
+        if (bean) {
+            form.val('user-form', bean);
+        }
+        // 表单提交事件
+        form.on('submit(user-form-submit)', function (data) {
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            $.ajax({
+                type : "POST",
+                dataType : "json",
+                url : url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN':token,
+                },
+                data : JSON.stringify(data.field),
+                success : function(result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error : function() {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/system/user/bind.html b/payapi/src/main/resources/templates/system/user/bind.html
similarity index 99%
rename from src/main/resources/templates/system/user/bind.html
rename to payapi/src/main/resources/templates/system/user/bind.html
index e5ea4d5..cba5937 100755
--- a/src/main/resources/templates/system/user/bind.html
+++ b/payapi/src/main/resources/templates/system/user/bind.html
@@ -1,76 +1,76 @@
-<div style="padding:20px;">

-    <table class="layui-table" id="userbindtable" lay-filter="userbindtable">

-    </table>

-    <input type="hidden" id="userid" th:value="${userid}">

-</div>

-<script>

-    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {

-        let form = layui.form;

-        let admin = layui.admin;

-        form.render('select');

-        let table = layui.table;

-        let userid = admin.getTempData('userid');

-        table.render({

-            elem: '#userbindtable',

-            url: '[[@{/user/bind}]]?userid=' + userid,

-            cols: [

-                [

-                    {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},

-                    {field: 'name', title: '资源名称', sort: true},

-                    {

-                        field: 'functionId', title: '所属功能', sort: true, align: 'center', templet: function (item) {

-                            return $("#functionname").val();

-                        }

-                    },

-                    {field: 'uri', title: '路径'},

-                    {field: 'code', sort: true, width: 80, title: '代码'},

-                    {

-                        field: 'id', align: 'center', title: '操作',  templet: function (item) {

-                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'

-                        }

-                    }

-                ]

-            ]

-        });

-        // 工具条点击事件

-        table.on('tool(userbindtable)', function (obj) {

-            let data = obj.data;

-            let layEvent = obj.event;

-            console.log(data);

-            if (layEvent === 'del') {

-                showDelete(data);

-            }

-        });

-

-        let showDelete = function (data) {

-            layer.confirm('确定删除吗?', function (i) {

-                layer.close(i);

-                layer.load(2);

-                let token = $("meta[name='_csrf_token']").attr("value");

-                admin.go('[[@{/user/delbind}]]', {

-                    resid: data.id,

-                    _csrf:token

-                }, function (data) {

-                    console.log(data.code);

-                    layer.closeAll('loading');

-                    if (data.code == 200) {

-                        layer.msg(data.msg, {icon: 1});

-                    } else if (data.code == 401) {

-                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {

-                            location.replace('[[@{/login}]]');

-                        }, 1000);

-                        return;

-                    }

-                    else {

-                        layer.msg(data.msg, {icon: 2});

-                    }

-                    table.reload('restable', {});

-                },function(ret){

-                    console.log(ret);

-                    layer.closeAll('loading');

-                    layer.msg('请求失败了,请稍后再试', {icon: 2});

-                });

-            });

-        }

-    });

-</script>

+<div style="padding:20px;">
+    <table class="layui-table" id="userbindtable" lay-filter="userbindtable">
+    </table>
+    <input type="hidden" id="userid" th:value="${userid}">
+</div>
+<script>
+    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+        let form = layui.form;
+        let admin = layui.admin;
+        form.render('select');
+        let table = layui.table;
+        let userid = admin.getTempData('userid');
+        table.render({
+            elem: '#userbindtable',
+            url: '[[@{/user/bind}]]?userid=' + userid,
+            cols: [
+                [
+                    {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},
+                    {field: 'name', title: '资源名称', sort: true},
+                    {
+                        field: 'functionId', title: '所属功能', sort: true, align: 'center', templet: function (item) {
+                            return $("#functionname").val();
+                        }
+                    },
+                    {field: 'uri', title: '路径'},
+                    {field: 'code', sort: true, width: 80, title: '代码'},
+                    {
+                        field: 'id', align: 'center', title: '操作',  templet: function (item) {
+                            return '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>'
+                        }
+                    }
+                ]
+            ]
+        });
+        // 工具条点击事件
+        table.on('tool(userbindtable)', function (obj) {
+            let data = obj.data;
+            let layEvent = obj.event;
+            console.log(data);
+            if (layEvent === 'del') {
+                showDelete(data);
+            }
+        });
+
+        let showDelete = function (data) {
+            layer.confirm('确定删除吗?', function (i) {
+                layer.close(i);
+                layer.load(2);
+                let token = $("meta[name='_csrf_token']").attr("value");
+                admin.go('[[@{/user/delbind}]]', {
+                    resid: data.id,
+                    _csrf:token
+                }, function (data) {
+                    console.log(data.code);
+                    layer.closeAll('loading');
+                    if (data.code == 200) {
+                        layer.msg(data.msg, {icon: 1});
+                    } else if (data.code == 401) {
+                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('[[@{/login}]]');
+                        }, 1000);
+                        return;
+                    }
+                    else {
+                        layer.msg(data.msg, {icon: 2});
+                    }
+                    table.reload('restable', {});
+                },function(ret){
+                    console.log(ret);
+                    layer.closeAll('loading');
+                    layer.msg('请求失败了,请稍后再试', {icon: 2});
+                });
+            });
+        }
+    });
+</script>
diff --git a/src/main/resources/templates/system/user/index.html b/payapi/src/main/resources/templates/system/user/index.html
similarity index 100%
rename from src/main/resources/templates/system/user/index.html
rename to payapi/src/main/resources/templates/system/user/index.html
diff --git a/src/main/resources/templates/system/user/point.html b/payapi/src/main/resources/templates/system/user/point.html
similarity index 100%
rename from src/main/resources/templates/system/user/point.html
rename to payapi/src/main/resources/templates/system/user/point.html
diff --git a/src/main/resources/templates/system/user/pointdtl.html b/payapi/src/main/resources/templates/system/user/pointdtl.html
similarity index 100%
rename from src/main/resources/templates/system/user/pointdtl.html
rename to payapi/src/main/resources/templates/system/user/pointdtl.html
diff --git a/src/main/webapp/WEB-INF/web.xml b/payapi/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from src/main/webapp/WEB-INF/web.xml
rename to payapi/src/main/webapp/WEB-INF/web.xml
diff --git a/src/test/kotlin/com/supwisdom/dlpay/DlpayApplicationTests.kt b/payapi/src/test/kotlin/com/supwisdom/dlpay/DlpayApplicationTests.kt
similarity index 100%
rename from src/test/kotlin/com/supwisdom/dlpay/DlpayApplicationTests.kt
rename to payapi/src/test/kotlin/com/supwisdom/dlpay/DlpayApplicationTests.kt
diff --git a/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt b/payapi/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt
similarity index 100%
rename from src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt
rename to payapi/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt b/payapi/src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt
similarity index 100%
rename from src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt
rename to payapi/src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt b/payapi/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
similarity index 100%
rename from src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
rename to payapi/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt b/payapi/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
similarity index 100%
rename from src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
rename to payapi/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/security_controller_test.kt b/payapi/src/test/kotlin/com/supwisdom/dlpay/controller/security_controller_test.kt
similarity index 100%
rename from src/test/kotlin/com/supwisdom/dlpay/controller/security_controller_test.kt
rename to payapi/src/test/kotlin/com/supwisdom/dlpay/controller/security_controller_test.kt
diff --git a/src/test/kotlin/com/supwisdom/dlpay/password_test.kt b/payapi/src/test/kotlin/com/supwisdom/dlpay/password_test.kt
similarity index 100%
rename from src/test/kotlin/com/supwisdom/dlpay/password_test.kt
rename to payapi/src/test/kotlin/com/supwisdom/dlpay/password_test.kt
diff --git a/settings.gradle b/settings.gradle
index 60cb130..4a2e583 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1,2 @@
 rootProject.name = 'payapi'
-include 'payapi-sdk', 'common'
+include 'payapi', 'payapi-sdk', 'common'