整合代码
diff --git a/config/application-devel-oracle.properties b/config/application-devel-oracle.properties
index 50ff598..1357d12 100644
--- a/config/application-devel-oracle.properties
+++ b/config/application-devel-oracle.properties
@@ -4,6 +4,7 @@
 spring.jpa.hibernate.ddl-auto=update
 
 # Oracle settings
+spring.datasource.platform=oracle
 spring.datasource.url=jdbc:oracle:thin:@172.28.201.101:47922:orcl
 spring.datasource.username=dlpay
 spring.datasource.password=kingstar
diff --git a/config/application-devel-pg-local.properties b/config/application-devel-pg-local.properties
index ad1ccb2..b6561aa 100644
--- a/config/application-devel-pg-local.properties
+++ b/config/application-devel-pg-local.properties
@@ -4,6 +4,7 @@
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
 spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
 # Postgresql settings
+spring.datasource.platform=postgresql
 spring.datasource.url=jdbc:postgresql://localhost:5432/payapi
 spring.datasource.username=payapi
 spring.datasource.password=123456
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index d21bd66..594779e 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -3,8 +3,8 @@
 spring.jpa.hibernate.ddl-auto=update
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
 spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
-database.dbtype=postgresql
 # Postgresql settings
+spring.datasource.platform=postgresql
 spring.datasource.url=jdbc:postgresql://172.28.201.70:15432/payapi
 spring.datasource.username=payapi
 spring.datasource.password=123456
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java b/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java
index 16f454a..99bb014 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java
@@ -5,14 +5,10 @@
 
 @Configuration
 public class DatabaseConfig {
-  @Value("${database.dbtype:oracle}")
-  private String dbType;
+  @Value("${spring.datasource.platform}")
+  private String platform;
 
-  public String getDbType() {
-    return dbType;
-  }
-
-  public void setDbType(String dbType) {
-    this.dbType = dbType;
+  public String getPlatform() {
+    return platform;
   }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
index 07d5e63..53ebf4c 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
@@ -13,6 +13,7 @@
 import com.supwisdom.dlpay.framework.util.StringUtil;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
@@ -74,7 +75,7 @@
 
   @Override
   public SystemDateTime getSysdatetime() {
-    switch (databaseConfig.getDbType()) {
+    switch (databaseConfig.getPlatform()) {
       case "postgresql":
         return getPGDatetime();
       default:
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
index a17a6ee..ee65ddb 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
@@ -1,13 +1,13 @@
 package com.supwisdom.dlpay.framework.util;
 
 import org.apache.log4j.Logger;
-import org.springframework.util.Assert;
 
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.TimeZone;
 
 public class DateUtil {
   private static final Logger logger = Logger.getLogger(DateUtil.class);
@@ -96,8 +96,8 @@
    * Description: 比较两个时间字符串的前后关系 @param firstTime String 格式:yyyyMMddHHmmss
    *
    * @param secondTime String 格式: yyyyMMddHHmmss @return int |
-   * firstTime=second int=0 | firstTime>secondTime int>0 |
-   * firstTime<secondTime int<0 @exception Modify History:
+   *                   firstTime=second int=0 | firstTime>secondTime int>0 |
+   *                   firstTime<secondTime int<0 @exception Modify History:
    */
   public static int compareDatetime(String firstTime, String secondTime) {
     try {
@@ -111,9 +111,10 @@
 
   /**
    * Description: 比较两个时间字符串的前后关系 @param firstTime String 格式:pattern
+   *
    * @param secondTime String 格式: yyyyMMddHHmmss @return int |
-   * firstTime=second int=0 | firstTime>secondTime int>0 |
-   * firstTime<secondTime int<0 @exception Modify History:
+   *                   firstTime=second int=0 | firstTime>secondTime int>0 |
+   *                   firstTime<secondTime int<0 @exception Modify History:
    */
   public static int compareDatetime(String firstTime, String secondTime, String pattern) {
     try {
@@ -130,8 +131,8 @@
    * Description: 比较两个时间字符串的时间差 @param firstTime String 格式:yyyyMMddHHmmss
    *
    * @param secondTime String 格式: yyyyMMddHHmmss @param second int 格式 @return
-   * int | firstTime+seconds=secondTime int=0 | firstTime+seconds>secondTime
-   * int>0 | firstTime+seconds<secondTime int<0 @exception Modify History:
+   *                   int | firstTime+seconds=secondTime int=0 | firstTime+seconds>secondTime
+   *                   int>0 | firstTime+seconds<secondTime int<0 @exception Modify History:
    */
   public static int compareDatetime(String firstTime, String secondTime, int seconds) {
     try {
@@ -179,7 +180,7 @@
 
   /**
    * 获得两个字符串日期之间的时间差(单位毫秒)
-   * */
+   */
   public static long getIntervalTime(String startTime, String endTime, String pattern) {
     long duration = 0;
     try {
@@ -196,17 +197,17 @@
    * 短格式:20140401 -> 2014-04-01
    * 中格式:201404011200 -> 2014-04-01 12:00
    * 长格式:20140401123025 -> 2014-04-01 12:30:25
-   * **/
-  public static String parseToDateFormat(String str){
-    switch(str.length()){
+   **/
+  public static String parseToDateFormat(String str) {
+    switch (str.length()) {
       case 8:
-        str = str.substring(0, 4)+"-"+str.substring(4, 6)+"-"+str.substring(6, 8);
+        str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8);
         break;
       case 12:
-        str = str.substring(0, 4)+"-"+str.substring(4, 6)+"-"+str.substring(6, 8)+" "+str.substring(8, 10)+":"+str.substring(10, 12);
+        str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + ":" + str.substring(10, 12);
         break;
       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);
+        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);
         break;
       default:
         break;
@@ -219,14 +220,14 @@
    * 短格式:2014-04-01 -> 20140401
    * 中格式:2014-04-01 12:00 -> 201404011200
    * 长格式:2014-04-01 12:30:25 -> 20140401123025
-   * **/
-  public static String unParseToDateFormat(String str){
+   **/
+  public static String unParseToDateFormat(String str) {
     return str.replaceAll("-", "").replaceAll(" ", "").replaceAll(":", "");
   }
 
   /**
    * 检验时间格式
-   * */
+   */
   public static boolean checkDatetimeValid(String datetime, String pattern) {
     if (null == datetime) return false;
     try {
@@ -241,8 +242,8 @@
   /**
    * 获取指定日期是星期几 格式 yyyyMMdd
    * MON|TUE|WED|THU|FRI|SAT|SUN
-   * 	1		2		3		4		5		6		7
-   * */
+   * 1		2		3		4		5		6		7
+   */
   public static int getWeekday(String datestr) {
     try {
       Calendar calendar = Calendar.getInstance();
@@ -275,13 +276,13 @@
     }
   }
 
-  public static Integer getLastDayOfMonth(Integer year,Integer month){
+  public static Integer getLastDayOfMonth(Integer year, Integer month) {
     Calendar cal = Calendar.getInstance();
     cal.set(Calendar.YEAR, year);
-    cal.set(Calendar.MONTH, month-1);
-    cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DATE));
-    String str = new SimpleDateFormat( "yyyyMMdd ").format(cal.getTime()).toString();
-    Integer result = Integer.parseInt(str.substring(0,4) + str.substring(4,6) + str.substring(6,8));
+    cal.set(Calendar.MONTH, month - 1);
+    cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE));
+    String str = new SimpleDateFormat("yyyyMMdd ").format(cal.getTime()).toString();
+    Integer result = Integer.parseInt(str.substring(0, 4) + str.substring(4, 6) + str.substring(6, 8));
     return result;
   }
 
@@ -305,4 +306,15 @@
   }
 
 
+  public static String getUTCTime(Long timeInMillisSecond) {
+    Calendar time = Calendar.getInstance();
+    SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
+    fmt.setTimeZone(TimeZone.getTimeZone("UTC"));
+    time.setTimeInMillis(timeInMillisSecond);
+    return fmt.format(time.getTime());
+  }
+
+  public static String getUTCTime() {
+    return getUTCTime(System.currentTimeMillis());
+  }
 }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
index 2ee98f6..e2ba3ab 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
@@ -4,21 +4,21 @@
 import com.supwisdom.dlpay.framework.core.JwtConfig
 import com.supwisdom.dlpay.framework.core.JwtTokenUtil
 import com.supwisdom.dlpay.framework.dao.ApiClientDao
-import com.supwisdom.dlpay.framework.security.validate.ImageCodeUtil
-import com.supwisdom.dlpay.framework.security.validate.VerifyCode
 import com.supwisdom.dlpay.framework.domain.ApiClientRedis
 import com.supwisdom.dlpay.framework.domain.JwtRedis
 import com.supwisdom.dlpay.framework.domain.TOperator
 import com.supwisdom.dlpay.framework.redisrepo.ApiClientRepository
 import com.supwisdom.dlpay.framework.redisrepo.ApiJwtRepository
+import com.supwisdom.dlpay.framework.security.validate.ImageCodeUtil
+import com.supwisdom.dlpay.framework.security.validate.VerifyCode
 import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.framework.util.DateUtil
 import com.supwisdom.dlpay.framework.util.HmacUtil
 import com.supwisdom.dlpay.framework.util.TradeDict
 import com.supwisdom.dlpay.system.service.CommonService
 import com.supwisdom.dlpay.system.service.FunctionService
 import mu.KotlinLogging
 import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.http.HttpRequest
 import org.springframework.http.HttpStatus
 import org.springframework.http.ResponseEntity
 import org.springframework.security.core.annotation.AuthenticationPrincipal
@@ -28,9 +28,11 @@
 import org.springframework.social.connect.web.HttpSessionSessionStrategy
 import org.springframework.stereotype.Controller
 import org.springframework.ui.Model
-import org.springframework.web.bind.annotation.*
+import org.springframework.web.bind.annotation.GetMapping
+import org.springframework.web.bind.annotation.PathVariable
+import org.springframework.web.bind.annotation.RequestMapping
+import org.springframework.web.bind.annotation.RestController
 import org.springframework.web.context.request.ServletWebRequest
-import java.text.SimpleDateFormat
 import java.util.*
 import javax.imageio.ImageIO
 import javax.servlet.http.HttpServletRequest
@@ -112,14 +114,11 @@
                 }.apply {
                     apiJwtRepository.save(this)
                 }
-                val exp = Calendar.getInstance()
-                val fmt = SimpleDateFormat("yyyy-MM-dd HH:mm:ss z")
-                fmt.timeZone = TimeZone.getTimeZone("UTC")
-                exp.timeInMillis = token.expiration.valueInMillis
+
                 ResponseEntity.ok(ResponseBodyBuilder.create()
                         .data("jwt", token.jwtToken)
                         .data("appid", appid)
-                        .data("expiredAt", fmt.format(exp.time))
+                        .data("expiredAt", DateUtil.getUTCTime(token.expiration.valueInMillis))
                         .success())
             } else {
                 ResponseEntity.status(HttpStatus.UNAUTHORIZED).build()
@@ -150,14 +149,11 @@
                 }.apply {
                     apiJwtRepository.save(this)
                 }
-                val exp = Calendar.getInstance()
-                val fmt = SimpleDateFormat("yyyy-MM-dd HH:mm:ss z")
-                fmt.timeZone = TimeZone.getTimeZone("UTC")
-                exp.timeInMillis = token.expiration.valueInMillis
+
                 ResponseEntity.ok(ResponseBodyBuilder.create()
                         .data("jwt", token.jwtToken)
                         .data("appid", appid)
-                        .data("expiredAt", fmt.format(exp.time))
+                        .data("expiredAt", DateUtil.getUTCTime(token.expiration.valueInMillis))
                         .success())
             } else {
                 ResponseEntity.status(HttpStatus.UNAUTHORIZED).build()
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index b54e727..41f5532 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -3,6 +3,8 @@
 spring.jpa.show-sql=true
 spring.datasource.hikari.connection-timeout=60000
 spring.datasource.hikari.maximum-pool-size=5
+spring.datasource.initialization-mode=always
+spring.datasource.continue-on-error=true
 spring.jpa.hibernate.ddl-auto=update
 # logging
 logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
diff --git a/sql/init_test.sql b/src/main/resources/data.sql
similarity index 98%
rename from sql/init_test.sql
rename to src/main/resources/data.sql
index ebdfa8e..0b14207 100644
--- a/sql/init_test.sql
+++ b/src/main/resources/data.sql
@@ -19,6 +19,4 @@
 values ('2','1','管理员维护',1,'#','layui-icon-set',1);
 
 Insert into TB_ROLE_FUNCTION (ID,FUNCTION_ID,ROLE_ID) values ('1','1','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-Insert into TB_ROLE_FUNCTION (ID,FUNCTION_ID,ROLE_ID) values ('2','2','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-
-commit;
\ No newline at end of file
+Insert into TB_ROLE_FUNCTION (ID,FUNCTION_ID,ROLE_ID) values ('2','2','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
\ No newline at end of file