权限管理表设计
核心代码实现
01权限管理表设计后台权限无非就是涉及到一个菜单资源和每个菜单资源能够被哪些角色所访问,根据这个思路我们来画一下大致的表设计思路
上面是大致的建表思路,如果想要更为详细的建表语句私信;
02核心代码实现树状菜单的实现主要核心的地方一个是递归算法一个是返回的数据结构.
返回的数据结构如下:
publicclassMenuTree{privateStringid;privateStringname;privateinttype;privateStringhref;privateListMenuTreechildren;publicvoidinitChild(){if(this.children==null){this.children=newArrayList();}}}
递归算法大概如下:
publicListMenuTreegetRootMenu(intrid){MapString,Objectmap=newHashMap();//所有pid为0的是最外层的根节点;map.put("pid","0");map.put("rid",rid);//查询出所有的根节点的数据ListMenumenus=menuMapper.getMenuByRole(map);ListMenuTreelist=newArrayList();for(Menumenu:menus){MenuTreemenuTree=newMenuTree();menuTree.setId(menu.getId()+"");menuTree.setHref(menu.getUrl());menuTree.setName(menu.getName());list.add(menuTree);getChildMenu(menuTree,rid);}returnlist;}
publicvoidgetChildMenu(MenuTreemenuTree,intrid){Stringid=menuTree.getId();MapString,Objectmap=newHashMap(16);map.put("pid",id);map.put("rid",rid);ListMenumenus=menuMapper.getMenuByRole(map);for(Menumenu:menus){menuTree.initChild();MenuTreemenuTree1=newMenuTree();menuTree1.setId(menu.getId()+"");menuTree1.setHref(menu.getUrl());menuTree1.setName(menu.getName());menuTree.getChildren().add(menuTree1);getChildMenu(menuTree1,rid);}}
1:点击下方