提示:仅作为个人学习笔记
文章目录
- 7.1 根据用户id查询菜单列表
- 前言
- 一、菜单列表功能点
- 二、实现
- 1.sql
- 2.各层实现
- 2.1 controller
- 2.2 service
- 2.3 mapper
- 三、测试
- 总结
前言
无
一、菜单列表功能点
- 菜单涉及权限,不同权限用户显示菜单列表不同
- 用户id从SecurityContextHolder中取(等了解spring-security后修改)
- 多级菜单列,父子级关系
- 涉及多表查询
代码如下(示例):
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
2.2 service
@Service public class MenuServiceImpl extends ServiceImpl2.3 mapperimplements IMenuService { @Autowired private MenuMapper menuMapper; @Override public List
List
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



