每个表中都需要有字段去关联dept表,取出dept_id,用这个来处理数据权限中部门相关权限
每个表中都需要有字段user_id(默认的为这个字段名),这个用来处理数据权限中本人相关权限
解决方式参考:
<sql id="selectTbSubjectClusteVo">
select * from (
select id, cluste_name, cluste_name AS label,status, is_del, create_by, create_time, update_by, update_time, remark,user_id
(SELECT dept_id FROM sys_user WHERE user_id = user_id) dept_id
from tb_subject_cluste
) da
</sql>
@DataScope(deptAlias = "da",userAlias = "da")
public List<TbSubjectCluste> selectTbSubjectClusteList(TbSubjectCluste tbSubjectCluste) {
return tbSubjectClusteMapper.selectTbSubjectClusteList(tbSubjectCluste);
}
注:这样的解决方式,即嵌套子查询会影响效率,最好的解决办法为在BaseEntity中,从当前线程取出用户所在的部门