|  |  |  | 
|---|
|  |  |  | su.* | 
|---|
|  |  |  | from sys_user su | 
|---|
|  |  |  | left join sys_dept sd on su.dept_id = sd.id | 
|---|
|  |  |  | left join ( | 
|---|
|  |  |  | select * | 
|---|
|  |  |  | from sys_user_role sur | 
|---|
|  |  |  | group by sur.user_id | 
|---|
|  |  |  | ) 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 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> | 
|---|
|  |  |  | order by su.create_time | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </mapper> | 
|---|