ProjectRequirementMapper.xml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.management.platform.mapper.ProjectRequirementMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.management.platform.entity.ProjectRequirement">
  6. <id column="id" property="id" />
  7. <result column="project_id" property="projectId" />
  8. <result column="memb_req" property="membReq" />
  9. <result column="task_req" property="taskReq" />
  10. </resultMap>
  11. <resultMap id="RichMap" type="com.management.platform.entity.ProjectRequirement">
  12. <id column="id" property="id" />
  13. <result column="project_id" property="projectId" />
  14. <result column="memb_req" property="membReq" />
  15. <result column="task_req" property="taskReq" />
  16. <result column="project_code" property="projectCode" />
  17. <result column="project_name" property="projectName" />
  18. <result column="active_users" property="activeUsers" />
  19. </resultMap>
  20. <!-- 通用查询结果列 -->
  21. <sql id="Base_Column_List">
  22. id, project_id, memb_req, task_req
  23. </sql>
  24. <select id="customSelect" resultMap="RichMap">
  25. SELECT project_requirement.id, project.id AS project_id, project.`project_name`, project.`project_code`, project_requirement.`memb_req`, project_requirement.`task_req`,
  26. (SELECT GROUP_CONCAT(DISTINCT user.`name`) FROM report LEFT JOIN `user` ON user.`id` = report.`creator_id` WHERE report.company_id=#{companyId} AND report.create_time >= #{startDate} AND report.`project_id` = project.id) AS active_users
  27. FROM project LEFT JOIN project_requirement ON project.id = project_requirement.`project_id`
  28. WHERE project.`company_id` = #{companyId}
  29. <if test="projectId != null">
  30. and project.id = #{projectId}
  31. </if>
  32. <if test="refProjectIdList != null">
  33. and project.id in
  34. <foreach collection="refProjectIdList" index="index" close=")" open="(" separator="," item="item">
  35. #{item}
  36. </foreach>
  37. </if>
  38. order by project.id asc limit #{startIndex}, #{pageSize}
  39. </select>
  40. </mapper>