mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-19 09:55:16 +08:00
Pre Merge pull request !566 from dhb52/dev
This commit is contained in:
commit
f6f2edea32
@ -0,0 +1,23 @@
|
|||||||
|
package org.dromara.common.mybatis.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略数据权限注解。
|
||||||
|
* 当需要在忽略数据权限的上下文中直接或间接调用 Mapper 时候,
|
||||||
|
* 可以使用该注解修饰当前函数,避免显式的使用
|
||||||
|
* <pre>
|
||||||
|
* DataPermissionHelper.ignore(() -> {
|
||||||
|
* // 业务代码
|
||||||
|
* });
|
||||||
|
* </pre>
|
||||||
|
* 减少代码作用域层级,这尤其在执行定时任务的时候具有明显优势。
|
||||||
|
*
|
||||||
|
* @author dhb52
|
||||||
|
* @version 5.2.1
|
||||||
|
*/
|
||||||
|
@Target({ElementType.METHOD})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface DataPermissionIgnored {
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package org.dromara.common.mybatis.aspectj;
|
||||||
|
|
||||||
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.Around;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.dromara.common.mybatis.annotation.DataPermissionIgnored;
|
||||||
|
import org.dromara.common.mybatis.helper.DataPermissionHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略数据权限, 相应注解 {@link DataPermissionIgnored }
|
||||||
|
*
|
||||||
|
* @author dhb52
|
||||||
|
* @since 5.2.1
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
public class DataPermissionIgnoredAspect {
|
||||||
|
|
||||||
|
@Around("@annotation(dataPermissionIgnored)")
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public Object around(ProceedingJoinPoint joinPoint, DataPermissionIgnored dataPermissionIgnored) {
|
||||||
|
|
||||||
|
return DataPermissionHelper.ignore(() -> {
|
||||||
|
try {
|
||||||
|
return joinPoint.proceed();
|
||||||
|
} catch (Throwable e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
|
||||||
import org.dromara.common.core.factory.YmlPropertySourceFactory;
|
import org.dromara.common.core.factory.YmlPropertySourceFactory;
|
||||||
import org.dromara.common.core.utils.SpringUtils;
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.dromara.common.mybatis.aspectj.DataPermissionIgnoredAspect;
|
||||||
import org.dromara.common.mybatis.handler.InjectionMetaObjectHandler;
|
import org.dromara.common.mybatis.handler.InjectionMetaObjectHandler;
|
||||||
import org.dromara.common.mybatis.handler.MybatisExceptionHandler;
|
import org.dromara.common.mybatis.handler.MybatisExceptionHandler;
|
||||||
import org.dromara.common.mybatis.interceptor.PlusDataPermissionInterceptor;
|
import org.dromara.common.mybatis.interceptor.PlusDataPermissionInterceptor;
|
||||||
@ -116,4 +117,12 @@ public class MybatisPlusConfig {
|
|||||||
* https://baomidou.com/pages/2a45ff/
|
* https://baomidou.com/pages/2a45ff/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略数据权限
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public DataPermissionIgnoredAspect dataPermissionIgnoredAspect() {
|
||||||
|
return new DataPermissionIgnoredAspect();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import org.dromara.common.core.utils.ValidatorUtils;
|
|||||||
import org.dromara.common.core.validate.AddGroup;
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
import org.dromara.common.core.validate.EditGroup;
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
import org.dromara.common.core.validate.QueryGroup;
|
import org.dromara.common.core.validate.QueryGroup;
|
||||||
|
import org.dromara.common.mybatis.annotation.DataPermissionIgnored;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
@ -52,6 +53,7 @@ public class TestDemoController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@SaCheckPermission("demo:demo:list")
|
@SaCheckPermission("demo:demo:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
|
// @DataPermissionIgnored
|
||||||
public TableDataInfo<TestDemoVo> list(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) {
|
public TableDataInfo<TestDemoVo> list(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) {
|
||||||
return testDemoService.queryPageList(bo, pageQuery);
|
return testDemoService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user