增加docker镜像
diff --git a/backend/build.gradle b/backend/build.gradle
index d9047cc..dd3c0ca 100644
--- a/backend/build.gradle
+++ b/backend/build.gradle
@@ -5,10 +5,20 @@
     id 'org.jetbrains.kotlin.plugin.spring'
     id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.31'
     id 'io.spring.dependency-management'
+    id 'com.palantir.docker' version '0.22.1'
 }
 
+docker {
+    name 'harbor.supwisdom.com/dali/portal:' + version
+    println(jar.archivePath)
+    files jar.archivePath
+}
+
+docker.dependsOn(jar)
+
+archivesBaseName = 'portal'
 group 'com.supwisdom.dlpay'
-version '1.0-SNAPSHOT'
+version '1.0'
 
 sourceCompatibility = 1.8
 
diff --git a/backend/src/main/java/com/supwisdom/dlpay/framework/jpa/Finder.java b/backend/src/main/java/com/supwisdom/dlpay/framework/jpa/Finder.java
index a344ce8..c6dfcc5 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/framework/jpa/Finder.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/framework/jpa/Finder.java
@@ -278,10 +278,10 @@
 	public static final String ORDER_BY = "order by";
 	public static final String GROUP_BY = "group by";
 
-	public static void main(String[] args) {
-		Finder find = Finder
-				.create("select distinct p FROM BookType join fetch p");
-		System.out.println(find.getRowCountHql());
-		System.out.println(find.getOrigHql());
-	}
+//	public static void main(String[] args) {
+//		Finder find = Finder
+//				.create("select distinct p FROM BookType join fetch p");
+//		System.out.println(find.getRowCountHql());
+//		System.out.println(find.getOrigHql());
+//	}
 }
\ No newline at end of file
diff --git a/backend/src/main/java/com/supwisdom/dlpay/portal/util/SecurityConfig.java b/backend/src/main/java/com/supwisdom/dlpay/portal/util/SecurityConfig.java
new file mode 100644
index 0000000..3229dd0
--- /dev/null
+++ b/backend/src/main/java/com/supwisdom/dlpay/portal/util/SecurityConfig.java
@@ -0,0 +1,21 @@
+package com.supwisdom.dlpay.portal.util;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class SecurityConfig implements WebMvcConfigurer  {
+
+  @Bean
+  public WebMvcConfigurer forwordToIndex() {
+    return new WebMvcConfigurer() {
+      @Override
+      public void addViewControllers(ViewControllerRegistry registry) {
+        registry.addViewController("/pages").setViewName("forward:/pages/index.html");
+        registry.addViewController("/pages/").setViewName("forward:/pages/index.html");
+      }
+    };
+  }
+}
diff --git a/backend/src/main/java/com/supwisdom/dlpay/util/RSAKeysGenerate.java b/backend/src/main/java/com/supwisdom/dlpay/util/RSAKeysGenerate.java
index 82d2b82..f040c44 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/util/RSAKeysGenerate.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/util/RSAKeysGenerate.java
@@ -33,18 +33,18 @@
   private static final int MAX_DECRYPT_BLOCK = 128;
   /** 默认的安全服务提供者 */
   private static final Provider DEFAULT_PROVIDER = new BouncyCastleProvider();
-  public static void main(String[] args) {
-    Map<String, Object> keyMap;
-    try {
-      keyMap = initKey();
-      String publicKey = getPublicKey(keyMap);
-      System.out.println(publicKey);
-      String privateKey = getPrivateKey(keyMap);
-      System.out.println(privateKey);
-    } catch (Exception e) {
-      e.printStackTrace();
-    }
-  }
+//  public static void main(String[] args) {
+//    Map<String, Object> keyMap;
+//    try {
+//      keyMap = initKey();
+//      String publicKey = getPublicKey(keyMap);
+//      System.out.println(publicKey);
+//      String privateKey = getPrivateKey(keyMap);
+//      System.out.println(privateKey);
+//    } catch (Exception e) {
+//      e.printStackTrace();
+//    }
+//  }
 
   public static String getPublicKey(Map<String, Object> keyMap) throws Exception {
     Key key = (Key) keyMap.get(PUBLIC_KEY);
diff --git a/backend/src/main/java/com/supwisdom/dlpay/util/TOTP.java b/backend/src/main/java/com/supwisdom/dlpay/util/TOTP.java
index bcab4d3..ea4bbcc 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/util/TOTP.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/util/TOTP.java
@@ -182,20 +182,20 @@
 		return result;
 	}
 
-	public static void main(String[] args) {
-		long X = 30;
-		long T0 = 0;
-		String steps = "0";
-		long time = System.currentTimeMillis() / 1000;
-		System.out.println(time);
-		long T = (time - T0) / X;
-		steps = Long.toHexString(T).toUpperCase();
-		while (steps.length() < 16) {
-			steps = "0" + steps;
-		}
-		String seed = "9e8bb3d2df73741c041aef39e37ee015fc98233720a1350fcd67d5c3027896ac";
-		String totp = TOTP.generateTOTP(seed, steps, "8", "HmacSHA256");
-		System.out.println(totp);
+//	public static void main(String[] args) {
+//		long X = 30;
+//		long T0 = 0;
+//		String steps = "0";
+//		long time = System.currentTimeMillis() / 1000;
+//		System.out.println(time);
+//		long T = (time - T0) / X;
+//		steps = Long.toHexString(T).toUpperCase();
+//		while (steps.length() < 16) {
+//			steps = "0" + steps;
+//		}
+//		String seed = "9e8bb3d2df73741c041aef39e37ee015fc98233720a1350fcd67d5c3027896ac";
+//		String totp = TOTP.generateTOTP(seed, steps, "8", "HmacSHA256");
+//		System.out.println(totp);
 
 		/*
 
@@ -260,5 +260,5 @@
 		}
 
 		*/
-	}
+//	}
 }
\ No newline at end of file
diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties
index ffe72fb..d757f8f 100644
--- a/backend/src/main/resources/application.properties
+++ b/backend/src/main/resources/application.properties
@@ -7,7 +7,6 @@
 spring.jpa.show-sql=true
 spring.datasource.hikari.connection-timeout=60000
 spring.datasource.hikari.maximum-pool-size=5
-spring.jpa.hibernate.ddl-auto=update
 # logging
 logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
 logging.level.org.hibernate.SQL=debug
@@ -15,10 +14,9 @@
 #spring.mvc.view.prefix=/pages/
 #spring.mvc.view.suffix=.jsp
 server.servlet.context-path=/portal
-server.port=8089
 #################### thymeleaf ####################
-spring.mvc.static-path-pattern=/static/**
-spring.thymeleaf.prefix=classpath:/templates/
+spring.mvc.static-path-pattern=/pages/**
+spring.resources.static-locations=file:/opt/portal/dist/
 spring.thymeleaf.suffix=.html
 spring.thymeleaf.encoding=UTF-8
 spring.thymeleaf.mode=HTML5
@@ -31,7 +29,6 @@
 server.tomcat.uri-encoding=UTF-8
 ##################################################
 ## quartz task scheduler
-shopbalance.updater.cron=*/10 * * * * ?
 dayend.settletask.cron=0 3/30 2-3 * * ?
 query.third.transdtl.result.cron=7 0/1 * * * ?
 payapi.sourcetype.checker.scheduler=7 3/10 * * * ?
@@ -41,5 +38,4 @@
 # user password
 auth.password.bcrypt.length=10
 ###################################################
-spring.redis.database=0
 multi-tenant.datasource.base-package=com.supwisdom.dlpay
\ No newline at end of file