skyouc
2024-12-21 c635d78b479510ebe2556a420948effcd30a0731
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
40
41
42
43
44
45
46
<?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.zy.asrs.wms.system.mapper.RoleMenuMapper">
 
    <select id="listMenuByUserId" resultType="com.zy.asrs.wms.system.entity.Menu">
        select * from sys_menu
        where 1=1
        <if test="type != null">
            AND type = #{type}
        </if>
        <if test="hostId != null">
            AND host_id = #{hostId}
        </if>
        and deleted = 0
        <if test="userId != null">
            and id in (
            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 sur.role_id = sr.id
            where 1=1
            and sur.user_id = #{userId}
            and sr.deleted = 0
            )
            )
        </if>
        order by 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>