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