@Slf4j
@Aspect
public class BladeTenantAspect {
	@Around("@annotation(tenantIgnore)")
	public Object around(ProceedingJoinPoint point, TenantIgnore tenantIgnore) throws Throwable {
		try {
			//开启忽略
			BladeTenantHolder.setIgnore(Boolean.TRUE);
			//执行方法
			return point.proceed();
		} finally {
			//关闭忽略
			BladeTenantHolder.clear();
		}
	}
}方法嵌套时会在执行第一个mapper方法后执行下面这个方法(可自行debug查看源码实现)
BladeTenantHolder.clear() 案例:
      @TenantIgnore
	m1(){
		m2();
		m3();
	}
	
	m2(){
		m2Mapper.selectOne();
	}
	m3(){
		m3Mapper.selectOne();
	}导致:ignore忽略租户标识清除,后面的mapper方法取不到ignore标识,执行mybatisplus方法时拼接tenant_id。
建议改造方案(仅供参考):
@Around("@annotation(tenantIgnore)")
	public Object around(ProceedingJoinPoint point, TenantIgnore tenantIgnore) throws Throwable {
		Boolean ignore = BladeTenantHolder.isIgnore();
		if (ignore){
			return point.proceed();
		}
		try {
			//开启忽略
			BladeTenantHolder.setIgnore(Boolean.TRUE);
			//执行方法
			return point.proceed();
		} finally {
			//关闭忽略
			BladeTenantHolder.clear();
		}
	}你好,请将账号绑定邮箱改为授权qq邮箱方可进行商业版答疑。这个问题是你注解方法上加错了,要加到list方法不是page方法。前端调用的是list,你给page自然是没反应的。
公司购买的,我只有一个购买截图。
就拿这个2开头的qq邮箱绑定你这个账号。或者用这个授权账号注册社区再提问,或者让这个授权邮箱给我们发邮件,说明你的帐号是公司员工持有,这样我们就会把你标记成商业账号了。
我们的邮箱:bladejava@qq.com