feat: 优化 gradle 编译
feat: 将 org.apache.log4j 替换为 slf4j
feat: 优化代码去掉warning
diff --git a/build.gradle b/build.gradle
index e60f773..350290f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -30,26 +30,26 @@
     implementation 'org.springframework.boot:spring-boot-starter-security'
     implementation 'org.springframework.security:spring-security-oauth2-client'
     implementation 'org.springframework.security:spring-security-oauth2-jose'
-    implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
     implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
-    implementation 'org.springframework.session:spring-session-data-redis:2.0.10.RELEASE'
+    implementation 'org.springframework.session:spring-session-data-redis'
+    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 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+
     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 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
-    implementation 'org.springframework.social:spring-social-web:1.1.6.RELEASE'
     implementation 'io.github.microutils:kotlin-logging:1.6.26'
+    implementation 'org.slf4j:slf4j-parent:1.7.26'
     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 'org.flywaydb:flyway-core'
-//    implementation group: 'javax.servlet.jsp', name: 'jsp-api', version: '2.1'
-    implementation group: 'log4j', name: 'log4j', version: '1.2.16'
     implementation files('libs/ojdbc6.jar')
 
 
diff --git a/gradle.properties b/gradle.properties
index b59ebef..f72e65c 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
 springbootVersion = 2.1.3.RELEASE
-kotlinVersion = 1.2.41
+kotlinVersion = 1.3.31
 payapiVersion = 1.0
 jdkVersion = 1.8
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java b/src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java
index 313b5aa..46ca41f 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/core/DayendSettleTask.java
@@ -5,7 +5,8 @@
 import com.supwisdom.dlpay.framework.service.DayendSettleService;
 import com.supwisdom.dlpay.framework.service.SystemUtilService;
 import com.supwisdom.dlpay.framework.util.StringUtil;
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class DayendSettleTask {
@@ -16,7 +17,7 @@
 
   private TSettleLog settleLog;
 
-  private static final Logger logger = Logger.getLogger(DayendSettleTask.class);
+  private static final Logger logger = LoggerFactory.getLogger(DayendSettleTask.class);
 
 
   public void doSettleTask() {
@@ -47,7 +48,7 @@
 
       //step2: 对账判断
       long t3 = System.currentTimeMillis();
-      if(!checkChkfiles()){
+      if (!checkChkfiles()) {
         logger.error("对账未完成,退出结算!");
         return;
       }
@@ -76,12 +77,12 @@
     }
   }
 
-  private boolean checkAccounts(){
+  private boolean checkAccounts() {
     //TODO: 账户余额校验,生成账户日结表数据
     return true;
   }
 
-  private boolean checkChkfiles(){
+  private boolean checkChkfiles() {
     //TODO: 结算前是否要求所有对账完成
     return true;
   }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
index cbb0805..59c85cf 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
@@ -2,12 +2,19 @@
 
 import com.supwisdom.dlpay.api.dao.DebitCreditDtlDao;
 import com.supwisdom.dlpay.framework.dao.*;
-import com.supwisdom.dlpay.framework.data.*;
+import com.supwisdom.dlpay.framework.data.FSubjectInfoBean;
+import com.supwisdom.dlpay.framework.data.MerchBean;
+import com.supwisdom.dlpay.framework.data.SubjectInfoBean;
+import com.supwisdom.dlpay.framework.data.VoucherTemp;
 import com.supwisdom.dlpay.framework.domain.*;
 import com.supwisdom.dlpay.framework.service.DayendSettleService;
 import com.supwisdom.dlpay.framework.service.SystemUtilService;
-import com.supwisdom.dlpay.framework.util.*;
-import org.apache.log4j.Logger;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.framework.util.MoneyUtil;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.framework.util.Subject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -48,7 +55,7 @@
   private DebitCreditDtlDao debitCreditDtlDao;
 
 
-  private static final Logger logger = Logger.getLogger(DayendSettleServiceImpl.class);
+  private static final Logger logger = LoggerFactory.getLogger(DayendSettleServiceImpl.class);
 
   private int hostdate;
   private int periodYear; // 记账年份
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 80fad1f..eee9e5a 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
@@ -8,9 +8,9 @@
 import com.supwisdom.dlpay.framework.util.DateUtil;
 import com.supwisdom.dlpay.framework.util.NumberUtil;
 import com.supwisdom.dlpay.framework.util.StringUtil;
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
@@ -32,7 +32,7 @@
   @Autowired
   private BusinessparaDao businessparaDao;
 
-  private static final Logger logger = Logger.getLogger(SystemUtilServiceImpl.class);
+  private static final Logger logger = LoggerFactory.getLogger(SystemUtilServiceImpl.class);
 
   public static class SystemDateTimeImpl implements SystemDateTime {
     private Date now;
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/APIRequestParam.java b/src/main/java/com/supwisdom/dlpay/framework/util/APIRequestParam.java
index 78ea9d4..402a9b4 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/APIRequestParam.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/APIRequestParam.java
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay.framework.util;
 
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.beans.Introspector;
 import java.lang.reflect.Field;
@@ -16,7 +17,7 @@
   @Sign
   private String version;
 
-  private static final Logger logger = Logger.getLogger(APIRequestParam.class);
+  private static final Logger logger = LoggerFactory.getLogger(APIRequestParam.class);
 
   public String getSign() {
     return sign;
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 a6b733e..3a7e013 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
@@ -1,8 +1,8 @@
 package com.supwisdom.dlpay.framework.util;
 
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
@@ -10,7 +10,7 @@
 import java.util.TimeZone;
 
 public class DateUtil {
-  private static final Logger logger = Logger.getLogger(DateUtil.class);
+  private static final Logger logger = LoggerFactory.getLogger(DateUtil.class);
   public static final String DATE_FMT = "yyyyMMdd";
   public static final String TIME_FMT = "HHmmss";
   public static final String DATETIME_FMT = "yyyyMMddHHmmss";
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/comsume_builder.kt b/src/main/kotlin/com/supwisdom/dlpay/api/comsume_builder.kt
index ff29e99..0304141 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/comsume_builder.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/comsume_builder.kt
@@ -177,6 +177,7 @@
         this.extendMap.plus(param)
         return this
     }
+
     fun addResult(key: String, value: String): PersonTransBuilder {
         this.resultMap.plus(mapOf(key to value))
         return this
@@ -248,7 +249,9 @@
                     it.accno to it.subjno
                 }
                 AccountHolder.IDTYPE_SHOP -> holder.withLock<TShopacc>().let {
-                    if(null==this.shopaccno) this.shopaccno=it.shopaccno
+                    if (this.shopaccno.isEmpty()) {
+                        this.shopaccno = it.shopaccno
+                    }
                     it.shopaccno to it.subjno
                 }
                 AccountHolder.IDTYPE_SUBJECT -> holder.withLock<TSubject>().let {
@@ -262,7 +265,9 @@
                     it.accno to it.subjno
                 }
                 AccountHolder.IDTYPE_SHOP -> holder.get<TShopacc>().let {
-                    if(null==this.shopaccno) this.shopaccno=it.shopaccno
+                    if (this.shopaccno.isEmpty()) {
+                        this.shopaccno = it.shopaccno
+                    }
                     it.shopaccno to it.subjno
                 }
                 AccountHolder.IDTYPE_SUBJECT -> holder.get<TSubject>().let {
@@ -278,14 +283,14 @@
         debit.builder = this
         credit.builder = this
 
-        var debitAccNo = ""
-        var debitSubjNo = ""
+        var debitAccNo: String
+        var debitSubjNo: String
         getAccountAndSubjNo(debit).apply {
             debitAccNo = first
             debitSubjNo = second
         }
-        var creditAccNo = ""
-        var creditSubjNo = ""
+        var creditAccNo: String
+        var creditSubjNo: String
         getAccountAndSubjNo(credit).apply {
             creditAccNo = first
             creditSubjNo = second
@@ -340,27 +345,27 @@
         return service.process(this)
     }
 
-    fun init(service: PersonBalancePayService) : TUserdtl{
+    fun init(service: PersonBalancePayService): TUserdtl {
         prepareData()
         preCheckAccount()
         return service.init(this)
     }
 
     fun wip(service: PersonBalancePayService): TUserdtl {
-        if (null == this.refno)
+        if (this.refno.isEmpty())
             throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR, "交易参考号<refno>未指定")
         return service.wip(this)
     }
 
     fun finish(service: PersonBalancePayService, status: String): TUserdtl {
-        if (null == this.refno)
+        if (this.refno.isEmpty())
             throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR, "交易参考号<refno>未指定")
         this.status = status
         return service.finish(this)
     }
 
-    fun success(service: PersonBalancePayService): TUserdtl{
-        if (null == this.refno)
+    fun success(service: PersonBalancePayService): TUserdtl {
+        if (this.refno.isEmpty())
             throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR, "交易参考号<refno>未指定")
         this.status = TradeDict.DTL_STATUS_SUCCESS
         return service.finish(this)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
index 066e43c..d8390bc 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
@@ -259,7 +259,7 @@
                         .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误"))
             }
 
-            val person = param.uid?.let { userService.findByThirdUniqueIdenty(it) } ?: null //没注册,可能匿名?
+            val person = param.uid?.let { userService.findByThirdUniqueIdenty(it) } //没注册,可能匿名?
             if (consumePayService.checkShopPaytype(param.shopaccno, TradeDict.PAYTYPE_YKT_CARD, person==null)) {
                 val dtl = PersonTransBuilder.newBuilder(accountUtilServcie)
                         .chooseTradetype(Tradetype.CONSUME) //消费
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt
index cc262cb..f099608 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_api_controller.kt
@@ -35,7 +35,7 @@
     @Autowired
     lateinit var accountUtilServcie: AccountUtilServcie
 
-    @RequestMapping(value = "/wechat")
+    @RequestMapping(value = ["/wechat"])
     @ResponseBody
     fun index(@PathVariable schema: String, request: HttpServletRequest,
               response: HttpServletResponse): String {
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt
index 5f92a0c..f6cd045 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt
@@ -35,10 +35,10 @@
                         .fail(TradeErrorCode.BUSINESS_SHOP_EXISTS, "该商户唯一号[${param.shopUniqueId}]已经存在"))
             }
 
-            param.shopname = param.shopname?.let { URLDecoder.decode(param.shopname, Charsets.UTF_8.toString()) } //解码
+            param.shopname = param.shopname.let { URLDecoder.decode(param.shopname, Charsets.UTF_8.toString()) } //解码
             param.contactman = param.contactman?.let { URLDecoder.decode(param.contactman, Charsets.UTF_8.toString()) } //解码
             param.address = param.address?.let { URLDecoder.decode(param.address, Charsets.UTF_8.toString()) } //解码
-            shopService.registerShop(param)?.let {
+            shopService.registerShop(param).let {
                 ResponseEntity.ok(ResponseBodyBuilder.create()
                         .data("shopid", it.shopid)
                         .data("shopaccno", it.shopaccno ?: "")
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
index 0293457..58f6bf3 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
@@ -5,14 +5,14 @@
 import com.supwisdom.dlpay.exception.TransactionCheckException
 import com.supwisdom.dlpay.exception.TransactionException
 import com.supwisdom.dlpay.framework.util.TradeErrorCode
-import org.apache.log4j.Logger
+import mu.KotlinLogging
 
 
 class ResponseBodyBuilder private constructor() {
     companion object {
         private const val INVALIDE_RETCODE = -0x7FFFFFFF
         private val RESERVED_KEY = setOf("retcode", "retmsg", "exception")
-        private val LOGGER = Logger.getLogger(ResponseBodyBuilder::class.java)
+        private val LOGGER = KotlinLogging.logger {}
         fun create() = ResponseBodyBuilder()
     }
 
diff --git a/src/main/kotlin/com/supwisdom/dlpay/migration.kt b/src/main/kotlin/com/supwisdom/dlpay/migration.kt
index 5495bca..c9fe298 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/migration.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/migration.kt
@@ -15,7 +15,7 @@
      */
     @Bean
     fun flywayInitializer(flyway: Flyway): FlywayMigrationInitializer {
-        return FlywayMigrationInitializer(flyway) { f -> }
+        return FlywayMigrationInitializer(flyway) { }
     }