86183
2022-09-09 0d999e33085c0a25c5525242748f6aa62a401159
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?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="cn.mb.cloud.auth.security.mapper.SysUserMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="baseResultMap" type="cn.mb.cloud.common.api.vo.UserVO">
        <id column="id" property="id"/>
        <result column="username" property="username"/>
        <result column="password" property="password"/>
        <result column="phone" property="phone"/>
        <result column="avatar" property="avatar"/>
        <result column="wx_openid" property="wxOpenid"/>
        <result column="qq_openid" property="qqOpenid"/>
        <result column="lock_flag" property="lockFlag"/>
        <result column="del_flag" property="delFlag"/>
        <result column="deptId" property="deptId"/>
        <result column="deptName" property="deptName"/>
    </resultMap>
 
    <sql id="userRoleSql">
        `user`.id,
        `user`.username,
        `user`.`password`,
        `user`.salt,
        `user`.phone,
        `user`.avatar,
        `user`.wx_openid,
        `user`.qq_openid,
        `user`.dept_id,
        `user`.del_flag AS del_flag,
        `user`.lock_flag AS lock_flag,
        `user`.dept_id AS deptId,
        r.id as role_id,
        r.role_name,
        r.role_code,
        r.role_desc
    </sql>
 
    <sql id="userRoleDeptSql">
        `user`.id,
        `user`.username,
        `user`.`password`,
        `user`.salt,
        `user`.phone,
        `user`.avatar,
        `user`.wx_openid,
        `user`.qq_openid,
        `user`.del_flag AS del_flag,
        `user`.lock_flag AS lock_flag,
        r.id as role_id,
        r.role_name,
        r.role_code,
        r.role_desc,
        d.name AS deptName,
        d.dept_id AS deptId
    </sql>
 
    <select id="getUserVoByUsername" resultMap="baseResultMap">
        SELECT
            <include refid="userRoleSql"/>
        FROM
        sys_user AS `user`
        LEFT JOIN sys_user_role AS ur ON ur.user_id = `user`.id
        LEFT JOIN sys_role AS r ON r.role_id = ur.role_id
            WHERE `user`.username = #{username}
    </select>
 
    <select id="getUserVoById" resultMap="baseResultMap">
        SELECT
               <include refid="userRoleDeptSql"/>
        FROM
            sys_user AS `user`
            LEFT JOIN sys_user_role AS ur ON ur.user_id = `user`.id
            LEFT JOIN sys_role AS r ON r.role_id = ur.role_id
            LEFT JOIN sys_dept AS d ON d.dept_id = `user`.dept_id
        WHERE
           `user`.user_id = #{id}
    </select>
 
    <select id="getUserVosPage" resultMap="baseResultMap">
        SELECT
        `user`.id,
        `user`.username,
        `user`.`password`,
        `user`.salt,
        `user`.phone,
        `user`.avatar,
        `user`.wx_openid,
        `user`.qq_openid,
        `user`.dept_id,
        `user`.del_flag AS del_flag,
        `user`.lock_flag AS lock_flag,
        `user`.dept_id AS deptId
        FROM
        sys_user AS `user`
        LEFT JOIN sys_dept AS d ON d.dept_id = `user`.dept_id
        <where>
            <if test="query.username != null and query.username != ''">
                and `user`.username LIKE CONCAT('%',#{query.username},'%')
            </if>
            <if test="query.deptId != null and query.deptId != ''">
                and `user`.dept_id = #{query.deptId}
            </if>
        </where>
        ORDER BY `user`.create_date DESC
    </select>
 
    <select id="listRolesByUserId" resultType="java.lang.Long">
         SELECT
            r.id
        FROM
        sys_role r, sys_user_role ur WHERE r.id = ur.role_id AND r.del_flag = 0 and  ur.user_id IN (#{userId})
    </select>
 
    <select id="listMenusByRoleId" resultType="cn.mb.cloud.common.api.vo.MenuVO">
        SELECT
            sys_menu.*
        FROM
            sys_menu
        LEFT JOIN sys_role_menu ON sys_menu.id = sys_role_menu.menu_id
        WHERE
            sys_menu.del_flag = 0
        AND sys_role_menu.role_id = #{roleId}
        ORDER BY
            sys_menu.sort DESC
    </select>
</mapper>