一、作用说明
若依设计了数据权限功能,分为:
全部数据权限
自定数据权限
部门数据权限
部门及以下数据权限
仅本人数据权限
若依数据权限的实现
主要在: 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>
注意SQL中关联 sys_dept 时别名要用 d,关联sys_user表时别名要用 u。
4. 实体类注意事项
实体类必须从 BaseEntity 继承,组合的SQL会放在BaseEntity对象的params属性中,所以过滤标签可以通过${params.dataScope}来引用组合的SQL语句。