实现addChild方法,使用Springboot和mybatis框架开发,程序可能用到的表为菜单权限表t_sys_menu,实现菜单权限表的树状结构接口,给出Controller层,Service层,Service实现类,Dao层,,mapper.xml文件
时间: 2024-03-28 19:42:01 浏览: 23
好的,下面是更新后的代码示例:
Menu实体类:
```java
public class Menu {
private Long id;
private String name;
private String url;
private Long parentId;
private List<Menu> children = new ArrayList<>();
// 省略getter和setter
public void addChild(Menu menu) {
children.add(menu);
}
}
```
Service实现类:
```java
@Service
public class MenuServiceImpl implements MenuService {
@Autowired
private MenuMapper menuMapper;
@Override
public List<Menu> getMenuTree() {
List<Menu> menuList = menuMapper.getMenuList();
List<Menu> rootMenus = new ArrayList<>();
Map<Long, Menu> menuMap = new HashMap<>();
for (Menu menu : menuList) {
menuMap.put(menu.getId(), menu);
if (menu.getParentId() == 0) {
rootMenus.add(menu);
}
}
for (Menu menu : menuList) {
if (menu.getParentId() != 0) {
Menu parentMenu = menuMap.get(menu.getParentId());
if (parentMenu != null) {
parentMenu.addChild(menu);
}
}
}
return rootMenus;
}
}
```
现在,当我们调用getMenuTree方法时,会返回一个树状结构的菜单列表。每个菜单实体中都包含了它的子菜单列表。
另外,其他的代码示例与之前的相同,可以参考上面给出的代码。