OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-11-25 9c88708bf366358bbbc891a605313ccb0a63bea1
사용자정의필드 백엔드 수정
3개 파일 변경됨
52 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java 28 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/CustomFieldValueServiceImpl.java 18 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java 6 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java
@@ -126,8 +126,8 @@
    //  옵션 값 유효 체크
    private void verifyOptions(CustomFieldForm customFieldForm) {
        //  사용자 정의 필드 유형이 텍스트 일때는 옵션 값이 존재하면 안된다.
        if (CustomFieldType.valueOf(customFieldForm.getCustomFieldType()).equals(CustomFieldType.INPUT)) {
        //  사용자 정의 필드 유형이 텍스트 일때는 옵션 값이 존재하면 안된다. => 단일선택 또는 다중선택 필드가 아닐 경우 옵션 값 존재 하면 안되는 것으로 변경
        if (!CustomFieldType.valueOf(customFieldForm.getCustomFieldType()).equals(CustomFieldType.MULTI_SELECT) && !CustomFieldType.valueOf(customFieldForm.getCustomFieldType()).equals(CustomFieldType.SINGLE_SELECT)) {
            if (customFieldForm.getOptions().size() > 0) {
                throw new OwlRuntimeException(
                        this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD));
@@ -163,7 +163,6 @@
                        }
                        //  기본 값으로 지정한 값이 옵션에 있는지 확인한다.
                        this.verifyOptionsDefaultValue(customFieldForm);
                        break;
                    case MULTI_SELECT:
                        //  기본 값으로 지정한 값이 옵션에 있는지 확인한다.
@@ -287,9 +286,9 @@
    //  사용자 정의 필드 유형이 단일, 다중 선택에서 문자열로 변경될 경우 사용자 정의 필드 값을 초기화한다.
    private void checkChangeCustomFieldType(CustomFieldForm customFieldForm, CustomField customField) {
        if (!customField.getCustomFieldType().equals(CustomFieldType.INPUT)) {
        if (customField.getCustomFieldType().equals(CustomFieldType.MULTI_SELECT) || customField.getCustomFieldType().equals(CustomFieldType.SINGLE_SELECT)) {
            //  단일, 다중 선택에서 문자열 필드로 변경된 경우
            if (CustomFieldType.valueOf(customFieldForm.getCustomFieldType()).equals(CustomFieldType.INPUT)) {
            if (!CustomFieldType.valueOf(customFieldForm.getCustomFieldType()).equals(CustomFieldType.MULTI_SELECT) && !CustomFieldType.valueOf(customFieldForm.getCustomFieldType()).equals(CustomFieldType.SINGLE_SELECT)) {
                customField.getCustomFieldValues().clear();
            }
        }
@@ -302,7 +301,6 @@
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_NOT_EXIST));
        }
        CustomField customField = this.findOne(id);
@@ -383,6 +381,24 @@
                    case "MULTI_SELECT" :
                        customFieldTypeName = this.messageAccessor.message("common.multipleSelectionField"); // 다중 선택 필드
                        break;
                    case "NUMBER" :
                        customFieldTypeName = this.messageAccessor.message("common.numberField"); // 숫자 필드
                        break;
                    case "DATETIME" :
                        customFieldTypeName = this.messageAccessor.message("common.datetimeField"); // 날짜 필드
                        break;
                    case "IP_ADDRESS" :
                        customFieldTypeName = this.messageAccessor.message("common.ipAddressField"); // IP 주소 필드
                        break;
                    case "EMAIL" :
                        customFieldTypeName = this.messageAccessor.message("common.emailField"); // 이메일 필드
                        break;
                    case "SITE" :
                        customFieldTypeName = this.messageAccessor.message("common.siteField"); // 홈페이지 주소 필드
                        break;
                    case "TEL" :
                        customFieldTypeName = this.messageAccessor.message("common.telField"); // 전화번호 필드
                        break;
                }
            }
src/main/java/kr/wisestone/owl/service/impl/CustomFieldValueServiceImpl.java
@@ -39,9 +39,11 @@
    public void addCustomFieldValues(CustomField customField, List<String> values, CustomFieldType oldCustomFieldType) {
        if (oldCustomFieldType != null) {
            //  텍스트 입력 필드일 때는 이슈에서 사용되고 있는 사용자 정의 필드 값 확인 후 삭제 처리
            if (customField.getCustomFieldType().equals(CustomFieldType.INPUT)) {
            //if (customField.getCustomFieldType().equals(CustomFieldType.INPUT)) {
            if(!customField.getCustomFieldType().equals(CustomFieldType.MULTI_SELECT) && !customField.getCustomFieldType().equals(CustomFieldType.SINGLE_SELECT)){
                //  이전에도 텍스트 필드였다면 사용자 정의 필드 값을 삭제하지 않는다.
                if (CustomFieldType.INPUT.equals(oldCustomFieldType)) {
                //if (CustomFieldType.INPUT.equals(oldCustomFieldType)) {
                if (!CustomFieldType.MULTI_SELECT.equals(oldCustomFieldType) && !CustomFieldType.SINGLE_SELECT.equals(oldCustomFieldType)) {
                    return;
                }
                //  사용자 정의 필드 옵션 값이 변경되었을 때 사용자 정의 필드 값을 사용하는 이슈에서 해당 값이 존재하는지 확인하고 없어졌으면 삭제해준다.
@@ -54,10 +56,20 @@
                //  이슈에서 저장된 해당 사용자 정의 필드 값을 모두 삭제한다.
                this.issueCustomFieldValueService.removeIssueCustomFieldValuesByCustomFieldId(customField);
            }
            /*if (customField.getCustomFieldType().equals(CustomFieldType.NUMBER)) {
                if (CustomFieldType.NUMBER.equals(oldCustomFieldType)) {
                    return;
                }
                //  사용자 정의 필드 옵션 값이 변경되었을 때 사용자 정의 필드 값을 사용하는 이슈에서 해당 값이 존재하는지 확인하고 없어졌으면 삭제해준다.
                this.issueCustomFieldValueService.checkExistIssueCustomFieldValue(customField, values, oldCustomFieldType);
                return;
            }*/
        }
        else {
            //  텍스트 입력 필드일 때는 바로 종료
            if (customField.getCustomFieldType().equals(CustomFieldType.INPUT)) {
            //if (customField.getCustomFieldType().equals(CustomFieldType.INPUT)) {
            if (!customField.getCustomFieldType().equals(CustomFieldType.MULTI_SELECT) && !customField.getCustomFieldType().equals(CustomFieldType.SINGLE_SELECT)) {
                return;
            }
        }
src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java
@@ -28,6 +28,12 @@
        switch(customFieldType) {
            case INPUT:
            case NUMBER:
            case DATETIME:
            case IP_ADDRESS:
            case EMAIL:
            case SITE:
            case TEL:
                if (MapUtil.getStrings(conditions, "useValues") != null) {
                    //  공백이 아닌 문자가 들어있을 때만 useValues 값 으로 셋팅한다.
                    for (String useValue : MapUtil.getStrings(conditions, "useValues")) {