该 SQL 用于查询某个角色关联的所有部门 ID,常用于数据权限控制
- * - * @param roleId 角色ID - * @return 查询部门ID的 SQL 语句字符串 - */ - default String buildDeptByRoleSql(Long roleId) { - return """ - select srd.dept_id from sys_role_dept srd - left join sys_role sr on sr.role_id = srd.role_id - where srd.role_id = %d and sr.status = '0' - """.formatted(roleId); - } - - /** - * 构建 SQL 查询,用于获取当前角色拥有的部门中所有的父部门ID - * - *- * 该 SQL 用于 deptCheckStrictly 场景下,排除非叶子节点(父节点)用。 - *
- * - * @param roleId 角色ID - * @return SQL 语句字符串,查询角色下部门的所有父部门ID - */ - default String buildParentDeptByRoleSql(Long roleId) { - return """ - select parent_id from sys_dept where dept_id in ( - select srd.dept_id from sys_role_dept srd - left join sys_role sr on sr.role_id = srd.role_id - where srd.role_id = %d and sr.status = '0' - ) - """.formatted(roleId); - } - /** * 查询部门管理数据 * @@ -129,15 +99,20 @@ public interface SysDeptMapper extends BaseMapperPlus- * 查询用户所属角色所拥有的菜单权限,用于权限判断、菜单加载等场景 - *
- * - * @param userId 用户ID - * @return SQL 字符串,用于 inSql 条件 - */ - default String buildMenuByUserSql(Long userId) { - return """ - select menu_id from sys_role_menu where role_id in ( - select sur.role_id from sys_user_role sur - left join sys_role sr on sr.role_id = sur.role_id - where sur.user_id = %d and sr.status = '0' - ) - """.formatted(userId); - } - - /** - * 构建角色对应的菜单ID SQL 子查询 - * - *- * 用于根据角色ID查询其所拥有的菜单权限(用于权限标识、菜单显示等场景) - * 通常配合 inSql 使用 - *
- * - * @param roleId 角色ID - * @return 查询菜单ID的 SQL 子查询字符串 - */ - default String buildMenuByRoleSql(Long roleId) { - return """ - select srm.menu_id from sys_role_menu srm - left join sys_role sr on sr.role_id = srm.role_id - where srm.role_id = %d and sr.status = '0' - """.formatted(roleId); - } - - /** - * 构建角色所关联菜单的父菜单ID查询 SQL - * - *- * 用于配合菜单勾选树结构的 {@code menuCheckStrictly} 模式,过滤掉非叶子节点(父菜单), - * 只返回角色实际勾选的末级菜单 - *
- * - * @param roleId 角色ID - * @return SQL 语句字符串(查询菜单的父菜单ID) - */ - default String buildParentMenuByRoleSql(Long roleId) { - return """ - select parent_id from sys_menu where menu_id in ( - select srm.menu_id from sys_role_menu srm - left join sys_role sr on sr.role_id = srm.role_id - where srm.role_id = %d and sr.status = '0' - ) - """.formatted(roleId); - } - /** * 根据用户ID查询权限 * @@ -85,13 +31,16 @@ public interface SysMenuMapper extends BaseMapperPlus