UsrUserMapper.xml
4.2 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.example.erp.module.usr.mapper.UsrUserMapper">
<!-- REQ-USR-003: 查询用户 -->
<select id="selectUserList" resultType="com.example.erp.module.usr.vo.UserListItemVO">
SELECT u.sId, u.sUsername, u.sUserCode, u.sUserType, u.sLanguage,
u.bCanEditDoc, u.bIsDisabled, u.tLastLoginDate, u.sCreatorUsername, u.tCreateDate,
s.sStaffName, s.sDepartment
FROM usr_user u
LEFT JOIN tStaff s ON u.sEmployeeId = s.sId
AND s.sBrandsId = u.sBrandsId
AND s.bDeleted = 0
WHERE u.sBrandsId = #{brandId}
<if test="queryValue != null and queryValue != ''">
<choose>
<when test="queryField == 'username'">
<choose>
<when test="matchType == 'contains'">AND u.sUsername LIKE CONCAT('%', #{queryValue}, '%')</when>
<when test="matchType == 'notContains'">AND u.sUsername NOT LIKE CONCAT('%', #{queryValue}, '%')</when>
<otherwise>AND u.sUsername = #{queryValue}</otherwise>
</choose>
</when>
<when test="queryField == 'staffName'">
<choose>
<when test="matchType == 'contains'">AND s.sStaffName LIKE CONCAT('%', #{queryValue}, '%')</when>
<when test="matchType == 'notContains'">AND (s.sStaffName IS NULL OR s.sStaffName NOT LIKE CONCAT('%', #{queryValue}, '%'))</when>
<otherwise>AND s.sStaffName = #{queryValue}</otherwise>
</choose>
</when>
<when test="queryField == 'userCode'">
<choose>
<when test="matchType == 'contains'">AND u.sUserCode LIKE CONCAT('%', #{queryValue}, '%')</when>
<when test="matchType == 'notContains'">AND u.sUserCode NOT LIKE CONCAT('%', #{queryValue}, '%')</when>
<otherwise>AND u.sUserCode = #{queryValue}</otherwise>
</choose>
</when>
<when test="queryField == 'department'">
<choose>
<when test="matchType == 'contains'">AND s.sDepartment LIKE CONCAT('%', #{queryValue}, '%')</when>
<when test="matchType == 'notContains'">AND (s.sDepartment IS NULL OR s.sDepartment NOT LIKE CONCAT('%', #{queryValue}, '%'))</when>
<otherwise>AND s.sDepartment = #{queryValue}</otherwise>
</choose>
</when>
<when test="queryField == 'userType'">
<choose>
<when test="matchType == 'contains'">AND u.sUserType LIKE CONCAT('%', #{queryValue}, '%')</when>
<when test="matchType == 'notContains'">AND u.sUserType NOT LIKE CONCAT('%', #{queryValue}, '%')</when>
<otherwise>AND u.sUserType = #{queryValue}</otherwise>
</choose>
</when>
<when test="queryField == 'creator'">
<choose>
<when test="matchType == 'contains'">AND u.sCreatorUsername LIKE CONCAT('%', #{queryValue}, '%')</when>
<when test="matchType == 'notContains'">AND u.sCreatorUsername NOT LIKE CONCAT('%', #{queryValue}, '%')</when>
<otherwise>AND u.sCreatorUsername = #{queryValue}</otherwise>
</choose>
</when>
<when test="queryField == 'disabled'">
<choose>
<when test="queryValue == '是'">AND u.bIsDisabled = 1</when>
<when test="queryValue == '否'">AND u.bIsDisabled = 0</when>
</choose>
</when>
<when test="queryField == 'lastLoginDate'">
AND DATE(u.tLastLoginDate) = #{queryValue}
</when>
</choose>
</if>
ORDER BY u.tCreateDate DESC
</select>
</mapper>