fix 添加租户
parent
ec7e0f5c21
commit
050d4c6c2e
|
@ -49,6 +49,9 @@ public class TenantFilterAspect {
|
|||
|
||||
@AfterReturning(pointcut = "openSession()", returning = "session")
|
||||
public void afterOpenSession(Object session) {
|
||||
if(TenantHelper.isIgnore()){
|
||||
return;
|
||||
}
|
||||
if (session instanceof Session) {
|
||||
Long tenantId = LoginHelper.getTenantId();
|
||||
Long dynamic = TenantHelper.getDynamic();
|
||||
|
|
|
@ -37,6 +37,7 @@ import lombok.NoArgsConstructor;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* 租户助手
|
||||
|
@ -51,6 +52,10 @@ public class TenantHelper {
|
|||
|
||||
private static final ThreadLocal<Long> TEMP_DYNAMIC_TENANT = new TransmittableThreadLocal<>();
|
||||
|
||||
/**
|
||||
* 是否忽略租户
|
||||
*/
|
||||
private static final ThreadLocal<Boolean> IGNORE = new TransmittableThreadLocal<>();
|
||||
/**
|
||||
* 租户功能是否启用
|
||||
*/
|
||||
|
@ -117,4 +122,67 @@ public class TenantHelper {
|
|||
return tenantId;
|
||||
}
|
||||
|
||||
public static void setIgnore(Boolean ignore) {
|
||||
IGNORE.set(ignore);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 开启忽略租户(开启后需手动调用 {@link #disableIgnore()} 关闭)
|
||||
*/
|
||||
public static void enableIgnore() {
|
||||
IGNORE.set(Boolean.TRUE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭忽略租户
|
||||
*/
|
||||
public static void disableIgnore() {
|
||||
IGNORE.remove();
|
||||
}
|
||||
|
||||
/**
|
||||
* 在忽略租户中执行
|
||||
*
|
||||
* @param handle 处理执行方法
|
||||
*/
|
||||
public static void ignore(Runnable handle) {
|
||||
enableIgnore();
|
||||
try {
|
||||
handle.run();
|
||||
} finally {
|
||||
disableIgnore();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 在忽略租户中执行
|
||||
*
|
||||
* @param handle 处理执行方法
|
||||
*/
|
||||
public static <T> T ignore(Supplier<T> handle) {
|
||||
enableIgnore();
|
||||
try {
|
||||
return handle.get();
|
||||
} finally {
|
||||
disableIgnore();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前是否忽略租户
|
||||
*
|
||||
* @return 是否忽略
|
||||
*/
|
||||
public static boolean isIgnore() {
|
||||
Boolean aBoolean = IGNORE.get();
|
||||
return Boolean.TRUE.equals(aBoolean);
|
||||
}
|
||||
|
||||
|
||||
public static void clear() {
|
||||
TEMP_DYNAMIC_TENANT.remove();
|
||||
IGNORE.remove();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -49,6 +49,9 @@ public class TenantListener {
|
|||
@PreRemove
|
||||
@PrePersist
|
||||
public void setTenant(TenantAware entity) {
|
||||
if(TenantHelper.isIgnore()){
|
||||
return;
|
||||
}
|
||||
Long tenantId = LoginHelper.getTenantId();
|
||||
Long dynamic = TenantHelper.getDynamic();
|
||||
if (!Objects.isNull(dynamic)) {
|
||||
|
|
Loading…
Reference in New Issue