OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-02 6a72a3edec87cca9996c7ab3be3fd48479881945
src/main/resources/mybatis/query-template/issue-template.xml
@@ -50,21 +50,25 @@
        temp_issue_comment on (temp_issue_comment.issue_id = issue.id)
        LEFT OUTER JOIN user user ON issue_user.user_id = user.id
        WHERE 1=1
        <if test="title != null and !title.equals('') ">
        <if test="keyWord != null and !keyWord.equals('') ">
            AND issue.title like CONCAT('%',#{keyWord},'%')
            OR issue.description like CONCAT('%',#{keyWord},'%')
            OR issue.start_date like CONCAT('%',#{keyWord},'%')
            OR issue.complete_date like CONCAT('%',#{keyWord},'%')
            OR issue.issue_number like CONCAT('%',#{keyWord},'%')
            OR issue.register_date like CONCAT('%',#{keyWord},'%')
            OR project.name like CONCAT('%',#{keyWord},'%')
            OR project.project_key like CONCAT('%',#{keyWord},'%')
            OR issue_type.name like CONCAT('%',#{keyWord},'%')
            OR issue_status.issue_status_type like CONCAT('%',#{keyWord},'%')
            OR issue_status.name like CONCAT('%',#{keyWord},'%')
            OR priority.name like CONCAT('%',#{keyWord},'%')
            OR severity.name like CONCAT('%',#{keyWord},'%')
            OR issue_custom.use_value like CONCAT('%',#{keyWord},'%')
        </if>
        <if test="title != null and !title.equals('')">
            AND issue.title like CONCAT('%',#{title},'%')
            OR issue.description like CONCAT('%',#{title},'%')
            OR issue.start_date like CONCAT('%',#{title},'%')
            OR issue.complete_date like CONCAT('%',#{title},'%')
            OR issue.issue_number like CONCAT('%',#{title},'%')
            OR issue.register_date like CONCAT('%',#{title},'%')
            OR project.name like CONCAT('%',#{title},'%')
            OR project.project_key like CONCAT('%',#{title},'%')
            OR issue_type.name like CONCAT('%',#{title},'%')
            OR issue_status.issue_status_type like CONCAT('%',#{title},'%')
            OR issue_status.name like CONCAT('%',#{title},'%')
            OR priority.name like CONCAT('%',#{title},'%')
            OR severity.name like CONCAT('%',#{title},'%')
            OR issue_custom.use_value like CONCAT('%',#{title},'%')
        </if>
        <if test="description != null and !description.equals('')">
@@ -187,6 +191,7 @@
                </foreach>
            </when>
        </choose>
        AND issue.parent_issue_id IS NULL
        AND issue.reverse_index <![CDATA[ < ]]> 0
        AND workspace.id = #{workspaceId}
        GROUP BY issue.id
@@ -340,9 +345,21 @@
        WHERE i.issue_type_id = #{issueTypeId}
    </select>
    <!--    해당 이슈 유형의 입력 현황을 조회한다 -->
    <select id="findByApiIssueHistory" resultType="java.util.HashMap"
            parameterType="java.lang.Long">
        SELECT
            i.id as issueId,
            iss.id as issueStatusId,
            iss.name as issueStatusName
        FROM issue i
                 INNER JOIN issue_status iss on iss.id = i.issue_status_id
        WHERE i.issue_type_id = #{issueTypeId}
    </select>
    <!--    프로젝트에 있는 이슈 목록을 조회한다 -->
    <select id="findByProjectId" resultType="java.util.HashMap"
            parameterType="java.lang.Long">
            parameterType="kr.wisestone.owl.web.condition.IssueCondition">
        SELECT
        id
        FROM issue
@@ -471,6 +488,17 @@
      issue WHERE issue_type_id = #{issueTypeId};
    </select>
    <!--    이슈 유형을 사용하는 이슈 갯수를 조회한다(기간) -->
    <select id="countByIssueTypeIdAndDate" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.IssueTypeCondition">
        SELECT
               COUNT(DISTINCT id)
        FROM issue
        WHERE issue_type_id = #{id}
                    AND register_date BETWEEN #{startDate} AND #{endDate}
                    AND is_api = #{isApi};
    </select>
    <!--    이슈 상태를 사용하는 이슈 갯수를 조회한다. -->
    <select id="countByIssueStatusId" resultType="java.lang.Long" parameterType="java.lang.Long">
@@ -479,4 +507,22 @@
    </select>
    <!--    특정 사용자 정의 필드 값이 같은 이슈를 조회 -->
    <select id="findByCustomFieldValue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition">
        SELECT
        id
        FROM issue
        LEFT OUTER JOIN issue_custom_field_value issue_custom FORCE INDEX(issueIdIndex) ON issue.id = issue_custom.issue_id
        WHERE 1=1
        AND issue.parent_issue_id IS NULL
        <choose>
            <when test="useValues.size != 0">
                AND issue_custom.use_value IN
                <foreach collection="useValues" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
    </select>
</mapper>