feat(修改): 查询菜单
This commit is contained in:
parent
825f9893f4
commit
aa750cf167
|
@ -0,0 +1,46 @@
|
||||||
|
package com.atguigu.utils;
|
||||||
|
|
||||||
|
|
||||||
|
import com.atguigu.spzx.model.entity.system.SysMenu;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public class MenuHelper {
|
||||||
|
/**
|
||||||
|
* 构建树型结构
|
||||||
|
*
|
||||||
|
* @param sysMenuList 系统菜单列表
|
||||||
|
* @return 菜单结构列表
|
||||||
|
*/
|
||||||
|
public static List<SysMenu> buildTree(List<SysMenu> sysMenuList) {
|
||||||
|
ArrayList<SysMenu> tress = new ArrayList<>();
|
||||||
|
// 把菜单数据进行遍历
|
||||||
|
sysMenuList.forEach(sysMenu -> {
|
||||||
|
if (sysMenu.getParentId() == 0) tress.add(getChildren(sysMenu, sysMenuList));
|
||||||
|
});
|
||||||
|
return tress;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建递归循环
|
||||||
|
*
|
||||||
|
* @param sysMenu 当前菜单对象
|
||||||
|
* @param sysMenuList 全部菜单列表
|
||||||
|
* @return 菜单
|
||||||
|
*/
|
||||||
|
private static SysMenu getChildren(SysMenu sysMenu, List<SysMenu> sysMenuList) {
|
||||||
|
// 遍历所有菜单数据,判断id和parentID对应关系
|
||||||
|
sysMenu.setChildren(new ArrayList<>());
|
||||||
|
|
||||||
|
sysMenuList.forEach(menu -> {
|
||||||
|
if (menu.getChildren() == null) menu.setChildren(new ArrayList<>());
|
||||||
|
if (sysMenu.getId().equals(menu.getParentId())) {
|
||||||
|
sysMenu.getChildren().add(getChildren(menu, sysMenuList));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return sysMenu;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,11 @@
|
||||||
package com.atguigu.spzx.manger.controller;
|
package com.atguigu.spzx.manger.controller;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.manger.service.SysMenuService;
|
||||||
import com.atguigu.spzx.model.entity.system.SysMenu;
|
import com.atguigu.spzx.model.entity.system.SysMenu;
|
||||||
import com.atguigu.spzx.model.vo.result.Result;
|
import com.atguigu.spzx.model.vo.result.Result;
|
||||||
import com.atguigu.spzx.model.vo.result.ResultCodeEnum;
|
import com.atguigu.spzx.model.vo.result.ResultCodeEnum;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
@ -10,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@Tag(name = "菜单管理接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping(value = "/admin/system/sysMenu")
|
@RequestMapping(value = "/admin/system/sysMenu")
|
||||||
public class SysMenuController {
|
public class SysMenuController {
|
||||||
|
@ -17,10 +21,10 @@ public class SysMenuController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysMenuService sysMenuService;
|
private SysMenuService sysMenuService;
|
||||||
|
|
||||||
|
@Operation(summary = "查询菜单", description = "查询菜单内容")
|
||||||
@GetMapping("/findNodes")
|
@GetMapping("/findNodes")
|
||||||
public Result<List<SysMenu>> findNodes() {
|
public Result<List<SysMenu>> findNodes() {
|
||||||
List<SysMenu> list = sysMenuService.findNodes();
|
List<SysMenu> list = sysMenuService.findNodes();
|
||||||
return Result.build(list, ResultCodeEnum.SUCCESS);
|
return Result.build(list, ResultCodeEnum.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.atguigu.spzx.manger.mapper;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.model.entity.system.SysMenu;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface SysMenuMapper {
|
||||||
|
/**
|
||||||
|
* 查询菜单
|
||||||
|
*
|
||||||
|
* @return 菜单列表
|
||||||
|
*/
|
||||||
|
List<SysMenu> selectAll();
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.atguigu.spzx.manger.service;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.model.entity.system.SysMenu;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface SysMenuService {
|
||||||
|
/**
|
||||||
|
* 查询菜单
|
||||||
|
*
|
||||||
|
* @return 菜单列表
|
||||||
|
*/
|
||||||
|
List<SysMenu> findNodes();
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.atguigu.spzx.manger.service.impl;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.manger.mapper.SysMenuMapper;
|
||||||
|
import com.atguigu.spzx.manger.service.SysMenuService;
|
||||||
|
import com.atguigu.spzx.model.entity.system.SysMenu;
|
||||||
|
import com.atguigu.utils.MenuHelper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class SysMenuServiceImpl implements SysMenuService {
|
||||||
|
@Autowired
|
||||||
|
private SysMenuMapper sysMenuMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询菜单
|
||||||
|
*
|
||||||
|
* @return 菜单列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<SysMenu> findNodes() {
|
||||||
|
List<SysMenu> sysMenuList = sysMenuMapper.selectAll();
|
||||||
|
|
||||||
|
return MenuHelper.buildTree(sysMenuList);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="com.atguigu.spzx.manger.mapper.SysMenuMapper">
|
||||||
|
<resultMap id="sysMenuMap" type="com.atguigu.spzx.model.entity.system.SysMenu" autoMapping="true"/>
|
||||||
|
|
||||||
|
<!-- 用于select查询公用抽取的列 -->
|
||||||
|
<sql id="columns">
|
||||||
|
id,parent_id,title,component,sort_value,status,create_time,update_time,is_deleted
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!-- 查询菜单 -->
|
||||||
|
<select id="selectAll" resultType="com.atguigu.spzx.model.entity.system.SysMenu">
|
||||||
|
select
|
||||||
|
<include refid="columns"/>
|
||||||
|
from sys_menu where is_deleted = 0 order by sort_value
|
||||||
|
</select>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue