Files
xtools-app/xtools-app-sys/xtools-app-sys-biz/src/main/resources/mapper/SysMenuMapper.xml
T
2026-04-21 16:12:04 +08:00

65 lines
2.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xtools.app.sys.mapper.SysMenuMapper">
<!-- 根据角色 ID 查询菜单列表 -->
<select id="getMenuByRoleIds" resultType="xtools.app.sys.model.entity.SysMenu">
SELECT
DISTINCT
sm.id,
sm.parent_id,
sm.tree_path,
sm.menu_name,
sm.menu_type,
sm.menu_icon,
sm.route_name,
sm.route_path,
sm.component,
sm.menu_visible,
sm.menu_cache
FROM
sys_menu sm
LEFT JOIN sys_role_menu srm ON sm.id = srm.menu_id
<where>
AND sm.menu_type IN ('C', 'M')
<if test="roleIds != null and roleIds.size() > 0">
AND srm.role_id IN
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
</if>
</where>
ORDER BY
sm.sort,
sm.gmt_create DESC
</select>
<!-- 根据角色 ID 获取按钮权限列表 -->
<select id="getBtnPermByRoleIds" resultType="xtools.app.sys.model.entity.SysMenu">
SELECT
DISTINCT
sm.btn_perm
FROM
sys_menu sm
LEFT JOIN sys_role_menu srm ON sm.id = srm.menu_id
<where>
AND sm.menu_type = 'B'
<if test="roleIds != null and roleIds.size() > 0">
AND srm.role_id IN
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
</if>
</where>
</select>
<!-- 获取接口权限列表 -->
<select id="getSysInterfacePerm" resultType="xtools.app.sys.model.entity.SysInterfacePerm">
SELECT sm.interface_perm_type type,
sm.interface_perm_uri uri,
GROUP_CONCAT(srm.role_id SEPARATOR ',') AS roleIds
FROM sys_menu sm
LEFT JOIN sys_role_menu srm ON sm.id = srm.menu_id
WHERE sm.menu_type = 'I'
GROUP BY sm.id
</select>
</mapper>