数据库对应实体类
一定要有下面注释的这俩id
public class CheckMainTree {
private int id;
private String h_check;
private String h_uuid; //父级id
private String m_uuid;//每个节点唯一标识id、
private String checklist;
private int ordernumber;
private String remarks;
private String m_createtime;
private String level;
private int child;
private List<CheckMainTree> childChecl;
}
xml层:
<resultMap type="com.trmoni.Entity.checklist.CheckMainTree" id="ChecklistMainTreeReMap">
<id column="id" property="id"/>
<result column="h_check" property="h_check"/>
<result column="h_uuid" property="h_uuid"/>
<result column="m_uuid" property="m_uuid"/>
<result column="checklist" property="checklist"/>
<result column="ordernumber" property="ordernumber"/>
<result column="remarks" property="remarks"/>
<result column="level" property="level"/>
<result column="m_createtime" property="m_createtime"/>
<result column="child" property="child"/>
</resultMap>
<select id="tree" resultMap="ChecklistMainTreeReMap" parameterType="CheckMainTree">
SELECT h_check,h_uuid,m_uuid,checklist,ordernumber,remarks,m_createtime,level,child
FROM check_list_main
</select>
接口:
List<CheckMainTree> tree(CheckMainTree maintree);
Controller 处理
/**
* 菜单树
*/
@CrossOrigin(origins = "*")
@RequestMapping("/findTree")
@ResponseBody
public Map<String, Object> findTree() {
try {
CheckMainTree tree = new CheckMainTree();
// 直接调用
// 原始的数据
List<CheckMainTree> rootMenu = checklistService.tree(tree);
// 构建好的菜单树,第一层菜单的pid是null
List<CheckMainTree> menuTree = this.buildMenuTree(rootMenu, "");
return commonUtil.success(menuTree);
}catch (Exception e){
e.printStackTrace();
log.error("树查询异常原因={}",e.getMessage());
return commonUtil.error("树查询失败");
}
}
/**
* 递归查找子菜单
*
* 当前菜单id
* 要查找的列表
*
* pid 为父级id 也就是当前的 H_uuid
* M_uuid 为数的节点也就是唯一标识UUID
*
*
* @return
*/
private List<CheckMainTree> buildMenuTree(List<CheckMainTree> menuList, String pid) {
List<CheckMainTree> treeList = new ArrayList<>();
menuList.forEach(menu -> {
if (Objects.equals(pid, menu.getH_uuid())) {
menu.setChildChecl(buildMenuTree(menuList,menu.getM_uuid()));
treeList.add(menu);
}
});
return treeList;
}
最后的json样式:
{
"msg": "数据处理success!",
"code": "200",
"data": [
{
"id": 0,
"h_check": null,
"h_uuid": "",
"m_uuid": "f8b0b161ef1b4da59e10ddcbeba68faa",
"checklist": "内容1",
"ordernumber": 1,
"remarks": "备注1",
"m_createtime": "2020-05-19 13:10:50",
"level": "1",
"child": 1,
"childChecl": [
{
"id": 0,
"h_check": "哈1",
"h_uuid": "f8b0b161ef1b4da59e10ddcbeba68faa",
"m_uuid": "fbaa3c925be94f8a9dd78c84cf105834s",
"checklist": "asd",
"ordernumber": 10,
"remarks": "bj",
"m_createtime": "2020-05-19 14:06:04",
"level": "2",
"child": 0,
"childChecl": []
},
{
"id": 0,
"h_check": "内容1-1",
"h_uuid": "f8b0b161ef1b4da59e10ddcbeba68faa",
"m_uuid": "fbaa3c925be94f8a9dd78c84cf105834",
"checklist": "asdsss",
"ordernumber": 20,
"remarks": "bj",
"m_createtime": "2020-05-19 14:06:04",
"level": "2",
"child": 1,
"childChecl": [
{
"id": 0,
"h_check": "asdsss",
"h_uuid": "fbaa3c925be94f8a9dd78c84cf105834",
"m_uuid": "53534d52d4dc48cc81b50755193463b7",
"checklist": "检查子项1",
"ordernumber": 1,
"remarks": "标记",
"m_createtime": "2020-05-20 11:04:10",
"level": "3",
"child": 0,
"childChecl": []
}
]
}
]
},
{
"id": 0,
"h_check": "",
"h_uuid": "",
"m_uuid": "af8987f372a9437bbf349d630ee807e1",
"checklist": "内容2",
"ordernumber": 33,
"remarks": "bj",
"m_createtime": "2020-05-19 16:34:38",
"level": "1",
"child": 1,
"childChecl": [
{
"id": 0,
"h_check": "内容2-1",
"h_uuid": "af8987f372a9437bbf349d630ee807e1",
"m_uuid": "fbaa3c925be94f8a9dd78c84cf1058sa",
"checklist": "asdsss",
"ordernumber": 230,
"remarks": "bj",
"m_createtime": "2020-05-19 14:06:04",
"level": "2",
"child": 0,
"childChecl": []
},
{
"id": 0,
"h_check": "内容2-2",
"h_uuid": "af8987f372a9437bbf349d630ee807e1",
"m_uuid": "b5b348ae7d9a4d96b4d3bcfa662eb93f",
"checklist": "大对",
"ordernumber": 32,
"remarks": "remarks",
"m_createtime": "2020-05-20 09:55:41",
"level": "2",
"child": 1,
"childChecl": [
{
"id": 0,
"h_check": "阿萨大",
"h_uuid": "b5b348ae7d9a4d96b4d3bcfa662eb93f",
"m_uuid": "b5b348ae7d9a4d96b4d3bcfa662eb456",
"checklist": "内容2-2-1",
"ordernumber": 1,
"remarks": "备注",
"m_createtime": "2020-05-20 09:55:41",
"level": "3",
"child": 0,
"childChecl": []
}
]
}
]
}
]
}
springboot+mysql 查询出树形结构实现
最新推荐文章于 2024-07-29 23:30:00 发布