jiangping
2025-06-26 2edf3f1fd9505cbdd435524d316e7558b25f6760
server/src/main/java/com/doumee/dao/business/vo/CompanyTree.java
@@ -1,9 +1,14 @@
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;
@@ -17,6 +22,7 @@
    // 保存参与构建树形的所有数据(通常数据库查询结果)
    public List<Company> nodeList = new ArrayList<>();
    public List<CompanyMember> memberList = new ArrayList<>();
    public Integer origin = 0; //0自建 1企微
@@ -28,6 +34,11 @@
    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;
    }
@@ -105,12 +116,21 @@
                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);
@@ -118,5 +138,21 @@
        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;
    }
}