| <?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.doumee.dao.system.SystemUserMapper"> | 
|   | 
|   <!-- 查询用户列表 --> | 
|   <resultMap id="SystemUserListVO" type="com.doumee.dao.system.vo.SystemUserListVO" autoMapping="true"> | 
|     <id column="ID" property="id"/> | 
|  <!--   <association property="department" javaType="com.doumee.dao.system.model.SystemDepartment"> | 
|       <result column="DEPARTMENT_ID" property="id"/> | 
|       <result column="DEPARTMENT_NAME" property="name"/> | 
|     </association>--> | 
|     <association property="createUserInfo" javaType="com.doumee.dao.system.model.SystemUser"> | 
|       <result column="CREATE_USER_ID" property="id"/> | 
|       <result column="CREATE_USER_NAME" property="username"/> | 
|       <result column="CREATE_REAL_NAME" property="realname"/> | 
|     </association> | 
|     <association property="updateUserInfo" javaType="com.doumee.dao.system.model.SystemUser"> | 
|       <result column="UPDATE_USER_ID" property="id"/> | 
|       <result column="UPDATE_USER_NAME" property="username"/> | 
|       <result column="UPDATE_REAL_NAME" property="realname"/> | 
|     </association> | 
|   </resultMap> | 
|   <select id="selectManageList" parameterType="com.doumee.dao.system.dto.QuerySystemUserDTO" resultMap="SystemUserListVO"> | 
|     SELECT | 
|       DISTINCT | 
|       usr.ID, usr.BIRTHDAY, usr.EMAIL, usr.EMP_NO, usr.MOBILE, usr.AVATAR, usr.USERNAME, usr.REALNAME, usr.SEX, usr.FIXED, usr.CREATE_TIME, usr.UPDATE_TIME, | 
|       sd.ID AS DEPARTMENT_ID, sd.`NAME` AS DEPARTMENT_NAME,usr.wechat_name,usr.status,usr.OPENID,usr.type, | 
|       create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME, create_user.`REALNAME` CREATE_REAL_NAME, | 
|       update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME, create_user.`REALNAME` UPDATE_REAL_NAME, | 
|       sd.name as companyName | 
|     FROM `SYSTEM_USER` usr | 
|     LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = usr.CREATE_USER | 
|     LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = usr.UPDATE_USER | 
|     LEFT JOIN `company` sd ON sd.ID = usr.COMPANY_ID AND sd.ISDELETED = 0 | 
|     LEFT JOIN `member` m ON usr.MEMBER_ID = m.id | 
|     <if test="dto.roleId != null"> | 
|       RIGHT JOIN system_user_role sur on sur.USER_ID = usr.ID and sur.ROLE_ID = #{dto.roleId} | 
|     </if> | 
|     <where> | 
|       usr.DELETED = 0 | 
|       and usr.SOURCE = 0 | 
| <!--      <if test="dto.positionId != null">--> | 
| <!--        AND spu.POSITION_ID = #{dto.positionId}--> | 
| <!--      </if>--> | 
|       <if test="dto.strictDeptId != null"> | 
|         AND  sd.ID = #{dto.strictDeptId} | 
|       </if> | 
|       <if test="dto.departmentIds != null and dto.departmentIds.size > 0"> | 
|         AND sd.ID IN | 
|         <foreach collection="dto.departmentIds" open="(" close=")" separator="," item="id"> | 
|           #{id} | 
|         </foreach> | 
|       </if> | 
|       <if test="dto.username != null and dto.username != ''"> | 
|         AND usr.`USERNAME` LIKE CONCAT('%', #{dto.username}, '%') | 
|       </if> | 
|       <if test="dto.realname != null and dto.realname != ''"> | 
|         AND usr.`REALNAME` LIKE CONCAT('%', #{dto.realname}, '%') | 
|       </if> | 
|       <if test="dto.mobile != null and dto.mobile != ''"> | 
|         AND usr.`MOBILE` LIKE CONCAT('%', #{dto.mobile}, '%') | 
|       </if> | 
|       <if test="dto.status != null "> | 
|         AND  usr.`status` = #{dto.status} | 
|       </if> | 
|       <if test="dto.memberType != null "> | 
|         AND  m.`type` = #{dto.memberType} | 
|       </if> | 
|       <if test="dto.companyType != null "> | 
|         AND  sd.`type` = #{dto.companyType} | 
|       </if> | 
|     </where> | 
|     ${orderByClause} | 
|   </select> | 
|   | 
| </mapper> |