Browse Source

reactor:@TenantIgnore 增加 enable 属性,用于是否开启

YunaiV 6 months ago
parent
commit
1c0909d970

+ 8 - 0
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnore.java

@@ -21,4 +21,12 @@ import java.lang.annotation.*;
 @Retention(RetentionPolicy.RUNTIME)
 @Retention(RetentionPolicy.RUNTIME)
 @Inherited
 @Inherited
 public @interface TenantIgnore {
 public @interface TenantIgnore {
+
+    /**
+     * 是否开启忽略租户,默认为 true 开启
+     *
+     * 支持 Spring EL 表达式,如果返回 true 则满足条件,进行租户的忽略
+     */
+    String enable() default "true";
+
 }
 }

+ 7 - 1
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnoreAspect.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.framework.tenant.core.aop;
 package cn.iocoder.yudao.framework.tenant.core.aop;
 
 
+import cn.iocoder.yudao.framework.common.util.spring.SpringExpressionUtils;
 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -24,7 +25,12 @@ public class TenantIgnoreAspect {
     public Object around(ProceedingJoinPoint joinPoint, TenantIgnore tenantIgnore) throws Throwable {
     public Object around(ProceedingJoinPoint joinPoint, TenantIgnore tenantIgnore) throws Throwable {
         Boolean oldIgnore = TenantContextHolder.isIgnore();
         Boolean oldIgnore = TenantContextHolder.isIgnore();
         try {
         try {
-            TenantContextHolder.setIgnore(true);
+            // 计算条件,满足的情况下,才进行忽略
+            Object enable = SpringExpressionUtils.parseExpression(tenantIgnore.enable());
+            if (Boolean.TRUE.equals(enable)) {
+                TenantContextHolder.setIgnore(true);
+            }
+
             // 执行逻辑
             // 执行逻辑
             return joinPoint.proceed();
             return joinPoint.proceed();
         } finally {
         } finally {