@Override
public Map<String, Object> orgList() {
Map<String,Object> map = new HashMap<>();
//2、从redis中获取所有组织机构信息 也可通过sql查询所有菜单
List<CacheOrgDto> cacheOrgDtoList = cache.queryAllCacheOrgFromRedis();
//将从缓存获取的组织机构信息赋值到自己的机构list中
List<ZhzsOrgDto> newList = cacheOrgDtoList.stream().map(e -> {
ZhzsOrgDto t = new ZhzsOrgDto();
BeanUtils.copyProperties(e, t);
return t;
}).collect(Collectors.toList());
//获取登录人组织机构信息
String orgId = "340100000000";//合肥市公安局
List<ZhzsOrgDto> children = newList.stream().filter(t -> t.getParentId().equals(orgId))
.map((menu) -> {
menu.setChildren(this.getChildren(menu,newList));
return menu;
}).collect(Collectors.toList());
ZhzsOrgDto zhzsOrgDto = newList.stream().filter(p -> p.getId().equals(orgId)).findAny().orElse(null);
zhzsOrgDto.setChildren(children);
map.put("data",zhzsOrgDto);
map.put("code",200);
return map;
}
private List<ZhzsOrgDto> getChildren(ZhzsOrgDto root,List<ZhzsOrgDto> all){
List<ZhzsOrgDto> childrenList = all.stream().filter(p -> p.getParentId().equals(root.getId()))
.map(g -> {
//递归找子菜单
g.setChildren(getChildren(g,all));
return g;
}).collect(Collectors.toList());
return childrenList;
}