java樹形菜單實現


java樹形菜單實現

 公司表:

 

部門表:

 實體類:

public class Node {
    private Integer companyId;//公司id
    private String companyName;//公司名字
    private Integer departId;//部門id
    private String parentId;
    private String departName;//部門名字
    private List<Node> children; //父節點的子類

   get/set.............
}

 

樹形節點工具類:

package com.dengwei.day01springboot.utils;

import com.dengwei.day01springboot.model.Node;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author
 * @ClassName TreeUtile
 * @Description TODO
 * @Date 2018/10/30 0030 下午 11:29
 * @Version 1.0
 */
public class TreeUtile {
/**
 * @Author 
 * @Description //TODO 
 * @Date 2018/10/31 0031 上午 12:02
 * @Param nodes :所有的節點列表
 * @return
 */
    public List data(List<Node> nodes) {
        ArrayList<Node> rootNode = new ArrayList<>();
             for(Node node:nodes){
                  if(node.getParentId().equals("0")){
                        rootNode.add(node);
                  }
             }
             for(Node node:rootNode){
                 List<Node> child = getChild(String.valueOf(node.getDepartId()), nodes);
                 node.setChildren(child);
             }
             return rootNode;
    }


    /**
     * @return
     * @Author
     * @Description //TODO 獲取根節點的子節點
     * @Date 2018/10/30 0030 下午 11:37
     * @Param
     */
    public List<Node> getChild(String id, List<Node> allNode) {
        //存放子菜單的集合
        ArrayList<Node> listChild = new ArrayList<>();
        for (Node node : allNode) {
            if (node.getParentId().equals(id)) {
                listChild.add(node);
            }
        }
        //遞歸:
        for (Node node : listChild) {
            node.setChildren(getChild(String.valueOf(node.getDepartId()), allNode));
        }
        if (listChild.size() == 0) {
            return null;
        }
        return listChild;
    }
}

 controller使用:

 dao:

 

 

 mapper:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM