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:

猜你喜欢

转载自www.cnblogs.com/dw3306/p/9880454.html
今日推荐