1 Star 2 Fork 3

Rey Wong / 最佳实践

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
纵表变树结构.md 1.77 KB
一键复制 编辑 原始数据 按行查看 历史
wr090097 提交于 2021-08-13 10:24 . 添加文档

纵表变树结构

代码

纵表实体

  • Menu.java
import lombok.Data;

@Data
public class Menu {
    //菜单ID
    private Long privilegeId;
    //菜单链接
    private String url;
    //当前菜单code
    private String privilegeCode;
    //当前菜单名称
    private String privilegeName;
    //父菜单code
    private String parentCode;
    //是否显示菜单
    private String displayOrder;
    //菜单类型
    private Integer menuType;
    //子菜单列表
    private List<Menu> children;
}

生成树结构


      /**
       * 根据parentCode获取子菜单想
       *
       * @param parentCode  父菜单code
       * @param queryAllMenuEntityList 子菜单列表
       * @return
       */
      private List<Menu> getSubMenu(String parentCode, List<Menu> queryAllMenuEntityList) {
          if (queryAllMenuEntityList != null) {
              List<Menu> childrenMenu = new ArrayList<>();
              for (QueryAllMenuEntity queryAllMenuEntity : queryAllMenuEntityList) {
                  if (queryAllMenuEntity.getParentCode().equalsIgnoreCase(parentCode)) {
                      childrenMenu.add(queryAllMenuEntity);
                  }
              }
              for (Menu menu : childrenMenu) {
                  menu.setChildren(getSubMenu(menu.getCode(), queryAllMenuEntityList));
              }
              return childrenMenu;
          } else {
              return null;
          }
      }

    
   //获取菜单树
   public List<Menu> getTreeMenu(){
      //从表中获取纵表菜单数据
      List<Menu> allMenuEntityList = menuService.leftMenu(userCode);
      //构建菜单树 rootMenuCode 根菜单code
      List<Menu> menuTree = getSubMenu(rootMenuCode, allMenuEntityList);
      
      return menuTree;
   }
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/reywong/best_practices.git
git@gitee.com:reywong/best_practices.git
reywong
best_practices
最佳实践
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891