| | |
| | | return parantList; |
| | | } |
| | | |
| | | /** |
| | | * 递归解析菜单数据,获取菜单树状结构 |
| | | * @param parantItem |
| | | * @param childItemList |
| | | * @return |
| | | */ |
| | | private List<MenuItemDomainDTO> praseChildMenuItems(MenuItemDomainDTO parantItem, List<MenuItemDomainDTO> childItemList){ |
| | | if(childItemList == null || childItemList.size() == 0 || parantItem == null) |
| | | return null; |
| | | List<MenuItemDomainDTO> resultList = new ArrayList<>(); |
| | | // childItemList.forEach(child -> { |
| | | |
| | | // private List<MenuItemDomainDTO> praseChildMenuItems(MenuItemDomainDTO parantItem, List<MenuItemDomainDTO> childItemList){ |
| | | // if(childItemList == null || childItemList.size() == 0 || parantItem == null) |
| | | // return null; |
| | | // List<MenuItemDomainDTO> resultList = new ArrayList<>(); |
| | | //// childItemList.forEach(child -> { |
| | | //// if(parantItem.getId().equals(child.getParentId())){ |
| | | //// resultList.add(child); |
| | | //// } |
| | | //// }); |
| | | // for(MenuItemDomainDTO child : childItemList){ |
| | | // if(parantItem.getId().equals(child.getParentId())){ |
| | | // resultList.add(child); |
| | | // } |
| | | // }); |
| | | for(MenuItemDomainDTO child : childItemList){ |
| | | if(parantItem.getId().equals(child.getParentId())){ |
| | | resultList.add(child); |
| | | // } |
| | | // if(resultList.size() > 0){ |
| | | // for (MenuItemDomainDTO child : childItemList){ |
| | | // List<MenuItemDomainDTO> childList = praseChildMenuItems(child,childItemList); |
| | | // if(childList != null && childList.size() > 0) |
| | | // child.setSubMenuItemList(childList); |
| | | // } |
| | | // } |
| | | // return resultList; |
| | | // } |
| | | |
| | | /** |
| | | * 递归解析菜单数据,获取菜单树状结构 |
| | | * @param parentItem |
| | | * @param allItems |
| | | * @return |
| | | */ |
| | | private List<MenuItemDomainDTO> praseChildMenuItems(MenuItemDomainDTO parentItem, List<MenuItemDomainDTO> allItems) { |
| | | if (allItems == null || allItems.isEmpty() || parentItem == null) { |
| | | return null; |
| | | } |
| | | List<MenuItemDomainDTO> directChildren = new ArrayList<>(); |
| | | // 1. 先找出当前父菜单的直接子菜单(parentId等于当前父菜单的id) |
| | | for (MenuItemDomainDTO item : allItems) { |
| | | if (parentItem.getId().equals(item.getParentId())) { |
| | | directChildren.add(item); |
| | | } |
| | | } |
| | | if(resultList.size() > 0){ |
| | | for (MenuItemDomainDTO child : childItemList){ |
| | | List<MenuItemDomainDTO> childList = praseChildMenuItems(child,childItemList); |
| | | if(childList != null && childList.size() > 0) |
| | | child.setSubMenuItemList(childList); |
| | | // 2. 只对直接子菜单递归,找它们的子菜单(孙菜单) |
| | | if (!directChildren.isEmpty()) { |
| | | for (MenuItemDomainDTO child : directChildren) { // 关键:遍历directChildren而非allItems |
| | | List<MenuItemDomainDTO> grandChildren = praseChildMenuItems(child, allItems); |
| | | if (grandChildren != null && !grandChildren.isEmpty()) { |
| | | child.setSubMenuItemList(grandChildren); |
| | | } |
| | | } |
| | | return resultList; |
| | | } |
| | | return directChildren; |
| | | } |
| | | |
| | | |
| | | |
| | | } |