/**
* 查询嘉得力组织所有权限构成的权限树
*/
@Override
public List<GadleeAuth> authAll(String companyId) {
List<GadleeAuth> authAll = gadleeAuthMapper.selectAllByCompany(companyId);
List<GadleeAuth> authList = new ArrayList<>();
// 获取顶层权限集合
String parentId;
for (GadleeAuth gadleeAuth : authAll) {
parentId = gadleeAuth.getParentId();
if ("0".equals(parentId)) {
authList.add(gadleeAuth);
}
}
// 获取每个顶层权限的子权限集合
for (GadleeAuth gadleeAuth : authList) {
gadleeAuth.setChildrenList(getSubList(gadleeAuth.getId(), authAll));
}
return authList;
}
// 获取子权限集合
private List<GadleeAuth> getSubList(String id, List<GadleeAuth> list) {
List<GadleeAuth> childList = new ArrayList<>();
String parentId;
// 子集的直接子对象
for (GadleeAuth gadleeAuth : list) {
parentId = gadleeAuth.getParentId();
if (id.equals(parentId)) {
childList.add(gadleeAuth);
}
}
// 递归退出条件
if (childList.size() == 0) {
return null;
}
// 子集的间接子对象
for (GadleeAuth gadleeAuth : childList) {
gadleeAuth.setChildrenList(getSubList(gadleeAuth.getId(), list));
}
return childList;
}