Helius
2021-09-16 4d80b819948366cb0754369b1bea5e0e83cf6af1
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
47
48
49
50
51
52
53
<?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="cc.mrbird.febs.system.mapper.MenuMapper">
    <resultMap id="menu" type="cc.mrbird.febs.system.entity.Menu">
        <id column="MENU_ID" jdbcType="DECIMAL" property="menuId" />
        <result column="PARENT_ID" jdbcType="DECIMAL" property="parentId" />
        <result column="MENU_NAME" jdbcType="VARCHAR" property="menuName" />
        <result column="URL" jdbcType="VARCHAR" property="url" />
        <result column="PERMS" jdbcType="VARCHAR" property="perms" />
        <result column="ICON" jdbcType="VARCHAR" property="icon" />
        <result column="TYPE" jdbcType="CHAR" property="type" />
        <result column="ORDER_NUM" jdbcType="DECIMAL" property="orderNum" />
        <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" />
        <result column="MODIFY_TIME" jdbcType="TIMESTAMP" property="modifyTime" />
    </resultMap>
 
    <select id="findUserPermissions" resultMap="menu">
        SELECT
            m.perms
        FROM
            t_role r
        LEFT JOIN t_user_role ur ON (r.role_id = ur.role_id)
        LEFT JOIN t_user u ON (u.user_id = ur.user_id)
        LEFT JOIN t_role_menu rm ON (rm.role_id = r.role_id)
        LEFT JOIN t_menu m ON (m.menu_id = rm.menu_id)
        WHERE
            u.username = #{username}
        AND m.perms is not null
        AND m.perms &lt;&gt; ''
    </select>
 
    <select id="findUserMenus" resultMap="menu">
        SELECT
            m.*
        FROM
            t_menu m
        WHERE
            m.type &lt;&gt; 1
        AND m.MENU_ID IN (
            SELECT DISTINCT
                rm.menu_id
            FROM
                t_role_menu rm
            LEFT JOIN t_role r ON (rm.role_id = r.role_id)
            LEFT JOIN t_user_role ur ON (ur.role_id = r.role_id)
            LEFT JOIN t_user u ON (u.user_id = ur.user_id)
            WHERE
                u.username = #{username}
        )
        ORDER BY
          m.order_num
    </select>
</mapper>