From c5ce099b314be4b296137415a146c610095ae92e Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 금, 11 3월 2022 13:54:09 +0900 Subject: [PATCH] - api로 이슈 추가 시 하위이슈기준이 2개 일 경우 코드 수정 - 업체 추가/수정 시 ip대역대 중복 체크 - 이슈 추가/수정 시 ip대역대 수정불가 --- src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java | 61 +++++++++++++++++++++--------- 1 files changed, 43 insertions(+), 18 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java index 9b50065..a261137 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java @@ -86,7 +86,7 @@ if (companyFieldForm.getIpStart() != null && companyFieldForm.getIpEnd() != null) { // �븘�씠�뵾 �쑀�슚�꽦 泥댄겕 - this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd()); + this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd(), null); } if (companyFieldForm.getUrl() != null) { @@ -119,21 +119,41 @@ * IP �쑀�슚�꽦 泥댄겕 * @param ip String */ - private void verifyIp(String ip, String ip2) { - if (ip2 == null) { - if (!StringUtils.isEmpty(ip)) { - if (!Pattern.matches("^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\" + - ".(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", ip)) { - throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_NOT_INVALID)); - } + private void verifyIp(String ip, String ip2, Long id) { + if (!StringUtils.isEmpty(ip)) { + if (!Pattern.matches("^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\" + + ".(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", ip)) { + throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_NOT_INVALID)); } - } else { - if (!StringUtils.isEmpty(ip)) { - long ipStart = ConvertUtil.ipToLong(ip); - long ipEnd = ConvertUtil.ipToLong(ip2); - if (ipEnd < ipStart) { - throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_START_NOT_LARGER_THAN_END)); - } + } + if (!StringUtils.isEmpty(ip2)) { + if (!Pattern.matches("^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\" + + ".(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", ip2)) { + throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_NOT_INVALID)); + } + } + + if (!StringUtils.isEmpty(ip) && !StringUtils.isEmpty(ip2)) { + long ipStart = ConvertUtil.ipToLong(ip); + long ipEnd = ConvertUtil.ipToLong(ip2); + if (ipEnd < ipStart) { + throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_START_NOT_LARGER_THAN_END)); + } + + List<CompanyField> companyFields = Lists.newArrayList(); + CompanyFieldCondition condition = new CompanyFieldCondition(); + condition.setIpStart(String.valueOf(ipStart)); + condition.setIpEnd(String.valueOf(ipEnd)); + if (id != null) { + condition.setId(id); + companyFields = this.companyFieldMapper.findByIpsAndIdNot(condition); + } else { + companyFields = this.companyFieldMapper.findByIps(condition); + } + + // IP���뿭�� 以묐났 泥댄겕 + if (companyFields != null && companyFields.size() > 0) { + throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.COMPANY_EXIST_IP)); } } } @@ -276,6 +296,11 @@ public void modifyCompany(CompanyFieldForm companyFieldForm) { // �뾽泥대챸 �쑀�슚�꽦 泥댄겕 this.verifyTitle(companyFieldForm.getName(), companyFieldForm.getId()); + + if (companyFieldForm.getIpStart() != null && companyFieldForm.getIpEnd() != null) { + // �븘�씠�뵾 �쑀�슚�꽦 泥댄겕 + this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd(), companyFieldForm.getId()); + } if (companyFieldForm.getUrl() != null) { // url �쑀�슚�꽦 泥댄겕 @@ -472,7 +497,7 @@ // �뾽泥대줈 �벑濡앺븯湲� �쐞�빐 CompanyFieldForm �뿉 �뜲�씠�꽣瑜� �뀑�똿�븳�떎. CompanyFieldForm newCompanyFieldForm = this.setCompanyFieldFormToExcelField(row, (rowIndex + 1), ispFieldMaps, hostingFieldMaps, companyTypeMaps, parentSectorMaps, childSectorMaps, regionMaps, statusMaps, headers); // ip �쑀�슚�꽦 泥댄겕 - this.verifyIp(newCompanyFieldForm.getIpStart(), newCompanyFieldForm.getIpEnd()); + this.verifyIp(newCompanyFieldForm.getIpStart(), newCompanyFieldForm.getIpEnd(), null); companyFieldForms.add(newCompanyFieldForm); } @@ -651,7 +676,7 @@ if (ipEnd.contains(" ")) { ipEnd = ipEnd.replace(" ", ""); } - this.verifyIp(ipEnd, null); //ip �쑀�슚�꽦 寃��궗 + this.verifyIp(ipEnd, null, null); //ip �쑀�슚�꽦 寃��궗 companyFieldForm.setIpEnd(ipEnd); } @@ -662,7 +687,7 @@ if (ipStart.contains(" ")) { ipStart = ipStart.replace(" ", ""); } - this.verifyIp(ipStart, null); //ip �쑀�슚�꽦 寃��궗 + this.verifyIp(ipStart, null, null); //ip �쑀�슚�꽦 寃��궗 companyFieldForm.setIpStart(ipStart); } -- Gitblit v1.8.0