角色和部门关联,每个角色可以设置一个数据范围(1全部数据权限 2自定数据权限 3本部门数据权限 4本部门及以下数据权限 5仅本人数据权限)
我大概知道实现思路就是可以通过注解和拦截器去拦截sql语句,然后在原有sql上拼接上用户id或部门id的条件。
比如:
// 原有的sql
SELECT * FROM sys_user
// 只能查看本部门数据
SELECT * FROM sys_user WHERE dept_id='1'
在用户管理和部门管理中,我可以直接拼接 user_id=多少 或 dept_id=多少,因为我的用户表和部门表有 dept_id 和 create_by 这两个字段,问题就是我其他表只有 create_by 这个字段,如果要根据部门过滤数据的话,难道要获取当前用户所在部门的所有用户id,然后用 create_by 去匹配这些用户id吗?亦或是每个需要过滤数据的表都加上 dept_id 这个字段?