From 63486c527b01c459110a88930d9cda1ded633aee Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Tue, 11 Nov 2025 10:32:30 +0800
Subject: [PATCH] 修改新增气象数据统计
---
src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java | 69 ++++++++++++++++++++++++----------
1 files changed, 48 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java
index ddbff4f..bb7266c 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/sysAdmin/service/impl/MenuDomainServiceImpl.java
@@ -340,33 +340,60 @@
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;
}
+
+
+
}
--
Gitblit v1.9.2