先将根节点找出来
for (int i = 0; i < moduleList.size(); i++) {
ProjectModuleV2 v2 = moduleList.get(i);
String parentId = v2.getParentId();
if ("0".equals(parentId)) {
v2.setParentName(configpath + "/" + conProject + description);
rootList.add(v2);
}
}
// 查出所有的配置
List<ProjectConfig> allconfig = projectConfigService.getProjectOtherConfigWithInit(conProject, conModule, conModuleId);
// 按照层级结构遍历
if (rootList != null && rootList.size() > 0) {
generatorApplication(rootList, moduleList, allconfig);
}
/**
* 递归,将父路径给到每一条模块
* @param rootList
* @param moduleList
* @param allconfig
* @throws Exception
*/
private void generatorApplication(List<ProjectModuleV2> rootList, List<ProjectModuleV2> moduleList, List<ProjectConfig> allconfig) throws Exception {
for (ProjectModuleV2 root : rootList) {
String rootId = root.getId();
List<ProjectModuleV2> list = new ArrayList<ProjectModuleV2>();
for (ProjectModuleV2 v : moduleList) {
if (StringUtils.isNotBlank(v.getParentId()) && v.getParentId().equals(rootId)) {
v.setParentName(root.getParentName() + "/" + root.getAliaName());
list.add(v);
}
}
// 有子节点继续遍历
if (!"0".equals(root.getHasChild())) {
generatorApplication(list, moduleList, allconfig);
} else {
// 生成配置文件
generatorByModule(moduleList, allconfig);
}
}
}