|
|
|
@ -218,11 +218,35 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic |
|
|
|
} |
|
|
|
} |
|
|
|
if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType())) { |
|
|
|
if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType())) { |
|
|
|
if (user.getRoleCodes().contains(RoleCodeEnum.SECOND_ADMIN.getCode())) { |
|
|
|
if (user.getRoleCodes().contains(RoleCodeEnum.SECOND_ADMIN.getCode())) { |
|
|
|
param.setSecondDepartIds(new HashSet<>(user.getAuthDepartIds())); |
|
|
|
// 1) 用户可见范围(你说的“显示用户看到信息”)
|
|
|
|
|
|
|
|
Set<String> visibleSecondIds = new HashSet<>(user.getAuthDepartIds()); |
|
|
|
|
|
|
|
// 2) 前端如果传了 secondDepartId(可能是二级或上级),展开成“二级机构ID集合”
|
|
|
|
|
|
|
|
if (StrUtil.isNotBlank(request.getSecondDepartId())) { |
|
|
|
|
|
|
|
Set<String> querySecondIds = supDepartResourceService.expandToSecondDepartIds(request.getSecondDepartId()); |
|
|
|
|
|
|
|
// 3) 取交集:避免越权
|
|
|
|
|
|
|
|
visibleSecondIds.retainAll(querySecondIds); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 4) 交集为空:直接无权限/无数据
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(visibleSecondIds)) { |
|
|
|
|
|
|
|
return Result.success(ComplaintCollectionPageVo.noAuthVo()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 5) 最终生效的查询条件
|
|
|
|
|
|
|
|
param.setSecondDepartIds(visibleSecondIds); |
|
|
|
} else if (user.getRoleCodes().contains(RoleCodeEnum.THREE_ADMIN.getCode())) { |
|
|
|
} else if (user.getRoleCodes().contains(RoleCodeEnum.THREE_ADMIN.getCode())) { |
|
|
|
|
|
|
|
// 三级管理员:不允许看
|
|
|
|
|
|
|
|
return Result.success(ComplaintCollectionPageVo.noAuthVo()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}else { |
|
|
|
|
|
|
|
// 超管:也支持“前端传上级 -> 展开二级”查询(不做权限交集)
|
|
|
|
|
|
|
|
if (StrUtil.isNotBlank(request.getSecondDepartId())) { |
|
|
|
|
|
|
|
Set<String> querySecondIds = supDepartResourceService.expandToSecondDepartIds(request.getSecondDepartId()); |
|
|
|
|
|
|
|
if (CollectionUtil.isNotEmpty(querySecondIds)) { |
|
|
|
|
|
|
|
param.setSecondDepartIds(querySecondIds); |
|
|
|
|
|
|
|
} else { |
|
|
|
return Result.success(ComplaintCollectionPageVo.noAuthVo()); |
|
|
|
return Result.success(ComplaintCollectionPageVo.noAuthVo()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
IPage<ComplaintCollection> page = complaintCollectionResourceService.pageQuery(param); |
|
|
|
IPage<ComplaintCollection> page = complaintCollectionResourceService.pageQuery(param); |
|
|
|
List<ComplaintCollection> records = page.getRecords(); |
|
|
|
List<ComplaintCollection> records = page.getRecords(); |
|
|
|
List<ComplaintCollectionPageDTO> complaintCollectionPageDTOS = ComplaintCollectionTransfer.INSTANCE.entityToPageDTOList(records); |
|
|
|
List<ComplaintCollectionPageDTO> complaintCollectionPageDTOS = ComplaintCollectionTransfer.INSTANCE.entityToPageDTOList(records); |
|
|
|
|