mapper实现对应接口,和sql语句的拼写

public interface MenuMapper {//由于前台于后台字段名不一样,另外我们只需要前台显现的数据//aid,属于角色表中的//pid可以权限表中 的,可以分类不同的功能模块(管理)@Select("select mid,mname title,url href from t_menu where mid in (select mid from t_role_menu where rid in(select rid from t_admin_role where aid = #{param1})) and pid =#{param2}")List<TreeMenu> selectTree(int aid,int pid);}

实体类是因为前后台的显示的字段名不一致,所以另外创建了一个类,但在sql中起别名的方式,保存到数据库

因为使用的是layui的方式,它使用的是键值对的方式进行传输的

所以service创建接口的时候,使用的是map的方式:

public interface MenuService {//因为一级模块和二级模块的key不一样,可以在单独创建一个类保存,同时也可以使用map方法Map<String,Object> findTree(int aid);}

实现类:

@Service
public class MenuServiceImpl implements MenuService{@Autowired
private MenuMapper menuMapper;@Overridepublic Map<String, Object> findTree(int aid) {//一级菜单List<TreeMenu> listOne = menuMapper.selectTree(aid,0);//将集合遍历,取出一级菜单下的pid,作为二级菜单的midfor (TreeMenu t:listOne) {Integer mid = t.getMid();//把一级菜单的mid变成二级菜单的pidList<TreeMenu> listTwo = menuMapper.selectTree(aid, mid);//System.out.println(listTwo);t.setChild(listTwo);//把二级菜单保存到一级菜单中}//System.out.println("----------");//System.out.println(listOne);//以上总体可以得到前端页面中的menuInfo,但是logoInfo和homeInfo得不到,但是可以通过map进行设置Map<String ,Object> map = new HashMap<>();//应该保存到数据库中,但是因为不经常使用,所以直接写在代码中//再前端页面中,还有两个需要设置logoInfo、homeInfomap.put("homeInfo",new TreeMenu("首页","page/welcome-2.html",""));map.put("logoInfo",new TreeMenu("Tingyu主持人","index.html","images/logo.png"));//把获取到的菜单指定前端的key中,value的值就是获得菜单map.put("menuInfo",listOne);return map;}
}

controller:

@RestController
@RequestMapping("/MenuController")
//@RestController代表整个类都是post请求
public class MenuController  {@Autowiredprivate MenuService menuService;//实现用户的权限,本质就是获得用户的aid,然后拿着这个aid去后台进行验证,获取用户的aid,可以再登录验证时,将用户的数据保存到session中@RequestMapping("/findTree")public Map<String,Object> findTree(HttpSession session){Admin admin = (Admin) session.getAttribute("admin");//System.out.println(admin.getAid());//获取用户的aidreturn menuService.findTree(admin.getAid());}}

maven实现RBAC权限管理,实现不同角色下对应不同菜单相关推荐

  1. nest-mysql:RBAC权限管理

    文章问题导向 RBAC权限管理是什么?如何设计数据库?如何实现? 如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案 阅前必知 阅读此文,需要有一定的数据库知识 此文并非最佳实践,只能 ...

  2. RBAC权限管理设计思想

    RBAC权限管理设计 一.概述 二.权限模型 三.RBAC模型 什么是RBAC模型 基本模型RBAC0 角色分层模型RBAC1 角色限制模型RBAC2 统一模型RBAC3 基于RBAC的延展--用户组 ...

  3. RBAC权限管理设计

    RBAC权限管理设计 一.RBAC组成 1. RBAC 2. RBAC组成 3. RBAC支持的安全原则 4. RBAC的优缺点 二.RBAC权限分配 1. RBAC的功能模块 2. RBAC权限分配 ...

  4. php rbac实现,php实现rbac权限管理

    php实现rbac权限管理 介绍: RBAC(Role-Based Access Control)基于角色的权限管理方式. RBAC的最大特征就是将权限跟角色挂钩,用户又跟角色挂钩. 优点: ①管理维 ...

  5. rbac权限管理表mysql_RBAC权限管理数据库表小解

    TP2.0版本就已经支持扩展RBAC权限管理,也有对应的demo,Rbac权限管理在Examples目录下面. RBAC扩展库核心文件则可以在ThinkPHP/Lib/ORG/Util下面找到,查看源 ...

  6. Java Web RBAC权限管理

    前言 权限管理是在项目中经常要使用到的模块,有着极其重要的功能.比较出名的权限框架,分别为 Shiro 和 Spring Security,两者各有优缺,这次我们不用任何权限框架来实现 RBAC 权限 ...

  7. Vue3 实现 RBAC 权限管理

    Vue3 实现 RBAC 权限管理 RBAC的基本概念 RBAC本质上就是一个授权的过程通过 用户 -> 角色---->资源 为啥要用RBAC 一个系统中用户是非常多的,对于不同的用户,展 ...

  8. kubernetes(k8s)之rbac权限管理详解

    kubernetes(k8s)之rbac权限管理详解 RBAC简介 RBAC(Role-Based Access Control) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 ...

  9. php中rbac三张表的关系,thinkPHP的RBAC权限管理

    thinkPHP的RBAC权限管理 如何进行thinkPHP的rbac权限管理呢?下面是由百分网小编为大家整理的thinkPHP的RBAC权限管理,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业 ...

  10. 在Egg.js中实现RBAC权限管理

    什么是RBAC? RBAC是基于角色的权限访问控制,在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限,也就是说权限是和角色绑定在一起的. RBAC权限管理树形图 角色管理 ...

最新文章

  1. php单例模式实现对象只被创建一次 mysql单例操作类
  2. 安装Oracle Database 11g 找不到文件“WFMLRSVCApp.ear” .
  3. 模板方法及策略设计模式实践
  4. 基础运维:shell入门
  5. 使用vue-amap
  6. EasyNVR内网摄像机接入网关+EasyNVS云端管理平台,组件起一套轻量级类似于企业级萤石云的解决方案...
  7. html li 做瀑布流,js实现瀑布流效果(自动生成新的内容)
  8. IE 加速插件之 Google Chrome Frame
  9. 【汇编语言】多模块程序结构
  10. Auto layout 的使用
  11. 数字图像处理与分析_图像增强
  12. 如何给计算机安装驱动程序,电脑系统怎么安装驱动程序
  13. python除数为0报错_Python3报错-Python入门到精通
  14. malloc、calloc、realloc函数
  15. 赛迪网:VMware访谈实录
  16. 【ES】CURL在windows中对ElasticSearch的一些简单的操作
  17. 字节数组与String类型的转换
  18. 那些辉煌的背后, 不知装载了多少苦涩
  19. plupload上传例子
  20. android监控手机使用次数,原来手机还自带监控功能,手机使用记录一清二楚,赖也赖不掉...

热门文章

  1. 【三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1270期】
  2. python用缩进来写模块_进击python第一篇:相遇
  3. 正确的特征点匹配对_了解如何正确选择特征
  4. detr 历史解析代码_视觉/ DETR变压器
  5. Python 安装skimage即Scikit-Image
  6. java 邮件内嵌图片_(二)JavaMail创建包含内嵌图片的邮件
  7. 三维散点图加colorbar
  8. 360无痕浏览器_功能强大好用的浏览器
  9. arraycolumn php5.4以下怎么用,兼容php5.4和更低版本php的array_column公共方法
  10. axvspan函数--Matplotlib