skyouc
2025-04-29 669fe984048785873c20fbd0ce8abb3cd52c1fce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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="com.vincent.rsf.server.system.mapper.RoleMenuMapper">
 
    <select id="listMenuByUserId" resultType="com.vincent.rsf.server.system.entity.Menu">
        SELECT DISTINCT sm.*
        FROM sys_menu sm
        JOIN sys_role_menu srm ON sm.id = srm.menu_id
        JOIN sys_user_role sur ON srm.role_id = sur.role_id
        JOIN sys_role sr ON sur.role_id = sr.id
        WHERE 1=1
        <if test="type != null">
            AND sm.type = #{type}
        </if>
        AND sur.user_id = #{userId}
        AND sr.deleted = 0
        AND sm.deleted = 0
        ORDER BY sm.sort
    </select>
 
    <select id="listStrictlyMenuByRoleId" resultType="java.lang.Long">
        select sm.id
        from sys_menu sm
        left join sys_role_menu srm on sm.id = srm.menu_id
        where 1=1
        and sm.deleted = 0
        and srm.role_id = #{roleId}
        <!--
        and sm.id not in (
            select sm.parent_id
            from sys_menu sm
            inner join sys_role_menu srm on sm.id = srm.menu_id
            and srm.role_id = #{roleId}
        )
        -->
        order by sm.sort
    </select>
 
</mapper>