From add0cdefd56c50c5427945c895574f71202e7ed6 Mon Sep 17 00:00:00 2001 From: minhee <alsdldlfrl@gmail.com> Date: 수, 16 3월 2022 18:12:51 +0900 Subject: [PATCH] - api로 이슈 추가 시 사용자정의필드 타입으로 체크 => 정규식표현검사로 체크로 변경 --- src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java | 154 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 127 insertions(+), 27 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 f2f56c6..0b9734d 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java @@ -84,30 +84,41 @@ // �뾽泥대챸 以묐났 泥댄겕 this.verifyTitle(companyFieldForm.getName(), null); - if (companyFieldForm.getIpStart() != null && companyFieldForm.getIpEnd() != null) { - // �븘�씠�뵾 �쑀�슚�꽦 泥댄겕 - this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd(), null); - } - if (companyFieldForm.getUrl() != null) { // url �쑀�슚�꽦 泥댄겕 this.verifyUrl(companyFieldForm.getUrl(), null); } + if (companyFieldForm.getIpStarts() != null && companyFieldForm.getIpStarts().size() > 0 + && companyFieldForm.getIpEnds() != null && companyFieldForm.getIpEnds().size() > 0) { + + for (int i=0; i<companyFieldForm.getIpStarts().size(); i++) { + // �븘�씠�뵾 �쑀�슚�꽦 泥댄겕 + this.verifyIp(companyFieldForm.getIpStarts().get(i), companyFieldForm.getIpEnds().get(i), null); + } + + String startIps = companyFieldForm.getIpStarts().toString(); + // ��愿꾪샇 �젣嫄� + startIps = this.removeSquare(startIps); + companyFieldForm.setIpStart(startIps.trim()); + + String endIps = companyFieldForm.getIpEnds().toString(); + // ��愿꾪샇 �젣嫄� + endIps = this.removeSquare(endIps); + companyFieldForm.setIpEnd(endIps.trim()); + } + if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) { String tels = companyFieldForm.getTelList().toString(); - if (tels.contains("[")) { - tels = tels.substring(1, tels.indexOf("]")); - } + // ��愿꾪샇 �젣嫄� + tels = this.removeSquare(tels); companyFieldForm.setTel(tels.trim()); } if (companyFieldForm.getEmailList() != null && companyFieldForm.getEmailList().size() > 0) { String emails = companyFieldForm.getEmailList().toString(); - String email = ""; - if (emails.contains("[")) { - email = emails.substring(1, emails.indexOf("]")); - } - companyFieldForm.setEmail(email.trim()); + // ��愿꾪샇 �젣嫄� + emails = this.removeSquare(emails); + companyFieldForm.setEmail(emails.trim()); } CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); @@ -116,8 +127,23 @@ } /** + * ��愿꾪샇([]) �젣嫄� �븿�닔 + * @param str String + * @return str + */ + private String removeSquare(String str) { + if (str.contains("[")) { + str = str.substring(1, str.indexOf("]")); + } + + return str; + } + + /** * IP �쑀�슚�꽦 泥댄겕 * @param ip String + * @param ip2 String + * @param id Long */ private void verifyIp(String ip, String ip2, Long id) { if (!StringUtils.isEmpty(ip)) { @@ -146,14 +172,76 @@ condition.setIpEnd(String.valueOf(ipEnd)); if (id != null) { condition.setId(id); - companyFields = this.companyFieldMapper.findByIpsAndIdNot(condition); + companyFields = this.companyFieldRepository.findByIdNot(condition.getId()); } else { - companyFields = this.companyFieldMapper.findByIps(condition); + companyFields = this.companyFieldRepository.findAll(); } // IP���뿭�� 以묐났 泥댄겕 - if (companyFields != null && companyFields.size() > 0) { + this.ipOverlapChk(companyFields, ipStart, ipEnd); + + /*if (companyFields != null && companyFields.size() > 0) { throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.COMPANY_EXIST_IP)); + }*/ + } + } + + /** + * ip ���뿭�� 以묐났 泥댄겕 + * @param companyFields List<CompanyField> + */ + private void ipOverlapChk(List<CompanyField> companyFields, long ipStart, long ipEnd) { + String[] ipStartArr = null; + String[] ipEndArr = null; + List<String> startIpList = Lists.newArrayList(); + List<String> endIpList = Lists.newArrayList(); + String startIp = ""; + String endIp = ""; + List<Long> startIps = Lists.newArrayList(); + List<Long> endIps = Lists.newArrayList(); + + if (companyFields.size() > 0) { + for (CompanyField companyField : companyFields) { + if(companyField.getIpStart() != null && companyField.getIpEnd() != null) { + startIp = companyField.getIpStart(); + if (startIp.contains(" ")) { + startIp = startIp.replace(" ",""); + } + if (startIp.contains(",")) { + ipStartArr = startIp.split(","); + startIpList.addAll(Arrays.asList(ipStartArr)); + } else { + startIpList.add(startIp.trim()); + } + + endIp = companyField.getIpEnd(); + if (endIp.contains(" ")) { + endIp = endIp.replace(" ",""); + } + if (endIp.contains(",")) { + ipEndArr = endIp.split(","); + endIpList.addAll(Arrays.asList(ipEndArr)); + } else { + endIpList.add(endIp.trim()); + } + } + } + if (startIpList.size() > 0) { + for (String ipS : startIpList) { + long start = ConvertUtil.ipToLong(ipS); + startIps.add(start); + } + for (String ipE : endIpList) { + long end = ConvertUtil.ipToLong(ipE); + endIps.add(end); + } + } + + for (int i=0; i<startIps.size(); i++) { + if (startIps.get(i) >= ipStart && startIps.get(i) <= ipEnd || endIps.get(i) >= ipStart && endIps.get(i) <= ipEnd + || ipStart >= startIps.get(i) && ipStart <= endIps.get(i) || ipEnd >= startIps.get(i) && ipEnd <= endIps.get(i)) { + throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.COMPANY_EXIST_IP)); + } } } } @@ -297,28 +385,40 @@ // �뾽泥대챸 �쑀�슚�꽦 泥댄겕 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 �쑀�슚�꽦 泥댄겕 this.verifyUrl(companyFieldForm.getUrl(), companyFieldForm.getId()); } + if (companyFieldForm.getIpStarts() != null && companyFieldForm.getIpStarts().size() > 0 + && companyFieldForm.getIpEnds() != null && companyFieldForm.getIpEnds().size() > 0) { + + for (int i=0; i<companyFieldForm.getIpStarts().size(); i++) { + // �븘�씠�뵾 �쑀�슚�꽦 泥댄겕 + this.verifyIp(companyFieldForm.getIpStarts().get(i), companyFieldForm.getIpEnds().get(i), companyFieldForm.getId()); + } + + String startIps = companyFieldForm.getIpStarts().toString(); + // ��愿꾪샇 �젣嫄� + startIps = this.removeSquare(startIps); + companyFieldForm.setIpStart(startIps.trim()); + + String endIps = companyFieldForm.getIpEnds().toString(); + // ��愿꾪샇 �젣嫄� + endIps = this.removeSquare(endIps); + companyFieldForm.setIpEnd(endIps.trim()); + } + if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) { String tels = companyFieldForm.getTelList().toString(); - if (tels.contains("[")) { - tels = tels.substring(1, tels.indexOf("]")); - } + // ��愿꾪샇 �젣嫄� + tels = this.removeSquare(tels); companyFieldForm.setTel(tels.trim()); } if (companyFieldForm.getEmailList() != null && companyFieldForm.getEmailList().size() > 0) { String emails = companyFieldForm.getEmailList().toString(); - if (emails.contains("[")) { - emails = emails.substring(1, emails.indexOf("]")); - } + // ��愿꾪샇 �젣嫄� + emails = this.removeSquare(emails); companyFieldForm.setEmail(emails.trim()); } -- Gitblit v1.8.0