获取部门树列表
//用转换器将部门列表转换成部门树
List<SysDepartmentTreeVo> list = SysDepartmentConvert.INSTANCE.listToTreeVoList(sysDepartmentList);
List<SysDepartmentTreeVo> treeVos = new ArrayList<>();
for (SysDepartmentTreeVo treeVo : list) {
if (treeVo.getParentId() == null) {
treeVos.add(findChildren(treeVo, list));
}
}
//查找子级(子级的子级....以此类推)
private SysDepartmentTreeVo findChildren(SysDepartmentTreeVo tree, List<SysDepartmentTreeVo> list) {
for (SysDepartmentTreeVo vo : list) {
if (tree.getId().equals(vo.getParentId())) {
if (tree.getChildren() == null) {
tree.setChildren(new ArrayList<>());
}
tree.getChildren().add(findChildren(vo, list));
}
}
return tree;
}
/**以下是转换器类**/
@Mapper
public interface SysDepartmentConvert {
SysDepartmentConvert INSTANCE = Mappers.getMapper(SysDepartmentConvert.class);
/**
* SysDepartment转换成SysDepartmentTreeVo对象
*
* @param sysDepartment
* @return
*/
SysDepartmentTreeVo entityToTreeVo(SysDepartment sysDepartment);
/**
* SysDepartment列表转换成SysDepartmentTreeVo列表
*
* @param list
* @return
*/
List<SysDepartmentTreeVo> listToTreeVoList(List<SysDepartment> list);
}