UserMapper.xml
1.63 KB
<?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">
<!-- REQ-USR-003 用户列表查询:LEFT JOIN tStaff + 动态 WHERE。
query.column 由 service 层白名单映射,绝不接受用户原始输入。 -->
<select id="searchUsers" resultType="com.xly.erp.module.usr.vo.UserListItemVO">
SELECT
u.iIncrement, u.sUserName, s.sStaffName, u.sUserNo,
s.sDepartment, u.sUserType, u.sLanguage, u.bDeleted,
u.tLastLoginDate, u.sCreatedBy, u.tCreateDate
FROM tUser u
LEFT JOIN tStaff s ON u.iStaffId = s.iIncrement AND s.bDeleted = 0
<where>
<if test="query.queryField != 'deleted'">
u.bDeleted = 0
</if>
<if test="query.column != null and query.column != '' and query.queryValue != null and query.queryValue != ''">
AND
<choose>
<when test="query.matchType == 'equals'">
${query.column} = #{query.queryValue}
</when>
<when test="query.matchType == 'notContains'">
${query.column} NOT LIKE CONCAT('%', #{query.queryValue}, '%')
</when>
<otherwise>
${query.column} LIKE CONCAT('%', #{query.queryValue}, '%')
</otherwise>
</choose>
</if>
</where>
ORDER BY u.tCreateDate DESC, u.iIncrement DESC
</select>
</mapper>