获取子菜单方法
private List
获取树状的菜单结构
@Override
public List findTreeMenu(){
List menus = findAllMenu(); //先获取你想要在哪些菜单范围内搜索
List rootMenus = new ArrayList<>();
for (Menu menu : menus) {
//从最上级菜单开始展示
if(menu.getPid().equals(0L)){
rootMenus.add(menu);
}
}
for (Menu rootMenu : rootMenus) {
//把最上级菜单的子菜单获取到,子菜单的子菜单也会获取到(目前是三层,由于是递归调用,100
层也没问题)
List child = getChild(rootMenu.getId(), menus);
rootMenu.setSubMenu(child);
}
return rootMenus;
}
利用postman测接口,返回数据如下
[
{
"id": 1,
"menuname": "B2C销售管理",
"pid": 0,
"url": "/qwe",
"subMenu": [
{
"id": 1001,
"menuname": "订单显示",
"pid": 1,
"url": "/fsd",
"subMenu": [
{
"id": 1001001,
"menuname": "订单添加",
"pid": 1001,
"url": "/fg"
}
]
},
{
"id": 1002,
"menuname": "销售出库单",
"pid": 1,
"url": "/gk",
"subMenu": [
{
"id": 1002001,
"menuname": "销售出库单修改",
"pid": 1002,
"url": "/gh"
}
]
},
{
"id": 1003,
"menuname": "销售退货单",
"pid": 1,
"url": "/jmf",
"subMenu": [
{
"id": 1003001,
"menuname": "销售退货单修改",
"pid": 1003,
"url": "/il,.j"
}
]
},
{
"id": 1004,
"menuname": "网店订单导入",
"pid": 1,
"url": "/dh",
"subMenu": [
{
"id": 1004001,
"menuname": "网店订单导入修改",
"pid": 1004,
"url": "/gfjnf"
}
]
}
]
},
{
"id": 2,
"menuname": "商品与赠品管理",
"pid": 0,
"url": "/asd",
"subMenu": [
{
"id": 2001,
"menuname": "商品管理",
"pid": 2,
"url": "/fhj",
"subMenu": [
{
"id": 2001001,
"menuname": "商品管理添加",
"pid": 2001,
"url": "/ghj"
}
]
},
{
"id": 2002,
"menuname": "商品品牌管理",
"pid": 2,
"url": "/dahj",
"subMenu": [
{
"id": 2002001,
"menuname": " 商品品牌管理添加",
"pid": 2002,
"url": "/ghkjghkj"
}
]
},
{
"id": 2003,
"menuname": "商品类型管理",
"pid": 2,
"url": "/drhfjn",
"subMenu": [
{
"id": 2003001,
"menuname": "商品类型管理添加",
"pid": 2003,
"url": "/fghf"
}
]
},
{
"id": 2004,
"menuname": "赠品管理",
"pid": 2,
"url": "/tmkt",
"subMenu": [
{
"id": 2004001,
"menuname": "添加赠品",
"pid": 2004,
"url": "/iu"
},
{
"id": 2004002,
"menuname": "详情(查询)",
"pid": 2004,
"url": "/fhg"
},
{
"id": 2004003,
"menuname": "修改数量",
"pid": 2004,
"url": "/kl"
},
{
"id": 2004004,
"menuname": "商品转赠品",
"pid": 2004,
"url": "/goodsToPresent"
},
{
"id": 2004005,
"menuname": "赠品转商品",
"pid": 2004,
"url": "/qwde"
},
{
"id": 2004006,
"menuname": "审核",
"pid": 2004,
"url": "/qwfqwf"
}
]
},
{
"id": 2005,
"menuname": "促销活动申请与审批",
"pid": 2,
"url": "/gfh",
"subMenu": [
{
"id": 2005001,
"menuname": "促销活动申请与审批添加",
"pid": 2005,
"url": "/qwdeq"
}
]
},
{
"id": 2006,
"menuname": "价格调整申请与审批",
"pid": 2,
"url": "/dhdtf",
"subMenu": [
{
"id": 2006001,
"menuname": " 价格调整申请与审批添加",
"pid": 2006,
"url": "/cvbnv"
}
]
}
]
},
{
"id": 3,
"menuname": "售后管理",
"pid": 0,
"url": "/zxc",
"subMenu": [
{
"id": 3001,
"menuname": "返厂出入库管理",
"pid": 3,
"url": "/fgjnf",
"subMenu": [
{
"id": 3001001,
"menuname": " 返厂出入库管理添加",
"pid": 3001,
"url": "/cbvf"
}
]
},
{
"id": 3002,
"menuname": "退换货申请管理",
"pid": 3,
"url": "/fhtgfh",
"subMenu": [
{
"id": 3002001,
"menuname": " 退换货申请管理添加",
"pid": 3002,
"url": "/cvbcv"
}
]
},
{
"id": 3003,
"menuname": "申诉管理",
"pid": 3,
"url": "/ghmgh",
"subMenu": [
{
"id": 3003001,
"menuname": "申诉管理添加",
"pid": 3003,
"url": "/ghk"
}
]
}
]
},
{
"id": 4,
"menuname": "系统管理",
"pid": 0,
"url": "/rty",
"subMenu": [
{
"id": 4001,
"menuname": "用户管理(账号管理)",
"pid": 4,
"url": "/fgjn",
"subMenu": [
{
"id": 4001001,
"menuname": "添加用户",
"pid": 4001,
"url": "lkjh"
},
{
"id": 4001002,
"menuname": "用户详情",
"pid": 4001,
"url": "/userManage"
},
{
"id": 4001003,
"menuname": "用户修改",
"pid": 4001,
"url": "/dfbh"
}
]
},
{
"id": 4002,
"menuname": "角色管理(职位管理)",
"pid": 4,
"url": "/fgjj",
"subMenu": [
{
"id": 4002001,
"menuname": "添加角色",
"pid": 4002,
"url": "/ijughf"
},
{
"id": 4002002,
"menuname": "角色详情",
"pid": 4002,
"url": "/ujyhgfb"
},
{
"id": 4002003,
"menuname": "角色修改",
"pid": 4002,
"url": "/ujyhgf"
}
]
},
{
"id": 4003,
"menuname": "权限管理",
"pid": 4,
"url": "/fhn",
"subMenu": [
{
"id": 4003001,
"menuname": "添加权限",
"pid": 4003,
"url": "/fthgb"
},
{
"id": 4003002,
"menuname": "权限相亲",
"pid": 4003,
"url": "/dfg"
},
{
"id": 4003003,
"menuname": "权限修改",
"pid": 4003,
"url": "/yhkumj"
},
{
"id": 4003004,
"menuname": "权限报表",
"pid": 4003,
"url": "/wazs"
}
]
},
{
"id": 4004,
"menuname": "日志管理",
"pid": 4,
"url": "/fgngf",
"subMenu": [
{
"id": 4004001,
"menuname": "用户日志",
"pid": 4004,
"url": "/logManage"
},
{
"id": 4004002,
"menuname": "商品日志",
"pid": 4004,
"url": "/asf"
}
]
}
]
}
]
实体类设计如下
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.util.List;
@Data
@TableName("t_menu")
@JsonInclude(JsonInclude.Include.NON_NULL)// 不是null的数据才会被携带到返回数据中
public class Menu {
private Long id;
private String menuname;
private Long pid;
private String url;
@TableField(exist = false)
private List subMenu;
}
数据库设计如下



