每一个门店都是有id和parentId,只是总店的parentId为null而已,我要查询其中一个门店,假如说,我要查询分店3,我能把与门店3有关联的门店总门店到分店6都能查询出来。用递归的方式来查询。
看不懂你的问题在哪里?
// 首先根据其中一个门店,查到他的总们店, 然后递归取出总们店下所有子门店
public static void main(String[] args) {
Store current = new Store();
while(current.parent != null){
current=current.parent;
}
findStore(current);
}
public static List findStore(Store s){
List re = new ArrayList<>();
re.add(s);
if(s.child != null){
for (Store c: s.child){
re.addAll(findStore(c));
}
}
return re;
}
static class Store {
Integer id ;
Store parent;
List child;
}
/**
* 描述:查询所有部门
* @return 返回结果集
*/
@Override
public List<DepartmentPojo> queryAllDepartment() {
Integer depParentId=0;
List<DepartmentPojo> list = departmentMapper.queryAllDepartment(depParentId);
for (int i = 0; i < list.size(); i++) {
setChildrens(list.get(i));
}
return list;
}
/**
* 描述:递归所有子部门以及部门的角色
* @param children
*/
public void setChildrens(DepartmentPojo children){
children.setChildren(departmentMapper.queryAllDepartment(children.getDepId()));
children.setRolePojoList(departmentMapper.queryDepartmentRole(children.getDepId()));
if(children.getChildren().size()!=0){
for (int i = 0; i < children.getChildren().size(); i++) {
setChildrens(children.getChildren().get(i));
}
}
}