From 566e7986291e73051d30ee252b0ebf852b1577a7 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 02 Apr 2024 14:25:51 +0800
Subject: [PATCH] 娱乐场所标签新增180200

---
 src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java b/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
index 2f5d8d5..37dea46 100644
--- a/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
+++ b/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
@@ -16,17 +16,21 @@
  */
 package org.springblade.modules.label.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.swagger.models.auth.In;
+import org.springblade.common.node.TreeIntegerNode;
 import org.springblade.common.utils.NodeTreeUtil;
 import org.springblade.modules.label.entity.LabelEntity;
-import org.springblade.modules.label.vo.LabelVO;
 import org.springblade.modules.label.mapper.LabelMapper;
 import org.springblade.modules.label.service.ILabelService;
-import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.label.vo.LabelVO;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 标签管理 服务实现类
@@ -44,16 +48,47 @@
 
 	/**
 	 * 标签查询,按父id查询下级
+	 *
 	 * @param label
 	 * @return
 	 */
 	@Override
 	public Object getLabelList(LabelVO label) {
-		return NodeTreeUtil.getNodeTree(baseMapper.getLabelList(label));
+		Map<Integer, TreeIntegerNode> labelList = baseMapper.getLabelList(label);
+		List<Integer> list = new ArrayList<>();
+		// 遍历
+		labelList.forEach((id, treeNode) -> {
+			if (treeNode.getHasChildren()) {
+				list.add(id);
+			}
+		});
+		if (list.size() > 0) {
+			// 查询子集
+			Map<Integer, TreeIntegerNode> childrenLabelList = baseMapper.getChildrenLabelList(list);
+			// 合并集合
+			labelList.putAll(childrenLabelList);
+		}
+		// 处理并返回
+		return NodeTreeUtil.getNodeTree(labelList);
 	}
 
 	@Override
-	public List<LabelVO> tree(LabelEntity label) {
-		return null;
+	public List<TreeIntegerNode> tree(LabelVO label) {
+		Map<Integer, TreeIntegerNode> labelTreeList = baseMapper.getLabelTreeList(label);
+		List<TreeIntegerNode> nodeTree = NodeTreeUtil.getNodeTree(labelTreeList);
+		nodeTree.forEach(node -> recursion(node));
+		return nodeTree;
+	}
+
+	private void recursion(TreeIntegerNode node) {
+		if (node.getChildren() != null && node.getChildren().size() > 0) {
+//			BigDecimal bigDecimal = BigDecimal.valueOf(0);
+//			node.setCount(node.getChildren().stream().map(item -> {
+//				bigDecimal.add(BigDecimal.valueOf(item.getCount()));
+//			}));
+			node.getChildren().forEach(node2 -> recursion(node2));
+		} else {
+			node.setChildren(null);
+		}
 	}
 }

--
Gitblit v1.9.3