若依框架 使用数据权限功能

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语句。

以上是关于若依框架 使用数据权限功能的主要内容,如果未能解决你的问题,请参考以下文章

若依vue实现动态表格,可动态控制列的显示隐藏及操作权限

若依框架登录,token,自定义session,鉴权等前后端流程解读

若依框架-Vue实用框架(权限控制和页面渲染)

若依和vue-admin哪个更适合二开

深入分析若依数据权限@datascope (注解+AOP+动态sql拼接) 循序渐进,附分析过程

若依框架-自动代码步骤记录