|
|
|
@ -1,11 +1,17 @@ |
|
|
|
# 执法码数据权限过滤使用说明 |
|
|
|
|
|
|
|
## 1. 虚拟单位树(efcode_virtual_unit)数据模型 |
|
|
|
## 1. 虚拟单位树(efcode_virtual_unit)数据模型,将一期通过程序生成的执法单位树,改变成为实际存储在数据库中的关系,形成实际上的上下级关系 |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
数据权限过滤的核心依赖是 **虚拟单位树**(表 `efcode_virtual_unit`),它构建了一棵与实际部门关联的逻辑组织树,用于控制数据可见范围。 |
|
|
|
|
|
|
|
* 所有的业务相关的表中都加上3个字段 |
|
|
|
* bureau_dept_id:执法单位ID(当前用户所在的执法单位的id)=DataFilterUtil.getUserBureauDeptId |
|
|
|
* dept_id:部门ID(当前用户所在的部门id)=DataFilterUtil.getUserDeptId |
|
|
|
* organ_id:组织单位ID (当前用户所在的组织单位id)=DataFilterUtil.getUserOrganId |
|
|
|
* 对应的名称作为可选项,自行决定加不加 |
|
|
|
|
|
|
|
### 1.1 表结构(EfcodeVirtualUnit / EfcodeVirtualUnitVo) |
|
|
|
|
|
|
|
| 字段 | 类型 | 说明 | |
|
|
|
@ -204,20 +210,20 @@ public TableDataInfo<TestEnfDemoVo> directFilterPageList(TestEnfDemoBo bo, PageQ |
|
|
|
|
|
|
|
### 5.1 权限判断方法 |
|
|
|
|
|
|
|
| 方法签名 | 返回值 | 说明 | |
|
|
|
|----------|--------|------| |
|
|
|
| `isFullAccess()` | `boolean` | 判断当前用户是否全部放行(超管或 ViewAllDataRole) | |
|
|
|
| `needFilter()` | `boolean` | 判断当前用户是否需要数据过滤(拥有 ViewFilterDataRole) | |
|
|
|
| `hasNoAccess()` | `boolean` | 判断当前用户是否无权访问(既非放行也非过滤) | |
|
|
|
| `getUserAccessibleDeptIds(includeStatistics, includeSearch)` | `List<String>` | 获取当前用户可访问的 sys_dept_id 列表(null=全放行,空=无权) | |
|
|
|
| `getFilteredDeptIdsForCurrentUser(includeStatistics, includeSearch)` | `List<String>` | 获取 ViewFilterDataRole 用户在虚拟单位树中对应节点及子孙的 sys_dept_id | |
|
|
|
| 方法签名 | 返回值 | 说明 | |
|
|
|
|---------------------------------------------------------------------|--------|------| |
|
|
|
| `isFullAccess()` | `boolean` | 判断当前用户是否全部放行(超管或 ViewAllDataRole) | |
|
|
|
| `needFilter()` | `boolean` | 判断当前用户是否需要数据过滤(拥有 ViewFilterDataRole) | |
|
|
|
| `hasNoAccess()` | `boolean` | 判断当前用户是否无权访问(既非放行也非过滤) | |
|
|
|
| `getUserAccessibleDeptIds` | `List<String>` | 获取当前用户可访问的 sys_dept_id 列表(null=全放行,空=无权) | |
|
|
|
| `getFilteredDeptIdsForCurrentUser` | `List<String>` | 获取 ViewFilterDataRole 用户在虚拟单位树中对应节点及子孙的 sys_dept_id | |
|
|
|
|
|
|
|
### 5.2 子孙节点查询方法 |
|
|
|
|
|
|
|
| 方法签名 | 返回值 | 说明 | |
|
|
|
|----------|--------|------| |
|
|
|
| `getDescendantDeptIds(virId, includeSearch, includeStatistics, includeBusiness)` | `List<String>` | 获取指定 virId 下所有子孙节点的 sys_dept_id(已去重) | |
|
|
|
| `getDescendantVirIds(virId, includeSearch, includeStatistics, includeBusiness)` | `List<String>` | 获取指定 virId 下所有子孙节点的 vir_id(已去重) | |
|
|
|
| `getDescendantDeptIds` | `List<String>` | 获取指定 virId 下所有子孙节点的 sys_dept_id(已去重) | |
|
|
|
| `getDescendantVirIds` | `List<String>` | 获取指定 virId 下所有子孙节点的 vir_id(已去重) | |
|
|
|
|
|
|
|
参数说明: |
|
|
|
- `virId`:起始节点的虚拟单位ID(如 `DataFilterUtil.SHENZHEN_AREAS`) |
|
|
|
|