/**
* 根据权限名称查询子项
* @param bean
* @return
*/
@Override
public List<Map<String, Object>> getChildrenListByAuthorityName(AuthorityManagement bean) {
log.info("根据权限名称查询子项bean======"+bean);
List<Map<String,Object>>treeList=new ArrayList<>();
bean.setTenantId(AuthUtil.getTenantId());
List<AuthorityManagement> list=list(Condition.getQueryWrapper(bean));
if(Func.isNotEmpty(list)){
List<AuthorityManagement> returnList=new ArrayList<>();
List<AuthorityManagement> toTreeList=getList(list,returnList);
if(Func.isNotEmpty(toTreeList)){
//将返回的实体类数据list转化成list map类型
List<Map<String,Object>>toList=new ArrayList<>();
for(AuthorityManagement beanIfo:toTreeList){
Map<String,Object>mapIfo=new HashMap<>();
mapIfo.put("id",String.valueOf(beanIfo.getId()));
mapIfo.put("parentId",beanIfo.getParentId());
mapIfo.put("key",String.valueOf(beanIfo.getId()));
mapIfo.put("value",String.valueOf(beanIfo.getId()));
mapIfo.put("title",beanIfo.getAuthorityName());
toList.add(mapIfo);
}
treeList= TreeListUtil.getChildrenTreeList("id","parentId","children",toList);
}
}
return treeList;
}
/**
*递归获取树状结构子集
* @param list
* @param returnList
* @return
*/
public List<AuthorityManagement>getList(List<AuthorityManagement>list,List<AuthorityManagement>returnList){
if(Func.isNotEmpty(list)){
for(AuthorityManagement bean:list){
AuthorityManagement beanInfo=new AuthorityManagement();
beanInfo.setParentId(AuthUtil.getTenantId());
beanInfo.setParentId(String.valueOf(bean.getId()));
List<AuthorityManagement>list1=list(Condition.getQueryWrapper(beanInfo));
returnList.add(bean);
if(Func.isNotEmpty(list1)){
getList(list1,returnList);
}
}
}
return returnList;
}
/**
*把带有父子机构的数据变成treelist形式 获取子集
* @param id
* @param parentId 父id
* @param children 子项名称
* @param list 传入的list
* @return
*/
public static List<Map<String, Object>> getChildrenTreeList(String id, String parentId, String children, List<Map<String, Object>>list) {
//给list的每一项加一个子项
for(int i=0;i<list.size();i++) {
list.get(i).put(children, new ArrayList<Map<String, Object>>());
}
System.out.println("把带有父子机构的数据变成treelist形式list==============="+list);
List<Map<String, Object>>treelist=new ArrayList<Map<String, Object>>();
for(Map<String, Object> outmap:list) {
//System.out.println("把带有父子机构的数据变成outmap==============="+outmap);
for(Map<String, Object> inmap:list) {
String outid=outmap.get(id).toString();
String inpid=inmap.get(parentId).toString();
if(outid.equals(inpid)) {
List<Map<String, Object>>maplist=(ArrayList) outmap.get(children);
maplist.add(inmap);
}
}
String prid=outmap.get(parentId).toString();
if(!Func.isEmpty(prid)&& prid.equals("0")) {
treelist.add(outmap);
}
}
return treelist;
}