| | |
| | | import java.io.IOException; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | import java.util.regex.Pattern; |
| | | |
| | | import static kr.wisestone.owl.domain.enumType.CustomFieldType.*; |
| | | |
| | |
| | | } else { |
| | | urls.add(useValue); |
| | | } |
| | | condition.setUrl(urls); |
| | | condition.setUrls(urls); |
| | | companyFields = this.companyFieldService.find(condition); |
| | | |
| | | if(companyFields != null && companyFields.size() > 0) { |
| | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * url 정규식 표현 |
| | | * @param url String |
| | | */ |
| | | private boolean verifyUrl(String url) { |
| | | boolean urlChk = false; |
| | | if (!StringUtils.isEmpty(url)) { |
| | | String reg = "^((http|https)://)?(www.)?([a-zA-Z0-9]+)\\.[a-z]+([a-zA-z0-9.?#]+)?"; |
| | | if(Pattern.matches(reg, url)) { |
| | | urlChk = true; |
| | | } |
| | | } |
| | | return urlChk; |
| | | } |
| | | |
| | | /** |
| | | * ip 정규식 표현 |
| | | * @param ip String |
| | | * @return boolean |
| | | */ |
| | | private boolean verifyIp(String ip) { |
| | | boolean ipChk = false; |
| | | 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)) { |
| | | ipChk = true; |
| | | } |
| | | } |
| | | |
| | | return ipChk; |
| | | } |
| | | |
| | | // 중복된 상위 이슈 검색 |
| | | private List<Issue> findIssue(IssueApiForm issueApiform, IssueForm issueForm, List<CustomFieldApiOverlap> customFieldApiOverlaps, Long userId) { |
| | | List<IssueCustomFieldValueForm> issueCustomFieldValueForms = issueApiform.getIssueCustomFieldValues(); |
| | |
| | | useValue = useValue.replace(" ",""); |
| | | } |
| | | |
| | | if (customFieldApiOverlap.getCustomField().getCustomFieldType().equals(IP_ADDRESS)) { |
| | | if (this.verifyIp(useValue)) { |
| | | long ip = ConvertUtil.ipToLong(useValue); |
| | | customFieldType = IP_ADDRESS.toString(); |
| | | if (cntIp == 0){ |
| | |
| | | cntIp ++; |
| | | } |
| | | |
| | | if(customFieldApiOverlap.getCustomField().getCustomFieldType().equals(SITE)) { |
| | | if (this.verifyUrl(useValue)) { |
| | | customFieldType = SITE.toString(); |
| | | if (cntSite == 0) { |
| | | condition.setUrl(useValue); |
| | | } |
| | | cntSite ++; |
| | | } |
| | | |
| | | /*if (customFieldApiOverlap.getCustomField().getCustomFieldType().equals(IP_ADDRESS)) { |
| | | long ip = ConvertUtil.ipToLong(useValue); |
| | | customFieldType = IP_ADDRESS.toString(); |
| | | if (cntIp == 0){ |
| | | condition.setIp(ip); |
| | | } |
| | | cntIp ++; |
| | | }*/ |
| | | |
| | | /*if(customFieldApiOverlap.getCustomField().getCustomFieldType().equals(SITE)) { |
| | | customFieldType = SITE.toString(); |
| | | String[] urlArr = null; |
| | | List<String> urls = Lists.newArrayList(); |
| | |
| | | condition.setUrl(urls); |
| | | } |
| | | cntSite ++; |
| | | } |
| | | }*/ |
| | | |
| | | if (useIdx > 0) { |
| | | concatUseValue = concatUseValue.concat(comma); |
| | |
| | | } |
| | | |
| | | // 추가 할 url or ip에 포함되어있는 파트너 찾기 |
| | | this.findPartner(condition, issueCompanyFields, issueIspFields, issueHostingFields); |
| | | if ((condition.getIp() > 0) || (condition.getUrl() != null && !condition.getUrl().equals(""))) { |
| | | this.findPartner(condition, issueCompanyFields, issueIspFields, issueHostingFields); |
| | | } |
| | | |
| | | issueForm.setIssueCompanyFields(issueCompanyFields); |
| | | issueForm.setIssueIspFields(issueIspFields); |