| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | @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; |
| | | 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); |
| | | } |
| | | } |
| | | IvrLibaTargetAssort ivrLibaTargetAssort1 = new IvrLibaTargetAssort(); |
| | | ivrLibaTargetAssort1.setPid(ivrLibaTargetAssortVO.getId()); |
| | | List<IvrLibaTargetAssort> ivrLibaTargetAssorts2 = ivrLibaTargetAssortMapper.selectIvrLibaTargetAssortList(ivrLibaTargetAssort1); |
| | | if (!Collections.isEmpty(ivrLibaTargetAssorts2)) { |
| | | ivrLibaTargetAssortVO.setIvrLibaTargetAssortList(ivrLibaTargetAssorts2); |
| | | } |
| | | ivrLibaTargetAssortVOS1.add(ivrLibaTargetAssortVO); |
| | | } |
| | | return ivrLibaTargetAssortVOS1; |
| | | return rootList; |
| | | } |
| | | |
| | | /** |