UserMapper.xml
1.73 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
<?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.UserMapper">
<sql id="baseSelectColumns">
u.iIncrement AS iIncrement,
u.sUserName AS sUserName,
u.iStaffId AS iStaffId,
s.sStaffName AS staffName,
u.sUserNo AS sUserNo,
s.sDepartment AS department,
u.sUserType AS sUserType,
u.sLanguage AS sLanguage,
u.bDeleted AS bDeleted,
u.tLastLoginDate AS tLastLoginDate,
u.sCreatedBy AS sCreatedBy,
u.tCreateDate AS tCreateDate
</sql>
<sql id="filterClause">
<where>
<if test="value != null and value != ''">
<choose>
<when test="matchOp == 'contains'">${field} LIKE CONCAT('%', #{value}, '%')</when>
<when test="matchOp == 'notContains'">${field} NOT LIKE CONCAT('%', #{value}, '%')</when>
<when test="matchOp == 'equals'">${field} = #{value}</when>
</choose>
</if>
</where>
</sql>
<select id="pageWithFilter" resultType="com.xly.erp.module.usr.vo.UserListVO">
SELECT <include refid="baseSelectColumns"/>
FROM tUser u
LEFT JOIN tStaff s ON s.iIncrement = u.iStaffId AND s.bDeleted = 0
<include refid="filterClause"/>
ORDER BY u.iIncrement DESC
LIMIT #{offset}, #{size}
</select>
<select id="countWithFilter" resultType="long">
SELECT COUNT(1)
FROM tUser u
LEFT JOIN tStaff s ON s.iIncrement = u.iStaffId AND s.bDeleted = 0
<include refid="filterClause"/>
</select>
</mapper>