SysUserMapper.xml
3.14 KB
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
<?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.xly.erp.module.usr.mapper.SysUserMapper">
<sql id="baseFrom">
FROM sys_user u
LEFT JOIN sys_employee e ON e.iIncrement = u.iEmployeeId
LEFT JOIN sys_department d ON d.iIncrement = e.iDepartmentId
</sql>
<sql id="whereClause">
<where>
<if test="p.sqlQueryColumn != null and p.queryValue != null and p.queryValue != ''">
<choose>
<when test="'contains'.equals(p.matchMode)">
AND ${p.sqlQueryColumn} LIKE CONCAT('%', #{p.queryValue}, '%')
</when>
<when test="'notContains'.equals(p.matchMode)">
AND (${p.sqlQueryColumn} NOT LIKE CONCAT('%', #{p.queryValue}, '%')
OR ${p.sqlQueryColumn} IS NULL)
</when>
<otherwise>
AND ${p.sqlQueryColumn} = #{p.queryValue}
</otherwise>
</choose>
</if>
<if test="p.userType != null">
AND u.sUserType = #{p.userType}
</if>
<if test="p.isDeleted != null">
AND u.iIsDeleted = #{p.isDeleted}
</if>
</where>
</sql>
<resultMap id="UserListItemVoMap" type="com.xly.erp.module.usr.vo.UserListItemVo">
<id property="userId" column="userId"/>
<result property="username" column="username"/>
<result property="employeeName" column="employeeName"/>
<result property="userCode" column="userCode"/>
<result property="departmentName" column="departmentName"/>
<result property="userType" column="userType"/>
<result property="language" column="language"/>
<result property="isDeleted" column="isDeleted" javaType="java.lang.Boolean"/>
<result property="lastLoginDate" column="lastLoginDate"/>
<result property="createdBy" column="createdBy"/>
<result property="createdDate" column="createdDate"/>
</resultMap>
<select id="selectByQuery" resultMap="UserListItemVoMap">
SELECT u.iIncrement AS userId,
u.sUsername AS username,
e.sEmployeeName AS employeeName,
u.sUserCode AS userCode,
d.sDepartmentName AS departmentName,
u.sUserType AS userType,
u.sLanguage AS language,
u.iIsDeleted AS isDeleted,
u.tLastLoginDate AS lastLoginDate,
u.sCreatedBy AS createdBy,
u.tCreateDate AS createdDate
<include refid="baseFrom"/>
<include refid="whereClause"/>
ORDER BY u.${p.sqlSortField} ${p.sqlSortOrder}
LIMIT #{p.offset}, #{p.limit}
</select>
<select id="countByQuery" resultType="long">
SELECT COUNT(*)
<include refid="baseFrom"/>
<include refid="whereClause"/>
</select>
</mapper>