OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2022-03-14 fe21896bff9b9305df0294e0352b343e0dd4d0b9
- api로 이슈 추가 시 하위이슈기준 IP/SITE 일 경우 코드 수정
4개 파일 변경됨
45 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/mapper/IssueMapper.java 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 8 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issue-template.xml 31 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 4 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/mapper/IssueMapper.java
@@ -53,6 +53,6 @@
    List<Map<String, Object>> findNotCompleteByParentIssueId(IssueCondition issueCondition);
    List<Map<String, Object>> findByCustomFieldValueOfIp(IssueCustomFieldValueCondition issueCustomFieldValueCondition);
    List<Map<String, Object>> findByCustomFieldValueByCompany(IssueCustomFieldValueCondition issueCustomFieldValueCondition);
}
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -528,6 +528,7 @@
                        }
                        if(customFieldApiOverlap.getCustomField().getCustomFieldType().equals(SITE)) {
                            customFieldType = SITE.toString();
                            String[] urlArr = null;
                            List<String> urls = Lists.newArrayList();
                            if (useValue.contains(",")) {
@@ -576,8 +577,11 @@
                    ipValue = ConvertUtil.ipToLong(concatUseValue);
                }
                issueCustomFieldValueCondition.setUseValue(String.valueOf(ipValue));
                //  하위이슈조건의 타입이 IP일 경우 같은 업체정보인 이슈 찾기
                results = this.issueMapper.findByCustomFieldValueOfIp(issueCustomFieldValueCondition);
            }
            if (issueCustomFieldValueCondition.getCustomFieldType() != null && !issueCustomFieldValueCondition.getCustomFieldType().equals("")) {
                //  사용자정의필드 타입이 IP_ADDRESS 또는 SITE 일 경우
                results = this.issueMapper.findByCustomFieldValueByCompany(issueCustomFieldValueCondition);
            } else {
                results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition);
            }
src/main/resources/mybatis/query-template/issue-template.xml
@@ -817,26 +817,26 @@
        HAVING concatUseValue LIKE CONCAT('%', #{useValue}, '%')
    </select>
    <!--    특정 사용자 정의 필드 IP 값이 업체와 동일한 이슈를 조회 -->
    <select id="findByCustomFieldValueOfIp" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition">
    <!--    IP/SITE 사용자 정의 필드 값이 업체와 동일한 이슈를 조회 -->
    <select id="findByCustomFieldValueByCompany" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition">
        SELECT
            issue.id as id,
            issue.title as title,
            customFieldValue.customFieldType AS customFieldType,
            GROUP_CONCAT(customFieldValue.useValue ORDER BY customFieldValue.customFieldId ASC) AS concatUseValue
        issue.id as id,
        issue.title as title,
        customFieldValue.customFieldType AS customFieldType,
        GROUP_CONCAT(customFieldValue.useValue ORDER BY customFieldValue.customFieldId ASC) AS concatUseValue
        FROM issue issue FORCE INDEX(reverseIndex)
        INNER JOIN issue_status as issStatus ON issue.issue_status_id = issStatus.id
            LEFT OUTER JOIN (
            SELECT cf.id AS customFieldId, cf.custom_field_type AS customFieldType, issue_custom.use_value AS useValue, issue_custom.issue_id AS issueId
            FROM issue_custom_field_value issue_custom
            INNER JOIN custom_field cf ON cf.id = issue_custom.custom_field_id
            ) customFieldValue ON customFieldValue.issueId = issue.id
        INNER JOIN issue_company issc ON issc.issue_id = issue.id
        LEFT OUTER JOIN (
        SELECT cf.id AS customFieldId, cf.custom_field_type AS customFieldType, issue_custom.use_value AS useValue, issue_custom.issue_id AS issueId
        FROM issue_custom_field_value issue_custom
        INNER JOIN custom_field cf ON cf.id = issue_custom.custom_field_id
        ) customFieldValue ON customFieldValue.issueId = issue.id
        LEFT OUTER JOIN issue_company issc ON issc.issue_id = issue.id
        WHERE issue.issue_type_id = #{issueTypeId}
        <if test="customFieldType != '' and customFieldType != null">
            AND customFieldValue.customFieldType = #{customFieldType}
        <if test="customFieldType != null and customFieldType.equals('SITE')">
            AND issc.url LIKE CONCAT('%',#{useValue},'%')
        </if>
        <if test="useValue != '' and useValue != null">
        <if test="customFieldType != null and customFieldType.equals('IP_ADDRESS')">
            AND INET_ATON(issc.ip_start) <![CDATA[ <= ]]> #{useValue} AND INET_ATON(issc.ip_end) >= #{useValue}
        </if>
        <choose>
@@ -846,7 +846,6 @@
        </choose>
        GROUP BY issue.id
    </select>
    <!--  종료 안된 하위 이슈 가져오기 -->
    <select id="findNotCompleteByParentIssueId" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
src/main/webapp/views/issue/issueDetail.html
@@ -346,7 +346,9 @@
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.ipRange">IP 대역대</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].ipStart}} ~ {{vm.viewer.issueCompanyVos[0].ipEnd}}</span>
                                <span ng-if="vm.viewer.issueCompanyVos[0].ipStart != null && vm.viewer.issueCompanyVos[0].ipStart != ''">
                                    {{vm.viewer.issueCompanyVos[0].ipStart}} ~ {{vm.viewer.issueCompanyVos[0].ipEnd}}
                                </span>
                            </div>
                        </div>
                    </div>