| <?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.vincent.rsf.server.system.mapper.UserMapper"> | 
|   | 
|     <select id="selectPageRel" resultType="com.vincent.rsf.server.system.entity.User"> | 
|         select | 
|         DISTINCT su.* | 
|         from sys_user su | 
|         left join sys_dept sd on su.dept_id = sd.id | 
|         left join sys_user_role sur on sur.user_id = su.id | 
|         where 1=1 | 
|         and su.deleted = 0 | 
|   | 
|         <if test="param.deptId != null"> | 
|             and (FIND_IN_SET(#{param.deptId}, sd.`path`) OR sd.`id` = #{param.deptId}) | 
|         </if> | 
|   | 
|         <if test="param.roleIds != null and param.roleIds.size > 0"> | 
|             and sur.role_id in | 
|             <foreach collection="param.roleIds" item="item" index="idx"  separator="," open="(" close=")"> | 
|                 #{item} | 
|             </foreach> | 
|         </if> | 
|   | 
|         <if test="param.username != null"> | 
|             and su.username like concat('%',#{param.username},'%') | 
|         </if> | 
|         <if test="param.nickname != null"> | 
|             and su.nickname like concat('%',#{param.nickname},'%') | 
|         </if> | 
|         <if test="param.code != null"> | 
|             and su.code like concat('%',#{param.code},'%') | 
|         </if> | 
|         <if test="param.phone != null"> | 
|             and su.phone like concat('%',#{param.phone},'%') | 
|         </if> | 
|         <if test="param.email != null"> | 
|             and su.email like concat('%',#{param.email},'%') | 
|         </if> | 
|         <if test="param.sex != null"> | 
|             and su.sex = #{param.sex} | 
|         </if> | 
|         <if test="param.status != null"> | 
|             and su.status = #{param.status} | 
|         </if> | 
|         <if test="param.realName != null"> | 
|             and su.real_name like concat('%',#{param.realName},'%') | 
|         </if> | 
|         <if test="param.idCard != null"> | 
|             and su.id_card like concat('%',#{param.idCard},'%') | 
|         </if> | 
|         <if test="param.memo != null"> | 
|             and su.memo = like concat('%',#{param.memo},'%') | 
|         </if> | 
|         <if test="param.condition != null"> | 
|             and ( | 
|                    su.username like concat('%',#{param.condition},'%') | 
|                 or su.nickname like concat('%',#{param.condition},'%') | 
|                 or su.phone like concat('%',#{param.condition},'%') | 
|                 or su.code like concat('%',#{param.condition},'%') | 
|                 or su.email like concat('%',#{param.condition},'%') | 
|                 or su.real_name like concat('%',#{param.condition},'%') | 
|                 or su.id_card like concat('%',#{param.condition},'%') | 
|             ) | 
|         </if> | 
|         <if test="param.timeStart != null"> | 
|             and su.create_time >= #{param.timeStart} | 
|         </if> | 
|         <if test="param.timeEnd != null"> | 
|             and su.create_time < #{param.timeEnd} | 
|         </if> | 
|         <if test="param.orderBy != null and param.orderBy != '' "> | 
|             order by su.${param.orderBy} | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="selectByUsernameWithoutTenant" resultType="com.vincent.rsf.server.system.entity.User"> | 
|         select * from sys_user | 
|         where 1=1 | 
|         and deleted = 0 | 
|         and username = #{username} | 
|         <if test="tenantId != null"> | 
|             AND tenant_id = #{tenantId} | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="selectByEmailWithoutTenant" resultType="com.vincent.rsf.server.system.entity.User"> | 
|         select * from sys_user | 
|         where 1=1 | 
|         and deleted = 0 | 
|         and email = #{email} | 
|         <if test="tenantId != null"> | 
|             AND tenant_id = #{tenantId} | 
|         </if> | 
|     </select> | 
|   | 
| </mapper> |