fix: 优化权限查询
This commit is contained in:
parent
820eb37548
commit
1db7cc5075
@ -172,6 +172,7 @@ public class SysUserDataScopeServiceImpl extends ServiceImpl<SysUserDataScopeMap
|
|||||||
|
|
||||||
// 3. 批量查询各类资源的名称
|
// 3. 批量查询各类资源的名称
|
||||||
Map<String, String> orgNameMap = new HashMap<>();
|
Map<String, String> orgNameMap = new HashMap<>();
|
||||||
|
Map<String, String> rvcdOrderMap = new HashMap<>();
|
||||||
|
|
||||||
// 3.1 查询流域名称 (BASIN)
|
// 3.1 查询流域名称 (BASIN)
|
||||||
if (groupedByType.containsKey("RVCD")) {
|
if (groupedByType.containsKey("RVCD")) {
|
||||||
@ -181,8 +182,30 @@ public class SysUserDataScopeServiceImpl extends ServiceImpl<SysUserDataScopeMap
|
|||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(rvcds)) {
|
if (CollUtil.isNotEmpty(rvcds)) {
|
||||||
List<SdRvcdDic> basins = rvcdDicMapper.selectBatchIds(rvcds);
|
List<SdRvcdDic> dropdownBasins = rvcdDicMapper.selectRegDropdown(null, null);
|
||||||
basins.forEach(basin -> orgNameMap.put(basin.getRvcd(), basin.getRvnm()));
|
Set<String> handledRvcds = new HashSet<>();
|
||||||
|
int dropdownOrder = 0;
|
||||||
|
|
||||||
|
for (SdRvcdDic basin : dropdownBasins) {
|
||||||
|
dropdownOrder++;
|
||||||
|
if (rvcds.contains(basin.getRvcd())) {
|
||||||
|
orgNameMap.put(basin.getRvcd(), basin.getRvnm());
|
||||||
|
rvcdOrderMap.put(basin.getRvcd(), String.format("%010d", dropdownOrder));
|
||||||
|
handledRvcds.add(basin.getRvcd());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<String> missingRvcds = rvcds.stream()
|
||||||
|
.filter(rvcd -> !handledRvcds.contains(rvcd))
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
if (CollUtil.isNotEmpty(missingRvcds)) {
|
||||||
|
List<SdRvcdDic> basins = rvcdDicMapper.selectBatchIds(missingRvcds);
|
||||||
|
basins.forEach(basin -> {
|
||||||
|
orgNameMap.put(basin.getRvcd(), basin.getRvnm());
|
||||||
|
rvcdOrderMap.put(basin.getRvcd(), String.format("ROOT-%010d", basin.getOrderIndex() == null ? Integer.MAX_VALUE : basin.getOrderIndex()));
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,6 +274,21 @@ public class SysUserDataScopeServiceImpl extends ServiceImpl<SysUserDataScopeMap
|
|||||||
voList.add(vo);
|
voList.add(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
voList.sort((left, right) -> {
|
||||||
|
boolean leftRvcd = "RVCD".equals(left.getOrgType());
|
||||||
|
boolean rightRvcd = "RVCD".equals(right.getOrgType());
|
||||||
|
if (leftRvcd && rightRvcd) {
|
||||||
|
String leftKey = rvcdOrderMap.getOrDefault(left.getOrgId(), "9999999999");
|
||||||
|
String rightKey = rvcdOrderMap.getOrDefault(right.getOrgId(), "9999999999");
|
||||||
|
int compare = leftKey.compareTo(rightKey);
|
||||||
|
if (compare != 0) {
|
||||||
|
return compare;
|
||||||
|
}
|
||||||
|
return StrUtil.nullToDefault(left.getOrgId(), "").compareTo(StrUtil.nullToDefault(right.getOrgId(), ""));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
|
||||||
return voList;
|
return voList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user