package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.SuppliersDirectoryContentsMapper;
import com.yuanchu.mom.pojo.SuppliersDirectoryContents;
import com.yuanchu.mom.service.SuppliersDirectoryContentsService;
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;
/**
*
* 服务和供应品采购目录 服务实现类
*
*
* @author 芯导软件(江苏)有限公司
* @since 2024-12-17 06:14:51
*/
@Service
public class SuppliersDirectoryContentsServiceImpl extends ServiceImpl implements SuppliersDirectoryContentsService {
@Override
public ArrayList directoryListing() {
ArrayList list = new ArrayList<>();
// 查出一级目录
List firstLevel = baseMapper.selectList(new LambdaQueryWrapper()
.isNull(SuppliersDirectoryContents::getParentId));
// 查出含有父节点的 并通过父节点分组
List seconds = baseMapper.selectList(new LambdaQueryWrapper()
.isNotNull(SuppliersDirectoryContents::getParentId));
if(firstLevel.size() > 0){
Map> collect = seconds.stream()
.collect(Collectors.groupingBy(SuppliersDirectoryContents::getParentId));
// 根据分组的key 赋值对应的children
for (int i = 0; i < firstLevel.size(); i++) {
recursion(firstLevel.get(i),collect);
list.add(firstLevel.get(i));
}
}
return list;
}
@Override
public List