实现效果
实现代码
/**
* 树形结构案例目录及案例导出百度脑图文件格式
*
* @param id
* @return
* @throws Exception
*/
@GetMapping("/exprtNaoTuDir")
public void exprtNaoTuDir(@RequestParam("id") Integer id,
HttpServletResponse response) throws UnsupportedEncodingException {
//查询选中节点目录上级父节点目录
List<JrcsptCaseContent> parents = service.getParents(id);
List<String> names = new ArrayList<>();
for (JrcsptCaseContent item : parents) {
names.add(item.getName());
}
//拼装选中节点目录所有父节点目录数据
List<Map<String, Object>> contentNameMapList = new ArrayList<>();
for (JrcsptCaseContent item : parents) {
JinRongNaoTu nt = new JinRongNaoTu();
nt.setId(item.getId().toString());
nt.setCreated(System.currentTimeMillis());
nt.setText(item.getName());
nt.setExpandState("expand");
Map<String, Object> contentMap = new HashMap<>();
contentMap.put("data", nt);
contentMap.put("children", null);
contentNameMapList.add(contentMap);
}
//Integer countSubNodeLevel = jrcsptCaseContentService.countSubNodeLevel(id);//节点最大深度2
//查询选中目录节点除自身外子节点目录
List<JrcsptCaseContent> getSubContentList = jrcsptCaseContentService.findSubNodeExcludeSelf(id);
List<Map<String, Object>> subContentList = new ArrayList<>();//构建数据拼装存放集合
if (hasChild(id)) {
//选中节点目录包含子节点目录情况,遍历子节点目录拼装数据
for (JrcsptCaseContent cont : getSubContentList) {
List<Map<String, Object>> caseMapList = recursionFn(cont);
JinRongNaoTu subContentNt = n