更新 springboot 版本后,修复 build.gradle 的bug
diff --git a/.gitignore b/.gitignore
index 470effd..ce32388 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,6 +31,8 @@
 /nbdist/
 /.nb-gradle/
 
+log
+
 ### VS Code ###
 .vscode/
 ### Gradle template
diff --git a/build.gradle b/build.gradle
index f950a09..c8474f6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,13 +1,20 @@
+import java.text.SimpleDateFormat
+
 plugins {
     id 'java'
-    id 'org.springframework.boot' version '2.1.6.RELEASE' apply false
+    id 'org.springframework.boot' version '2.2.2.RELEASE'
+    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
     id 'org.jetbrains.kotlin.jvm' version '1.3.31'
-    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31'
+    id 'org.jetbrains.kotlin.plugin.spring' version '1.3.31' apply false
     id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.31' apply false
+    id 'com.gradle.build-scan' version '2.0.2'
     id "com.palantir.git-version" version "0.12.0-rc2"
     id 'com.palantir.docker' version '0.22.1' apply false
 }
 
+bootJar {
+    enabled = false
+}
 
 allprojects {
     repositories {
@@ -18,6 +25,8 @@
         set('junit_jupiter_version', "5.5.2")
         set("junit_platform_version", "1.5.2")
         set("mockitoVersion", "3.1.0")
+        set("dockerRegistry", "harbor.supwisdom.com/dali")
+        set("buildTime", new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date()))
     }
 
     apply plugin: 'java'
@@ -42,6 +51,10 @@
         }
     }
 
+    sourceSets {
+        main.java.srcDirs += "src/main/java"
+    }
+
     version = '1'
     ext {
         details = versionDetails()
@@ -92,6 +105,7 @@
         implementation "org.jetbrains.kotlin:kotlin-reflect"
         implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
 
+        implementation "org.springframework.boot:spring-boot-starter"
         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-validation"
diff --git a/oauth/build.gradle b/oauth/build.gradle
index 2ae2546..1d9dd6c 100644
--- a/oauth/build.gradle
+++ b/oauth/build.gradle
@@ -4,22 +4,20 @@
     id 'org.jetbrains.kotlin.jvm'
     id 'org.jetbrains.kotlin.plugin.jpa'
     id 'org.jetbrains.kotlin.plugin.spring'
-    id "com.palantir.git-version"
 }
 
 apply plugin: 'java'
 apply plugin: 'io.spring.dependency-management'
 
-sourceCompatibility = jdkVersion
 def startClass = 'com.supwisdom.oauth.OAuthApplication'
 
-println("Build version: $gitVersion")
+println("Build version: $buildVersion")
 
 bootJar {
     enabled = true
     mainClassName = startClass
     manifest {
-        attributes('oauth-Version': gitVersion)
+        attributes('oauth-Version': buildVersion)
     }
 }
 
diff --git a/payapi-common/build.gradle b/payapi-common/build.gradle
index 28dc87a..ee97798 100644
--- a/payapi-common/build.gradle
+++ b/payapi-common/build.gradle
@@ -15,7 +15,6 @@
 println("Build Version: $buildVersion")
 bootJar {
     enabled = false
-
 }
 
 apply from: rootProject.file('gradle/swnx-publish.gradle')
diff --git a/payapi/build.gradle b/payapi/build.gradle
index 60c843d..2f1eed1 100644
--- a/payapi/build.gradle
+++ b/payapi/build.gradle
@@ -1,5 +1,3 @@
-import java.text.SimpleDateFormat
-
 plugins {
     id "java"
     id "org.springframework.boot"
@@ -9,16 +7,19 @@
     id "com.palantir.docker"
 }
 
+apply plugin: 'io.spring.dependency-management'
+apply plugin: 'kotlin'
 
 def payapiStartClass = "com.supwisdom.dlpay.PayApiApplicationKt"
 
 println("Build version: $buildVersion")
 
 bootJar {
+    enabled = true
     mainClassName = payapiStartClass
     manifest {
         attributes("Payapi-Version": buildVersion,
-                "Payapi-Buildtime": new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date()))
+                "Payapi-Buildtime": buildTime)
     }
 }
 
@@ -43,10 +44,10 @@
     } else {
         imageVersion = details.lastTag
     }
-    println("Docker image tag : " + imageVersion)
-    name "harbor.supwisdom.com/dali/payapi:" + imageVersion
-    println(jar.archiveFile.get().toString())
-    files jar.archiveFile
+    println("Docker image tag : ${imageVersion}")
+    name "${dockerRegistry}/payapi:${imageVersion}"
+    println(jar.archiveFile.get())
+    files jar.archiveFile.get()
 }
 
 docker.dependsOn(jar)
@@ -65,9 +66,9 @@
     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.kafka:spring-kafka"
     implementation "org.springframework.social:spring-social-web:${springSocialVersion}"
-    implementation "org.springframework.kafka:spring-kafka:${springKafkaVersion}"
+    implementation "org.apache.kafka:kafka-streams"
+    implementation "org.springframework.kafka:spring-kafka"
 
     implementation "org.springframework.cloud:spring-cloud-starter"
     implementation "org.springframework.cloud:spring-cloud-starter-consul-discovery"
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java
index 90a3334..2bab4ef 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java
@@ -10,6 +10,7 @@
 @SequenceGenerator(name = "deposit_capital_type_seq", initialValue = 50)
 public class TDepositCapitalType {
 
+  @Id
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "deposit_capital_type_seq")
   private Integer id;
 
@@ -27,8 +28,8 @@
 
   @OneToOne(targetEntity = TSourceType.class, fetch = LAZY, cascade = CascadeType.ALL)
   @JoinColumns({
-      @JoinColumn(name = "sourcetypecode", referencedColumnName = "SOURCETYPE"),
-      @JoinColumn(name = "tenantid", referencedColumnName = "tenantid")
+      @JoinColumn(name = "sourcetypecode", referencedColumnName = "SOURCETYPE", insertable = false, updatable = false),
+      @JoinColumn(name = "tenantid", referencedColumnName = "tenantid", insertable = false, updatable = false)
   })
   private TSourceType sourceType;
 
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
index 820ba54..1593a8b 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TShopacc.java
@@ -2,8 +2,6 @@
 
 import com.supwisdom.dlpay.framework.util.MoneyUtil;
 import com.supwisdom.dlpay.framework.util.Signature;
-import org.hibernate.annotations.LazyToOne;
-import org.hibernate.annotations.LazyToOneOption;
 
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
@@ -53,8 +51,7 @@
   private String tenantId;
 
   @OneToOne(targetEntity = TShop.class, fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
-  @JoinColumn(name = "shopid", referencedColumnName = "shopid")
-  @LazyToOne(value = LazyToOneOption.NO_PROXY)
+  @JoinColumn(name = "shopid", referencedColumnName = "shopid", insertable = false, updatable = false)
   private TShop shop;
 
   public String getShopaccno() {
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
index d993aea..f16956f 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
@@ -44,7 +44,7 @@
     private lateinit var redis: RedisProperties
 
     @Bean
-    fun redisConnectionFactory(): RedisConnectionFactory {
+    fun redisConnectionFactory(): LettuceConnectionFactory {
         val clientConfig = LettuceClientConfiguration.builder()
                 .readFrom(ReadFrom.SLAVE_PREFERRED)
                 .build()
diff --git a/settings.gradle b/settings.gradle
index 35b2274..c670d5a 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,7 @@
-rootProject.name = 'payapi'
-include 'payapi', 'payapi-sdk', 'payapi-common', 'ynrcc-agent','oauth'
+rootProject.name = 'payapi-root'
+include 'payapi'
+include 'payapi-sdk'
+include 'payapi-common'
+include 'ynrcc-agent'
+include 'oauth'
 
diff --git a/ynrcc-agent/build.gradle b/ynrcc-agent/build.gradle
index 54fab87..01a06b5 100644
--- a/ynrcc-agent/build.gradle
+++ b/ynrcc-agent/build.gradle
@@ -1,30 +1,37 @@
 plugins {
-    id 'java'
+    id "java"
     id 'org.springframework.boot'
-    id "com.palantir.git-version"
+    id "org.jetbrains.kotlin.jvm"
+    id "org.jetbrains.kotlin.plugin.spring"
     id 'com.palantir.docker'
 }
 
-apply plugin: 'java'
 apply plugin: 'io.spring.dependency-management'
+apply plugin: 'kotlin'
 
-def ynrccVersion = buildVersion
-def details = versionDetails()
+def ynrccStartClass = "com.supwisdom.agent.YnrccAgentApplication"
 
-sourceCompatibility = jdkVersion
-def ynrccStartClass = 'com.supwisdom.agent.YnrccAgentApplication'
-
-println("Build version: $ynrccVersion")
+println("Build version: $buildVersion")
 
 bootJar {
     mainClassName = ynrccStartClass
     manifest {
-        attributes('YnrccAgent-Version': ynrccVersion)
+        attributes('YnrccAgent-Version': buildVersion)
     }
 }
 
-jar {
-    baseName = 'ynrcc-agent'
+compileKotlin {
+    kotlinOptions {
+        freeCompilerArgs = ["-Xjsr305=strict"]
+        jvmTarget = jdkVersion
+    }
+}
+
+compileTestKotlin {
+    kotlinOptions {
+        freeCompilerArgs = ["-Xjsr305=strict"]
+        jvmTarget = jdkVersion
+    }
 }
 
 docker {
@@ -34,10 +41,10 @@
     } else {
         imageVersion = details.lastTag
     }
-    println("Docker image tag : " + imageVersion)
-    name 'harbor.supwisdom.com/dali/ynrcc:' + imageVersion
-    println(jar.archivePath)
-    files jar.archivePath
+    println("Docker image tag : ${imageVersion}")
+    name "${dockerRegistry}/ynrcc:${imageVersion}"
+    println(jar.archiveFile.get())
+    files jar.archiveFile.get()
 }
 
 docker.dependsOn(jar)
@@ -54,5 +61,6 @@
     implementation "commons-beanutils:commons-beanutils:${beanutilsVersion}"
     implementation "commons-net:commons-net:${commonNetVersion}"
 
+    runtime("org.springframework.boot:spring-boot-devtools")
 }
 
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/YnrccAgentApplication.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/YnrccAgentApplication.java
deleted file mode 100644
index 8e1bb6e..0000000
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/YnrccAgentApplication.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.supwisdom.agent;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class YnrccAgentApplication {
-  public static void main(String[] args) {
-    SpringApplication.run(YnrccAgentApplication.class, args);
-  }
-}
diff --git a/ynrcc-agent/src/main/kotlin/com.supwisdom.agent/application.kt b/ynrcc-agent/src/main/kotlin/com.supwisdom.agent/application.kt
new file mode 100644
index 0000000..e9a9f9c
--- /dev/null
+++ b/ynrcc-agent/src/main/kotlin/com.supwisdom.agent/application.kt
@@ -0,0 +1,15 @@
+package com.supwisdom.agent
+
+import org.springframework.boot.SpringApplication
+import org.springframework.boot.autoconfigure.SpringBootApplication
+import org.springframework.boot.web.servlet.ServletComponentScan
+
+@SpringBootApplication
+@ServletComponentScan
+open class YnrccAgentApplication {
+}
+
+
+fun main(args: Array<String>) {
+    SpringApplication.run(YnrccAgentApplication::class.java, *args)
+}
\ No newline at end of file