| | |
| | | */ |
| | | 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; |
| | | |
| | | /** |
| | | * 标签管理 服务实现类 |
| | |
| | | |
| | | /** |
| | | * 标签查询,按父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); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 查询人员标签(不包含人这一级) |
| | | * @param label |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TreeIntegerNode> getPersonLabelList(LabelVO label) { |
| | | Map<Integer, TreeIntegerNode> labelTreeList = baseMapper.getPersonLabelList(label); |
| | | List<TreeIntegerNode> nodeTree = NodeTreeUtil.getNodeTree(labelTreeList); |
| | | nodeTree.forEach(node -> recursion(node)); |
| | | return nodeTree; |
| | | } |
| | | } |