| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response.platformReport; |
| | | |
| | | import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse; |
| | | import lombok.Data; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * åºåæ å½¢ç»æ |
| | | * |
| | | * @Author : JP |
| | | * @create 2024/10/25 10:59 |
| | | */ |
| | | @Data |
| | | public class RegionTreeVO { |
| | | public List<PageRegionInfoResponse> nodeList = new ArrayList<>(); |
| | | |
| | | /** |
| | | * æé æ¹æ³ |
| | | * @param nodeList å°æ°æ®éåèµå¼ç»nodeListï¼å³æææ°æ®ä½ä¸ºææèç¹ã |
| | | */ |
| | | public RegionTreeVO(List<PageRegionInfoResponse> nodeList ){ |
| | | this.nodeList = nodeList; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * è·åéæå»ºçæææ ¹èç¹ï¼é¡¶çº§èç¹ï¼ "0" |
| | | * @return æææ ¹èç¹Listéå |
| | | */ |
| | | public List<PageRegionInfoResponse> getRootNode(){ |
| | | // ä¿åæææ ¹èç¹ï¼æææ ¹èç¹çæ°æ®ï¼ |
| | | List<PageRegionInfoResponse> rootNodeList = new ArrayList<>(); |
| | | // treeNodeï¼æ¥è¯¢åºçæ¯ä¸æ¡æ°æ®ï¼èç¹ï¼ |
| | | for (PageRegionInfoResponse treeNode : nodeList){ |
| | | // 夿å½åèç¹æ¯å¦ä¸ºæ ¹èç¹ï¼æ¤å¤æ³¨æï¼è¥parentIdç±»åæ¯Stringï¼åè¦éç¨equals()æ¹æ³å¤æã |
| | | if (Objects.isNull(treeNode.getParentIndexCode()) |
| | | || StringUtils.equals(treeNode.getParentIndexCode(),"null") |
| | | || !isValidParentCode(treeNode.getParentIndexCode(),nodeList)) { |
| | | // æ¯ï¼æ·»å |
| | | rootNodeList.add(treeNode); |
| | | } |
| | | |
| | | } |
| | | return rootNodeList; |
| | | } |
| | | |
| | | private boolean isValidParentCode(String parentIndexCode, List<PageRegionInfoResponse> nodeList) { |
| | | for (PageRegionInfoResponse treeNode : nodeList){ |
| | | // 夿å½åèç¹æ¯å¦ä¸ºæ ¹èç¹ï¼æ¤å¤æ³¨æï¼è¥parentIdç±»åæ¯Stringï¼åè¦éç¨equals()æ¹æ³å¤æã |
| | | if ( StringUtils.equals(treeNode.getIndexCode(),parentIndexCode)) { |
| | | return true; |
| | | } |
| | | |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * æ ¹æ®æ¯ä¸ä¸ªé¡¶çº§èç¹ï¼æ ¹èç¹ï¼è¿è¡æå»ºæ å½¢ç»æ |
| | | * @return æå»ºæ´æ£µæ |
| | | */ |
| | | public List<PageRegionInfoResponse> buildTree(){ |
| | | // treeNodesï¼ä¿åä¸ä¸ªé¡¶çº§èç¹ææå»ºåºæ¥ç宿´æ å½¢ |
| | | List<PageRegionInfoResponse> treeNodes = new ArrayList<PageRegionInfoResponse>(); |
| | | getRootNode();//ï¼è·åææçæ ¹èç¹ |
| | | for (PageRegionInfoResponse treeRootNode : getRootNode()) { |
| | | // å°é¡¶çº§èç¹è¿è¡æå»ºåæ |
| | | treeRootNode = buildChildTree(treeRootNode); |
| | | // 宿ä¸ä¸ªé¡¶çº§èç¹ææå»ºçæ å½¢ï¼å¢å è¿æ¥ |
| | | treeNodes.add(treeRootNode); |
| | | } |
| | | return treeNodes; |
| | | } |
| | | |
| | | /** |
| | | * éå½-----æå»ºåæ å½¢ç»æ |
| | | * @param pNode æ ¹èç¹ï¼é¡¶çº§èç¹ï¼ |
| | | * @return æ´æ£µæ |
| | | */ |
| | | public PageRegionInfoResponse buildChildTree(PageRegionInfoResponse pNode){ |
| | | List<PageRegionInfoResponse> childTree = new ArrayList<>(); |
| | | // nodeListï¼ææèç¹éåï¼æææ°æ®ï¼ |
| | | for (PageRegionInfoResponse treeNode : nodeList) { |
| | | // 夿å½åèç¹çç¶èç¹IDæ¯å¦çäºæ ¹èç¹çIDï¼å³å½åèç¹ä¸ºå
¶ä¸çåèç¹ |
| | | if (!Objects.isNull(treeNode.getParentIndexCode())&&treeNode.getParentIndexCode().equals(pNode.getIndexCode())) { |
| | | // åéå½è¿è¡å¤æå½åèç¹çæ
åµï¼è°ç¨èªèº«æ¹æ³ |
| | | childTree.add(buildChildTree(treeNode)); |
| | | } |
| | | } |
| | | // for循ç¯ç»æï¼å³èç¹ä¸æ²¡æä»»ä½èç¹ï¼æ å½¢æå»ºç»æï¼è®¾ç½®æ ç»æ |
| | | pNode.setChildList(childTree); |
| | | return pNode; |
| | | } |
| | | |
| | | |
| | | } |