栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

7.1 根据用户id查询菜单列表

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

7.1 根据用户id查询菜单列表

7.1 根据用户id查询菜单列表

提示:仅作为个人学习笔记


文章目录
  • 7.1 根据用户id查询菜单列表
  • 前言
  • 一、菜单列表功能点
  • 二、实现
    • 1.sql
    • 2.各层实现
      • 2.1 controller
      • 2.2 service
      • 2.3 mapper
  • 三、测试
  • 总结


前言

无


一、菜单列表功能点
  • 菜单涉及权限,不同权限用户显示菜单列表不同
  • 用户id从SecurityContextHolder中取(等了解spring-security后修改)
  • 多级菜单列,父子级关系
  • 涉及多表查询
二、实现 1.sql

代码如下(示例):

select 
DISTINCT
m1.*,
m2.id as id2,
m2.url as url2,
m2.path as path2,
m2.component as component2,
m2.`name` as `name2`,
m2.iconCls as iconCls2,
m2.keepAlive as keepAlive2,
m2.requireAuth as requireAuth2,
m2.parentId as parentId2,
m2.enabled as enabled2
FROM
t_menu as m1,
t_menu as m2,
t_admin_role as ar,
t_menu_role as mr
where 
m1.id = m2.parentId
and  m2.id = mr.mid
and mr.rid = ar.rid
and ar.adminId = 3
AND m2.enabled = TRUE;

2.各层实现 2.1 controller

因用户id的获取不需要从前台单独传入,后端从安全对象中获取即可

@RestController
@RequestMapping("/system/cfg")
public class MenuController {
    @Autowired
    private IMenuService iMenuService;

    @ApiOperation(value = "通过用户id查询菜单列表")
    @GetMapping("/menu")
    public List getMenusByAdminId(){
        return iMenuService.getMenusByAdminId();
    }
}
2.2 service
@Service
public class MenuServiceImpl extends ServiceImpl implements IMenuService {
    @Autowired
    private MenuMapper menuMapper;

    @Override
    public List getMenusByAdminId() {
        return menuMapper.getMenusByAdminId(((Admin) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getId());
    }
}
2.3 mapper
List getMenusByAdminId(Integer id);

sql xml





    
    
        
        
        
        
        
        
        
        
        
        
    

    
        
            
            
            
            
            
            
            
            
            
            
        
    
    
    
        id, url, path, component, name, iconCls, keepAlive, requireAuth, parentId, enabled
    

    
        select
            DISTINCT
            m1.*,
            m2.id as id2,
            m2.url as url2,
            m2.path as path2,
            m2.component as component2,
            m2.`name` as `name2`,
            m2.iconCls as iconCls2,
            m2.keepAlive as keepAlive2,
            m2.requireAuth as requireAuth2,
            m2.parentId as parentId2,
            m2.enabled as enabled2
            FROM
            t_menu as m1,
            t_menu as m2,
            t_admin_role as ar,
            t_menu_role as mr

            where

            m1.id = m2.parentId
            and  m2.id = mr.mid
            and mr.rid = ar.rid
            and ar.adminId = #{id}
            AND m2.enabled = TRUE;
    



三、测试

提示:要先登录

总结

需要学习spring security 与jwt

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号