| | |
| | | package com.sandu.ximon.admin.context; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import lombok.experimental.UtilityClass; |
| | | |
| | | /** |
| | | * 多租户Holder |
| | | * 管理员访问客户Holder |
| | | * |
| | | * @author pangu |
| | | * @since 2020-9-8 |
| | | * @author chenjiantian |
| | | */ |
| | | @UtilityClass |
| | | public class CustomerInspectContextHolder { |
| | | |
| | | /** |
| | | * 支持父子线程之间的数据传递 |
| | | */ |
| | | private final ThreadLocal<String> THREAD_LOCAL_TENANT = new ThreadLocal<>(); |
| | | |
| | | /** |
| | | * TTL 设置租户ID<br/> |
| | | * <b>谨慎使用此方法,避免嵌套调用。尽量使用 {@code TenantBroker} </b> |
| | | * |
| | | * @param tenantId 租户ID |
| | | */ |
| | | public void setTenantId(String tenantId) { |
| | | THREAD_LOCAL_TENANT.set(tenantId); |
| | | } |
| | | |
| | | /** |
| | | * 获取TTL中的租户ID |
| | | * |
| | | * @return String |
| | | */ |
| | | public String getTenantId() { |
| | | return THREAD_LOCAL_TENANT.get(); |
| | | } |
| | | |
| | | /** |
| | | * 清除tenantId |
| | | */ |
| | | public void clear() { |
| | | THREAD_LOCAL_TENANT.remove(); |
| | | } |
| | | // * 支持父子线程之间的数据传递 |
| | | // */ |
| | | // private final ThreadLocal<String> THREAD_LOCAL_TENANT = new ThreadLocal<>(); |
| | | // |
| | | // /** |
| | | // * TTL 设置客户ID<br/> |
| | | // * |
| | | // */ |
| | | // public void setCustomerId(String tenantId) { |
| | | // THREAD_LOCAL_TENANT.set(tenantId); |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取TTL中的客户ID |
| | | // * |
| | | // * @return String |
| | | // */ |
| | | // public Long getCustomerId() { |
| | | // String s = THREAD_LOCAL_TENANT.get(); |
| | | // if(StrUtil.isNotBlank(s)){ |
| | | // return Long.parseLong(s); |
| | | // } |
| | | // return null; |
| | | // } |
| | | // |
| | | // /** |
| | | // * 清除Id |
| | | // */ |
| | | // public void clear() { |
| | | // THREAD_LOCAL_TENANT.remove(); |
| | | // } |
| | | } |