若依设计了数据权限功能,分为:
主要在: DataScopeAspect 类里,通过AOP+注解的方式实现。
主要在@interface DataScope中实现。
@DataScope(deptAlias = "d")
public List<...> select(...)
{
return mapper.select(...);
}
@DataScope(deptAlias = "d", userAlias = "u")
public List<...> select(...)
{
return mapper.select(...);
}
<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
。
实体类必须从 BaseEntity
继承,组合的SQL会放在BaseEntity对象的params属性中,所以过滤标签可以通过${params.dataScope}
来引用组合的SQL语句。