TenantHolder.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package jnpf.util;
  2. import jnpf.model.tenant.TenantVO;
  3. /**
  4. * 租户线程缓存工具类
  5. * @author JNPF开发平台组
  6. * @user N
  7. * @copyright 引迈信息技术有限公司
  8. * @date 2023/12/01 16:16
  9. */
  10. public class TenantHolder {
  11. private TenantHolder() {
  12. }
  13. private static final ThreadLocal<TenantVO> TENANT_CACHE = new ThreadLocal<>();
  14. public static void setLocalTenantCache(TenantVO tenantInfo){
  15. TENANT_CACHE.set(tenantInfo);
  16. }
  17. public static TenantVO getLocalTenantCache(){
  18. return TENANT_CACHE.get();
  19. }
  20. public static void clearLocalTenantCache(){
  21. TENANT_CACHE.remove();
  22. }
  23. public static String getDatasourceId() {
  24. return getLocalTenantCache() == null ? null: getLocalTenantCache().getEnCode();
  25. }
  26. /**
  27. * 取得当前数据源名称
  28. */
  29. public static String getDatasourceName() {
  30. return getLocalTenantCache() == null ? null: getLocalTenantCache().getDbName();
  31. }
  32. public static boolean isSchema(){
  33. return getLocalTenantCache() != null && getLocalTenantCache().isSchema();
  34. }
  35. public static boolean isColumn(){
  36. return getLocalTenantCache() != null && getLocalTenantCache().isColumn();
  37. }
  38. public static boolean isRemote(){
  39. return getLocalTenantCache() != null && getLocalTenantCache().isRemote();
  40. }
  41. }