若依框架 使用数据权限功能
Posted 编程圈子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了若依框架 使用数据权限功能相关的知识,希望对你有一定的参考价值。
若依框架 使用数据权限功能
一、作用说明
若依设计了数据权限功能,分为:
- 全部数据权限
- 自定数据权限
- 部门数据权限
- 部门及以下数据权限
- 仅本人数据权限
若依数据权限的实现
主要在: DataScopeAspect 类里,通过AOP+注解的方式实现。
数据权限过滤注解
主要在@interface DataScope中实现。
二、操作步骤
1. 需要数据权限的表设计字段:
- dept_id :big int类型
- create_user_id :bigint类型
2. 在需要数据权限的方法上加注解
部门数据权限注解
@DataScope(deptAlias = "d")
public List<...> select(...)
return mapper.select(...);
部门及用户权限注解
@DataScope(deptAlias = "d", userAlias = "u")
public List<...> select(...)
return mapper.select(...);
3. 在mybatis的 xml 中加过滤标签
<select id="select" parameterType="..." resultMap="...Result">
<include refid="select...Vo"/>
<!-- 数据范围过滤 -->
$params.dataScope
</select>
另外select中加上关联查询 :
<sql id="selectVo">
select id, name, create_time, update_time from test
LEFT JOIN sys_dept d on test.dept_id=d.dept_id
</sql>
注意SQL中关联 sys_dept
时别名要用 d
,关联sys_user
表时别名要用 u
。
4. 实体类注意事项
实体类必须从 BaseEntity
继承,组合的SQL会放在BaseEntity对象的params属性中,所以过滤标签可以通过$params.dataScope
来引用组合的SQL语句。
以上是关于若依框架 使用数据权限功能的主要内容,如果未能解决你的问题,请参考以下文章
若依框架登录,token,自定义session,鉴权等前后端流程解读