调试多租户参数
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
index b4f5da3..f48391e 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/SysparaDao.java
@@ -19,6 +19,4 @@
   @QueryHints({@QueryHint(name = "javax.persistence.lock.timeout", value ="0")})
   @Query(value = "from TSyspara where paraid=?1 ")
   TSyspara findByParaidWithLockNowait(int paraid);
-
-
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantCatalogDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantCatalogDao.java
deleted file mode 100644
index ce9fe0e..0000000
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantCatalogDao.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TTenantCatalog;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface TenantCatalogDao extends JpaRepository<TTenantCatalog, Integer> {
-  TTenantCatalog findTTenantCatalogByTenantid(String tenant);
-}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantUserDBDao.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantUserDBDao.java
new file mode 100644
index 0000000..f51aae5
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/dao/TenantUserDBDao.java
@@ -0,0 +1,10 @@
+package com.supwisdom.dlpay.framework.dao;
+
+import com.supwisdom.dlpay.framework.domain.TTenantUserDB;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface TenantUserDBDao extends JpaRepository<TTenantUserDB, String> {
+  TTenantUserDB findTTenantUserDBById(String id);
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantCatalog.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantCatalog.java
deleted file mode 100644
index c893617..0000000
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantCatalog.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.supwisdom.dlpay.framework.domain;
-
-import javax.persistence.*;
-import javax.validation.constraints.NotNull;
-import java.sql.Timestamp;
-
-@Entity
-@Table(name = "tb_tenant_catalog", schema = "public")
-@SequenceGenerator(name = "tenant_catalog_seq")
-public class TTenantCatalog {
-  @Id
-  @Column(name = "id")
-  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tenant_catalog_seq")
-  private Integer id;
-
-  @Column(name = "tenantid", length = 32)
-  @NotNull
-  private String tenantid;
-
-  @Column(name = "datecenter", length = 10)
-  @NotNull
-  private String dataCenter;
-
-  @Column(name = "expire_date")
-  @NotNull
-  private Timestamp expireDate;
-
-  @Column(name = "enabled")
-  @NotNull
-  private Boolean enabled;
-
-  public Integer getId() {
-    return id;
-  }
-
-  public void setId(Integer id) {
-    this.id = id;
-  }
-
-  public String getTenantid() {
-    return tenantid;
-  }
-
-  public void setTenantid(String tenantid) {
-    this.tenantid = tenantid;
-  }
-
-  public String getDataCenter() {
-    return dataCenter;
-  }
-
-  public void setDataCenter(String dataCenter) {
-    this.dataCenter = dataCenter;
-  }
-
-  public Timestamp getExpireDate() {
-    return expireDate;
-  }
-
-  public void setExpireDate(Timestamp expireDate) {
-    this.expireDate = expireDate;
-  }
-
-  public Boolean getEnabled() {
-    return enabled;
-  }
-
-  public void setEnabled(Boolean enabled) {
-    this.enabled = enabled;
-  }
-}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantUserDB.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantUserDB.java
new file mode 100644
index 0000000..7df05a7
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TTenantUserDB.java
@@ -0,0 +1,101 @@
+package com.supwisdom.dlpay.framework.domain;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+
+@Entity
+@Table(name = "t_tenant_user_db", schema = "public",
+    indexes = {@Index(name = "tenant_db_dbid_idx", columnList = "dbid"),
+        @Index(name = "tenant_db_schema_idx", columnList = "schema"),
+        @Index(name = "tenant_db_idx2", columnList = "dbid, schema", unique = true)})
+public class TTenantUserDB {
+  @Id
+  @Column(name = "id", length = 32)
+  private String id;
+
+  @Column(name = "dbid")
+  private Integer dbid;
+
+  @Column(name = "dbstatus", length = 4)
+  private String dbStatus;
+
+  @Column(name = "dbversion", length = 20)
+  private String dbVersion;
+
+  @Column(name = "dbupdateversion", length = 20)
+  private String dbUpdateVersion;
+
+  @Column(name = "dbcreatetime", length = 20)
+  private String dbCreateTime;
+
+  @Column(name = "dbupdatetime", length = 20)
+  private String dbUpdateTime;
+
+  @Column(name = "schema", length = 32)
+  @NotNull
+  private String schema;
+
+  public String getId() {
+    return id;
+  }
+
+  public void setId(String id) {
+    this.id = id;
+  }
+
+  public Integer getDbid() {
+    return dbid;
+  }
+
+  public void setDbid(Integer dbid) {
+    this.dbid = dbid;
+  }
+
+  public String getDbStatus() {
+    return dbStatus;
+  }
+
+  public void setDbStatus(String dbStatus) {
+    this.dbStatus = dbStatus;
+  }
+
+  public String getDbVersion() {
+    return dbVersion;
+  }
+
+  public void setDbVersion(String dbVersion) {
+    this.dbVersion = dbVersion;
+  }
+
+  public String getDbUpdateVersion() {
+    return dbUpdateVersion;
+  }
+
+  public void setDbUpdateVersion(String dbUpdateVersion) {
+    this.dbUpdateVersion = dbUpdateVersion;
+  }
+
+  public String getDbCreateTime() {
+    return dbCreateTime;
+  }
+
+  public void setDbCreateTime(String dbCreateTime) {
+    this.dbCreateTime = dbCreateTime;
+  }
+
+  public String getDbUpdateTime() {
+    return dbUpdateTime;
+  }
+
+  public void setDbUpdateTime(String dbUpdateTime) {
+    this.dbUpdateTime = dbUpdateTime;
+  }
+
+  public String getSchema() {
+    return schema;
+  }
+
+  public void setSchema(String schema) {
+    this.schema = schema;
+  }
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/service/TenantService.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/TenantService.java
new file mode 100644
index 0000000..7b10af0
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/TenantService.java
@@ -0,0 +1,8 @@
+package com.supwisdom.dlpay.framework.service;
+
+
+import com.supwisdom.dlpay.framework.domain.TTenantUserDB;
+
+public interface TenantService {
+  TTenantUserDB findByTenantId(String tenantId);
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/TenantServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/TenantServiceImpl.java
new file mode 100644
index 0000000..aa7be5c
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/service/impl/TenantServiceImpl.java
@@ -0,0 +1,22 @@
+package com.supwisdom.dlpay.framework.service.impl;
+
+import com.supwisdom.dlpay.framework.dao.TenantUserDBDao;
+import com.supwisdom.dlpay.framework.domain.TTenantUserDB;
+import com.supwisdom.dlpay.framework.service.TenantService;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TenantServiceImpl implements TenantService {
+  private final TenantUserDBDao tenantUserDBDao;
+
+  public TenantServiceImpl(TenantUserDBDao tenantUserDBDao) {
+    this.tenantUserDBDao = tenantUserDBDao;
+  }
+
+  @Override
+  @Cacheable(cacheNames = "tenantCache", key = "#tenantId")
+  public TTenantUserDB findByTenantId(String tenantId) {
+    return tenantUserDBDao.findTTenantUserDBById(tenantId);
+  }
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantCacheKeyGen.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantCacheKeyGen.java
index fa72e3e..6affdb4 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantCacheKeyGen.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/tenant/TenantCacheKeyGen.java
@@ -3,6 +3,7 @@
 
 import com.supwisdom.multitenant.TenantContextHolder;
 import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.cache.interceptor.KeyGenerator;
 
 import java.lang.reflect.Method;
@@ -10,8 +11,9 @@
 public class TenantCacheKeyGen implements KeyGenerator {
   private static final char delimiter = ':';
 
+  @NotNull
   @Override
-  public Object generate(Object target, Method method, Object... params) {
+  public Object generate(Object target, @NotNull Method method, @NotNull Object... params) {
     StringBuilder name = new StringBuilder();
     name.append(target.getClass().getSimpleName())
         .append(delimiter);
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
index 746f6b2..a422391 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
@@ -1,6 +1,6 @@
 package com.supwisdom.dlpay
 
-import com.supwisdom.dlpay.framework.dao.TenantCatalogDao
+import com.supwisdom.dlpay.framework.service.TenantService
 import com.supwisdom.dlpay.framework.tenant.TenantCacheKeyGen
 import com.supwisdom.dlpay.framework.util.Constants
 import com.supwisdom.multitenant.TenantDetails
@@ -170,20 +170,20 @@
 @Component
 class MyTenantDetailsProvider : TenantDetailsProvider {
     @Autowired
-    private lateinit var tenantCatalogDao: TenantCatalogDao
+    private lateinit var tenantService: TenantService
 
     private val defaultTenant = TenantDetails().apply {
         id = Constants.DEFAULT_TENANTID
         dbSchema = "public"
-        dataCenter = "defaul"
+        dataCenter = "default"
     }
 
     override fun createDetailsById(id: String?): TenantDetails {
-        return tenantCatalogDao.findTTenantCatalogByTenantid(id)?.let { catalog ->
+        return tenantService.findByTenantId(id)?.let { catalog ->
             TenantDetails().apply {
-                this.id = catalog.tenantid
-                dbSchema = catalog.tenantid
-                dataCenter = catalog.dataCenter
+                this.id = catalog.id
+                dbSchema = catalog.schema
+                dataCenter = "default"
             }
         } ?: return defaultTenant
     }