三级菜单

public List<PermissionVo> queryPerList() {

        List<PermissionVo> permissionVoList = new ArrayList<>(); //所有菜单
        List<PermissionVo> permissionVos = new ArrayList<>(); //一级菜单

        List<PermissionVo> pmSysPermissionDOList = pmSysGradeDao.queryPerList(); //权限 集合

        //1.获取所有菜单目录
        for (PermissionVo permissionVo : pmSysPermissionDOList) {
            if ("menu".equals(permissionVo.getPermType())) {
                permissionVoList.add(permissionVo);
                ("菜单目录:" + permissionVo.getId() + "---" + permissionVo.getPreCName());
            }
        }
        ("所有 菜单目录个数:" + permissionVoList.size());

        //2.获取 菜单一级目录
        for (PermissionVo permissionVo : pmSysPermissionDOList) {
            if ("0".equals(permissionVo.getParentD())) {
                permissionVos.add(permissionVo);
                ("菜单一级目录:" + permissionVo.getId() + "---" + permissionVo.getPreCName());
            }
        }
        ("菜单一级目录个数:" + permissionVos.size());
        //3.将 二級目录 赋予 一级目录
        for (PermissionVo permissionVo : permissionVos) {
            String id = permissionVo.getId();
            //子菜单集合
            List<PermissionVo> children = new ArrayList<>();
            for (PermissionVo permissMenu : permissionVoList) {
                if (id.equals(permissMenu.getParentD())) {
                    children.add(permissMenu);
                }
                permissionVo.setChildren(children);
            }
            for (PermissionVo permissionChild : children) {
                String id1 = permissionChild.getId();
                //将 三级权限 赋予 二级菜单-------子菜单按钮
                List<PermissionVo> buttons = new ArrayList<>();
                for (PermissionVo permissionButton : pmSysPermissionDOList) {
                    if ("permission".equals(permissionButton.getPermType()) && id1.equals(permissionButton.getParentD())) {
                        buttons.add(permissionButton);
                    }
                }
                permissionChild.setButtons(buttons);
            }
        }
        return permissionVos;
    }

实体

public class PermissionVo {
    //菜单ID
    private String id;
    //菜单中文名
    private String preCName;
    //父级菜单ID
    private String parentD;
    //菜单或按钮
    private String permType;
    //菜单URl
    private String url;
    //子菜单集合
    List<PermissionVo> children;
    //子菜单按钮
    List<PermissionVo> buttons;
    }