| | |
| | | package com.doumee.dao.business.vo; |
| | | |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.dao.business.model.Company; |
| | | import com.doumee.dao.business.model.CompanyMember; |
| | | import com.doumee.dao.business.model.Member; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.yaml.snakeyaml.scanner.Constant; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collection; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | |
| | | |
| | | // 保存参与构建树形的所有数据(通常数据库查询结果) |
| | | public List<Company> nodeList = new ArrayList<>(); |
| | | public List<CompanyMember> memberList = new ArrayList<>(); |
| | | |
| | | public Integer origin = 0; //0自建 1企微 |
| | | |
| | |
| | | public CompanyTree(List<Company> nodeList, Integer origin){ |
| | | this.nodeList = nodeList; |
| | | this.origin = origin; |
| | | } |
| | | public CompanyTree(List<Company> nodeList, Integer origin, List<CompanyMember> memberList ){ |
| | | this.nodeList = nodeList; |
| | | this.origin = origin; |
| | | this.memberList=memberList; |
| | | } |
| | | |
| | | |
| | |
| | | if (!Objects.isNull(treeNode.getParentId())&&treeNode.getParentId().equals(pNode.getId())) { |
| | | // 再递归进行判断当前节点的情况,调用自身方法 |
| | | childTree.add(buildChildTree(treeNode)); |
| | | |
| | | } |
| | | } |
| | | } |
| | | // for循环结束,即节点下没有任何节点,树形构建结束,设置树结果 |
| | | pNode.setChildList(childTree); |
| | | if(childTree == null || childTree.size() ==0){ |
| | | List<Company> memberList = getMemberNode(pNode.getId()); |
| | | if(memberList!=null && memberList.size()>0){ |
| | | if(pNode.getChildList() == null){ |
| | | pNode.setChildList(memberList); |
| | | }else{ |
| | | pNode.getChildList().addAll(memberList); |
| | | } |
| | | } |
| | | if( pNode.getChildList() == null || pNode.getChildList().size() ==0){ |
| | | pNode.setHasChildren(Boolean.FALSE); |
| | | }else{ |
| | | pNode.setHasChildren(Boolean.TRUE); |
| | |
| | | return pNode; |
| | | } |
| | | |
| | | private List<Company> getMemberNode(Integer id) { |
| | | List<Company> companyList = new ArrayList<>(); |
| | | if(memberList!=null && memberList.size()>0){ |
| | | for(CompanyMember member :memberList){ |
| | | if(member.getCompanyId()!=null && Constants.equalsInteger(member.getCompanyId(),id)){ |
| | | Company com = new Company(); |
| | | com.setObjType(Constants.ONE); |
| | | com.setName(member.getMemberName()); |
| | | com.setMemberId(member.getMemberId()); |
| | | companyList.add(com); |
| | | } |
| | | } |
| | | } |
| | | return companyList; |
| | | } |
| | | |
| | | |
| | | } |