结果:
控制层:
@PostMapping("/menuTree") public Result menuTree() { Result result; try { List<Map> list; //获取全部模块 list = menuService.getTree(); result = Result.success(list, "获取全部菜单列表成功"); } catch (Exception e) { logger.error("获取全部菜单列表异常", e); result = Result.failure("获取全部菜单列表异常" ); } return result; }
业务层:
@Override public List<Map> getTree() { List<Map> moduleTreeList = menuMapper.moduleTree("0"); if (moduleTreeList != null && !moduleTreeList.isEmpty()) { moduleTreeList.forEach(moduleTree -> { List<Map> moduleTrees = menuMapper.moduleTree((String) moduleTree.get("code")); if (moduleTrees != null && !moduleTrees.isEmpty()) { moduleTree.put("children", moduleTrees); if (moduleTrees != null && !moduleTrees.isEmpty()) { moduleTrees.forEach(map -> { List<Map> maps = menuMapper.moduleTree((String) map.get("code")); if (maps != null && !maps.isEmpty()) { map.put("children", maps); } }); } } }); } return moduleTreeList; }
数据层:
List<Map> moduleTree(String parentCode);
sql语句:
<select id="moduleTree" resultType="map"> select m.id, m.code, m.parent_code, m.name, m.type from menu m where m.parent_code = #{0} order by m.order_num desc </select>
表结构: