liusheng
9 天以前 9cc2f53b11205309754c2451be061ef5fc337f32
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);
        //将pid为空的,过滤掉
        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;
    }
    /**