当前位置:   article > 正文

若依框架 --- 使用数据权限功能_@datascope(deptalias = "d")

@datascope(deptalias = "d")

一、作用说明 

若依设计了数据权限功能,分为:

全部数据权限
自定数据权限
部门数据权限
部门及以下数据权限
仅本人数据权限

若依数据权限的实现
主要在: DataScopeAspect 类里,通过AOP+注解的方式实现。

数据权限过滤注解
主要在@interface DataScope中实现。

二、操作步骤


1. 需要数据权限的表设计字段:
dept_id :big int类型
create_user_id :bigint类型
2. 在需要数据权限的方法上加注解
部门数据权限注解

  1. @DataScope(deptAlias = "d")
  2. public List<...> select(...)
  3. {
  4. return mapper.select(...);
  5. }

部门及用户权限注解

  1. @DataScope(deptAlias = "d", userAlias = "u")
  2. public List<...> select(...)
  3. {
  4. return mapper.select(...);
  5. }

3. 在mybatis的 xml 中加过滤标签

  1. <select id="select" parameterType="..." resultMap="...Result">
  2. <include refid="select...Vo"/>
  3. <!-- 数据范围过滤 -->
  4. ${params.dataScope}
  5. </select>

注意SQL中关联 ​​sys_dept​​​ 时别名要用 ​​d​​​,关联​​sys_user​​​表时别名要用 ​​u​​。

4. 实体类注意事项


实体类必须从 ​​BaseEntity​​​ 继承,组合的SQL会放在BaseEntity对象的params属性中,所以过滤标签可以通过​​${params.dataScope}​​来引用组合的SQL语句。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号