From ba69dcfe19d7718449f45b3aba8e9fc75ed93025 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 15 四月 2025 15:56:14 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetAssortServiceImpl.java |   42 ++++++++++++++++++++++--------------------
 1 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetAssortServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetAssortServiceImpl.java
index 9a1ff53..72dd95d 100644
--- a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetAssortServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetAssortServiceImpl.java
@@ -14,7 +14,9 @@
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -49,30 +51,30 @@
     @Override
     public List<IvrLibaTargetAssortVO> selectIvrLibaTargetAssortList(IvrLibaTargetAssort ivrLibaTargetAssort) {
         List<IvrLibaTargetAssort> ivrLibaTargetAssorts = ivrLibaTargetAssortMapper.selectIvrLibaTargetAssortList(ivrLibaTargetAssort);
-        //灏唒id涓虹┖鐨勶紝杩囨护鎺�
-        List<IvrLibaTargetAssort> ivrLibaTargetAssortList = new ArrayList<>();
-        for (IvrLibaTargetAssort ivrLibaTargetAssort1 : ivrLibaTargetAssorts) {
-//            if (ivrLibaTargetAssort1.getPid() != null) {
-                ivrLibaTargetAssortList.add(ivrLibaTargetAssort1);
-//            }
+        List<IvrLibaTargetAssortVO> ivrLibaTargetAssortVOS = DtoConversionUtils.sourceToTarget(ivrLibaTargetAssorts, IvrLibaTargetAssortVO.class);
+
+        List<IvrLibaTargetAssortVO> rootList = new ArrayList<>();
+        Map<Long, IvrLibaTargetAssortVO> categoryMap = new HashMap<>();
+
+        // 寤虹珛id->瀵硅薄鐨勬槧灏�
+        for (IvrLibaTargetAssortVO category : ivrLibaTargetAssortVOS) {
+            categoryMap.put(category.getId(), category);
         }
 
-        List<IvrLibaTargetAssortVO> ivrLibaTargetAssortVOS = DtoConversionUtils.sourceToTarget(ivrLibaTargetAssortList, IvrLibaTargetAssortVO.class);
-        //閬嶅巻鏌ュ嚭鏉ョ殑鏁版嵁锛岄�氳繃 id=pid 鑾峰彇浠栦滑鐨勫瓙鏁版嵁
-        List<IvrLibaTargetAssortVO> ivrLibaTargetAssortVOS1 = new ArrayList<>();
-        for (IvrLibaTargetAssortVO ivrLibaTargetAssortVO : ivrLibaTargetAssortVOS) {
-//            if (ivrLibaTargetAssortVO.getPid() != -1) {
-//                continue;
-//            }
-            IvrLibaTargetAssort ivrLibaTargetAssort1 = new IvrLibaTargetAssort();
-            ivrLibaTargetAssort1.setPid(ivrLibaTargetAssortVO.getId());
-            List<IvrLibaTargetAssort> ivrLibaTargetAssorts2 = ivrLibaTargetAssortMapper.selectIvrLibaTargetAssortList(ivrLibaTargetAssort1);
-            if (!Collections.isEmpty(ivrLibaTargetAssorts2)) {
-                ivrLibaTargetAssortVO.setIvrLibaTargetAssortList(ivrLibaTargetAssorts2);
+        for (IvrLibaTargetAssortVO category : ivrLibaTargetAssortVOS) {
+            if (category.getPid() == null || category.getPid() == -1) {
+                // 椤跺眰鑺傜偣
+                rootList.add(category);
+            } else {
+                // 鎵惧埌鐖惰妭鐐癸紝骞舵坊鍔犲埌鍏跺瓙鑺傜偣鍒楄〃
+                IvrLibaTargetAssortVO parent = categoryMap.get(category.getPid());
+                if (parent != null) {
+                    IvrLibaTargetAssort sc = DtoConversionUtils.sourceToTarget(category, IvrLibaTargetAssort.class);
+                    parent.getIvrLibaTargetAssortList().add(sc);
+                }
             }
-            ivrLibaTargetAssortVOS1.add(ivrLibaTargetAssortVO);
         }
-        return ivrLibaTargetAssortVOS1;
+        return rootList;
     }
 
     /**

--
Gitblit v1.9.3