From e4e220916dd2a4aa649a9b0162e5b5ed0dc9d7e5 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 20 五月 2025 10:36:54 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java | 55 ++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 38 insertions(+), 17 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java index 1bcf5e7..1fab7ca 100644 --- a/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java @@ -15,9 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -52,23 +50,46 @@ @Override public List<SvyLibScriptCategoryVO> selectSvyLibScriptCategoryList(SvyLibScriptCategory svyLibScriptCategory) { List<SvyLibScriptCategory> svyLibScriptCategories = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory); - //灏唒id涓虹┖鐨勶紝杩囨护鎺� - svyLibScriptCategories = svyLibScriptCategories.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList()); +//// //灏唒id涓虹┖鐨勶紝杩囨护鎺� +// svyLibScriptCategories = svyLibScriptCategories.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList()); +// +// List<SvyLibScriptCategoryVO> SvyLibScriptCategoryVO = DtoConversionUtils.sourceToTarget(svyLibScriptCategories, SvyLibScriptCategoryVO.class); +// //閬嶅巻鏌ュ嚭鏉ョ殑鏁版嵁锛岄�氳繃 id=pid 鑾峰彇浠栦滑鐨勫瓙鏁版嵁 +// for (SvyLibScriptCategoryVO svyLibScriptCategoryVO : SvyLibScriptCategoryVO) { +// if (svyLibScriptCategoryVO.getPid() != null) { +// continue; +// } +// SvyLibScriptCategory svyLibScriptCategory1 = new SvyLibScriptCategory(); +// svyLibScriptCategory1.setPid(svyLibScriptCategoryVO.getId()); +// List<SvyLibScriptCategory> svyLibScriptCategories1 = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory1); +// if (!Collections.isEmpty(svyLibScriptCategories1)) { +// svyLibScriptCategoryVO.setSvyLibScriptCategoryList(svyLibScriptCategories1); +// } +// } + List<SvyLibScriptCategoryVO> svyLibScriptCategoryVOS = DtoConversionUtils.sourceToTarget(svyLibScriptCategories, SvyLibScriptCategoryVO.class); - List<SvyLibScriptCategoryVO> SvyLibScriptCategoryVO = DtoConversionUtils.sourceToTarget(svyLibScriptCategories, SvyLibScriptCategoryVO.class); - //閬嶅巻鏌ュ嚭鏉ョ殑鏁版嵁锛岄�氳繃 id=pid 鑾峰彇浠栦滑鐨勫瓙鏁版嵁 - for (SvyLibScriptCategoryVO svyLibScriptCategoryVO : SvyLibScriptCategoryVO) { - if (svyLibScriptCategoryVO.getPid() != null) { - continue; - } - SvyLibScriptCategory svyLibScriptCategory1 = new SvyLibScriptCategory(); - svyLibScriptCategory1.setPid(svyLibScriptCategoryVO.getId()); - List<SvyLibScriptCategory> svyLibScriptCategories1 = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory1); - if (!Collections.isEmpty(svyLibScriptCategories1)) { - svyLibScriptCategoryVO.setSvyLibScriptCategoryList(svyLibScriptCategories1); + List<SvyLibScriptCategoryVO> rootList = new ArrayList<>(); + Map<Long, SvyLibScriptCategoryVO> categoryMap = new HashMap<>(); + + // 寤虹珛id->瀵硅薄鐨勬槧灏� + for (SvyLibScriptCategoryVO category : svyLibScriptCategoryVOS) { + categoryMap.put(category.getId(), category); + } + + for (SvyLibScriptCategoryVO category : svyLibScriptCategoryVOS) { + if (category.getPid() == null || category.getPid() == -1) { + // 椤跺眰鑺傜偣 + rootList.add(category); + } else { + // 鎵惧埌鐖惰妭鐐癸紝骞舵坊鍔犲埌鍏跺瓙鑺傜偣鍒楄〃 + SvyLibScriptCategoryVO parent = categoryMap.get(category.getPid()); + if (parent != null) { + SvyLibScriptCategory sc = DtoConversionUtils.sourceToTarget(category, SvyLibScriptCategory.class); + parent.getSvyLibScriptCategoryList().add(sc); + } } } - return SvyLibScriptCategoryVO; + return rootList; } /** -- Gitblit v1.9.3