From: Tang Cheng Date: Wed, 25 Dec 2019 01:29:57 +0000 (+0800) Subject: 调试多租户参数 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=0d72e630a085b57a57371d1a0e550e811c46e369;p=epayment%2Ffood_payapi.git 调试多租户参数 --- 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 b4f5da32..f48391ee 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 @@ public interface SysparaDao extends JpaRepository, JpaSpecifi @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 ce9fe0e6..00000000 --- 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 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 00000000..f51aae5e --- /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 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 c893617b..00000000 --- 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 00000000..7df05a7f --- /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 00000000..7b10af00 --- /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 00000000..aa7be5c6 --- /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 fa72e3ee..6affdb45 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 @@ package com.supwisdom.dlpay.framework.tenant; 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 @@ import java.lang.reflect.Method; 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 746f6b21..a4223911 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 @@ class TenantConfigListener { @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 }