jiangping
2023-10-16 d7fe8ae3888c8e2b1eea3c1e3769be0d42a21cc9
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
<?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="doumeemes.dao.system.SystemDepartmentMapper">
 
  <!-- 查询部门列表 -->
  <resultMap id="SystemDepartmentListVO" type="doumeemes.dao.system.vo.SystemDepartmentListVO" autoMapping="true">
    <id column="ID" property="id"/>
    <association property="createUserInfo" javaType="doumeemes.dao.system.model.SystemUser">
      <result column="CREATE_USER_ID" property="id"/>
      <result column="CREATE_USER_NAME" property="username"/>
    </association>
    <association property="updateUserInfo" javaType="doumeemes.dao.system.model.SystemUser">
      <result column="UPDATE_USER_ID" property="id"/>
      <result column="UPDATE_USER_NAME" property="username"/>
    </association>
  </resultMap>
  <select id="selectManageList" parameterType="doumeemes.dao.system.dto.QuerySystemDepartmentDTO" resultMap="SystemDepartmentListVO">
    SELECT
      dept.*,
      create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME,
      update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME,
      COUNT(usr.ID) USER_COUNT
    FROM SYSTEM_DEPARTMENT dept
    LEFT JOIN `SYSTEM_DEPARTMENT_USER` sdu ON sdu.DEPARTMENT_ID = dept.ID AND sdu.DELETED = 0
    LEFT JOIN `SYSTEM_USER` usr ON usr.ID = sdu.USER_ID AND usr.DELETED = 0
    LEFT JOIN `SYSTEM_USER` create_user ON create_user.ID = dept.CREATE_USER
    LEFT JOIN `SYSTEM_USER` update_user ON update_user.ID = dept.UPDATE_USER
    <where>
      dept.DELETED = 0
      <if test="id != null">
        AND dept.ID = #{id}
      </if>
      <if test="ids != null">
        AND dept.ID IN
        <foreach collection="ids" item="id" separator="," open="(" close=")">
          #{id}
        </foreach>
      </if>
    </where>
    GROUP BY dept.`ID`
  </select>
 
</mapper>