滨州做网站的科技公司济南seo优化
背后
在用户管理业务开发过程中,通常需要查询出用户管理的菜单数据和当前菜单的所有上级数据。为了方便后续的cv工作,我打算把这种方法记录下来,以备不时之需.
代码实现细节
@Data
public class MenuDTO {@Schema(description = "菜单id")private String id;@Schema(description = "标签(菜单名或按钮名)")private String label;@Schema(description = "父级id")private String parentId;@Schema(description = "子菜单")private List<MenuDTO> children;public MenuDTO() {}public MenuDTO(String id) {this.id = id;}public List<MenuDTO> seekMenu(String menuId) {List<MenuDTO> menuDTOS = new ArrayList<>();if (this.getId().equals(menuId)) {menuDTOS.add(this);return menuDTOS;}if (CollUtil.isNotEmpty(this.children)) {for (MenuDTO child : this.children) {List<MenuDTO> seekList = child.seekMenu(menuId);if (!seekList.isEmpty()) {menuDTOS.add(this);menuDTOS.addAll(seekList);return menuDTOS;}}}return menuDTOS;}}
说明
/*通过 菜单id 查找到本级和上级所有的菜单
*/public List<MenuDTO> seekMenu(String menuId) {List<MenuDTO> menuDTOS = new ArrayList<>();if (this.getId().equals(menuId)) {menuDTOS.add(this);return menuDTOS;}if (CollUtil.isNotEmpty(this.children)) {for (MenuDTO child : this.children) {List<MenuDTO> seekList = child.seekMenu(menuId);if (!seekList.isEmpty()) {menuDTOS.add(this);menuDTOS.addAll(seekList);return menuDTOS;}}}return menuDTOS;}