From bdb1efdc604fce543e21152b4263a9362f64389f Mon Sep 17 00:00:00 2001 From: minhee <alsdldlfrl@gmail.com> Date: 목, 10 3월 2022 15:35:19 +0900 Subject: [PATCH] - api 이슈 추가 시 입력한 ip에 속해있는 업체정보를 가진 이슈의 하위로 입력되도록 수정 - issue_company 테이블에 ip 컬럼 추가 및 이슈 추가/수정 시 ip 대역대 항목 추가 --- src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java | 144 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 125 insertions(+), 19 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java index 4b16e2c..533d144 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java @@ -1,12 +1,17 @@ package kr.wisestone.owl.service.impl; import kr.wisestone.owl.domain.*; +import kr.wisestone.owl.domain.enumType.IssueHistoryType; import kr.wisestone.owl.mapper.IssueCompanyMapper; import kr.wisestone.owl.repository.IssueCompanyRepository; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; +import kr.wisestone.owl.vo.CompanyFieldVo; import kr.wisestone.owl.web.condition.IssueCondition; +import kr.wisestone.owl.web.form.CompanyFieldForm; +import kr.wisestone.owl.web.form.IspFieldForm; +import kr.wisestone.owl.web.form.IssueForm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -28,6 +33,12 @@ private CompanyFieldService companyFieldService; @Autowired + private CompanyFieldCategoryService companyFieldCategoryService; + + @Autowired + private IssueHistoryService issueHistoryService; + + @Autowired private IssueCompanyMapper issueCompanyMapper; @Override @@ -35,38 +46,133 @@ return this.issueCompanyRepository; } + /** + * �깉濡쒖슫 �뾽泥� 吏곸젒 異붽� + * @param issueForm IssueForm + * @param issue Issue + */ + private void CreateCompanyField(IssueForm issueForm, Issue issue, StringBuilder sb) { + + CompanyFieldForm companyFieldForm = new CompanyFieldForm(); + companyFieldForm.setName(issueForm.getCompanyName()); + companyFieldForm.setEmail(issueForm.getCompanyEmail()); + companyFieldForm.setUrl(issueForm.getCompanyUrl()); + companyFieldForm.setIpStart(issueForm.getIpStart()); + companyFieldForm.setIpEnd(issueForm.getIpEnd()); + companyFieldForm.setManager(issueForm.getCompanyManager()); + companyFieldForm.setTel(issueForm.getCompanyTel()); + companyFieldForm.setMemo(issueForm.getCompanyMemo()); + companyFieldForm.setCompanyTypeName(issueForm.getCompanyTypeName()); + companyFieldForm.setParentSectorName(issueForm.getParentSectorName()); + companyFieldForm.setChildSectorName(issueForm.getChildSectorName()); + companyFieldForm.setRegionName(issueForm.getRegionName()); + companyFieldForm.setStatusName(issueForm.getStatusName()); + + IssueCompany newIssueCompany = CreateIssueCompany(companyFieldForm, issue); + CompanyField companyField = new CompanyField(); + + // �궗�슜�옄媛� 吏곸젒 �엯�젰 �떆 COMPANY 紐⑸줉�뿉 異붽� + if (newIssueCompany.getCompanyField() == null) { + IssueCompany oldIssueCompany = this.issueCompanyRepository.findByIssueId(issue.getId()); + companyField = this.companyFieldService.addCompany(companyFieldForm); + companyFieldForm.setId(companyField.getId()); + if (oldIssueCompany != null) { + issueHistoryService.detectIssueCompany(IssueHistoryType.MODIFY, null, companyFieldForm, oldIssueCompany, sb); + this.issueCompanyRepository.deleteById(oldIssueCompany.getId()); + } else { + newIssueCompany.setCompanyField(companyField); + issueHistoryService.detectIssueCompany(IssueHistoryType.ADD, null, companyFieldForm, newIssueCompany, sb); + } + } + this.issueCompanyRepository.saveAndFlush(newIssueCompany); + } + + /** + * �씠�뒋 Company 留뚮뱾湲� + * @param companyFieldForm CompanyFieldForm + * @param issue �씠�뒋 + * @return issueCompany + */ + private IssueCompany CreateIssueCompany(CompanyFieldForm companyFieldForm, Issue issue) { + IssueCompany issueCompany = ConvertUtil.copyProperties(companyFieldForm, IssueCompany.class, "id"); + issueCompany.setIssue(issue); + if (companyFieldForm.getId() != null && companyFieldForm.getId() != -1) { + CompanyField companyField = this.companyFieldService.getCompany(companyFieldForm.getId()); + issueCompany.setCompanyField(companyField); + } + return issueCompany; + } + // �씠�뒋�뿉�꽌 �궗�슜�릺�뒗 �뾽泥� 媛믪쓣 �뾽�뜲�씠�듃�븳�떎. @Override @Transactional - public void modifyIssueCompanyField(Issue issue, List<Map<String, Object>> issueCompanyFields) { + public void modifyIssueCompanyField(Issue issue, IssueForm issueForm, StringBuilder sb) { if (issue != null) { + IssueCompany issueCompany = this.issueCompanyRepository.findByIssueId(issue.getId()); + List<Map<String, Object>> issueCompanyFields = issueForm.getIssueCompanyFields(); + if (issueCompanyFields != null && issueCompanyFields.size() > 0) { Map<String, Object> param = issueCompanyFields.get(0); - if (param != null) { - CompanyField companyField = this.companyFieldService.getCompany(MapUtil.getLong(param, "companyId")); + CompanyFieldVo companyFieldVo = new CompanyFieldVo(); + CompanyField companyField = ConvertUtil.convertMapToClass(param, CompanyField.class); + companyFieldVo = this.companyFieldService.CreateCompanyFieldCategory(companyFieldVo, companyField); + param.put("companyTypeName", companyFieldVo.getCompanyTypeName()); + param.put("parentSectorName", companyFieldVo.getParentSectorName()); + param.put("childSectorName", companyFieldVo.getChildSectorName()); + param.put("regionName", companyFieldVo.getRegionName()); + param.put("statusName", companyFieldVo.getStatusName()); - Set<IssueCompany> issueCompanies = issue.getIssueCompanies(); - if (issueCompanies != null && issueCompanies.size() > 0) { - IssueCompany issueCompany = issueCompanies.iterator().next(); - issueCompany.setCompanyField(companyField); - issueCompany.setName(MapUtil.getString(param, "name")); - issueCompany.setEmail(MapUtil.getString(param, "email")); - issueCompany.setManager(MapUtil.getString(param, "manager")); - issueCompany.setTel(MapUtil.getString(param, "tel")); - issueCompany.setMemo(MapUtil.getString(param, "memo")); + if (issueCompany != null) { //�닔�젙 �떆 + // 蹂�寃� �씠�젰 癒쇱� �궓湲곌퀬 issueCompany�뿉 set�븯湲� + issueHistoryService.detectIssueCompany(IssueHistoryType.MODIFY, param, null, issueCompany, sb); - this.issueCompanyRepository.saveAndFlush(issueCompany); + issueCompany.setName(MapUtil.getString(param, "name")); + issueCompany.setEmail(MapUtil.getString(param, "email")); + issueCompany.setUrl(MapUtil.getString(param, "url")); + issueCompany.setIpStart(MapUtil.getString(param, "ipStart")); + issueCompany.setIpEnd(MapUtil.getString(param, "ipEnd")); + issueCompany.setManager(MapUtil.getString(param, "manager")); + issueCompany.setTel(MapUtil.getString(param, "tel")); + issueCompany.setMemo(MapUtil.getString(param, "memo")); + issueCompany.setCompanyTypeId(MapUtil.getLong(param, "companyTypeId")); + issueCompany.setParentSectorId(MapUtil.getLong(param, "parentSectorId")); + issueCompany.setChildSectorId(MapUtil.getLong(param, "childSectorId")); + issueCompany.setRegionId(MapUtil.getLong(param, "regionId")); + issueCompany.setStatusId(MapUtil.getLong(param, "statusId")); + issueCompany.setStatusName(MapUtil.getString(param, "statusName")); - } else { - IssueCompany newIssueCompany = ConvertUtil.convertMapToClass(param, IssueCompany.class); - newIssueCompany.setIssue(issue); - newIssueCompany.setCompanyField(companyField); + this.issueCompanyRepository.saveAndFlush(issueCompany); + } else { //異붽� �떆 + CompanyFieldForm companyFieldForm = ConvertUtil.convertMapToClass(param, CompanyFieldForm.class); + companyFieldForm.setId(MapUtil.getLong(param, "companyId")); - this.issueCompanyRepository.saveAndFlush(newIssueCompany); - } + IssueCompany newIssueCompany = CreateIssueCompany(companyFieldForm, issue); + + companyFieldVo = this.companyFieldService.CreateCompanyFieldCategory(companyFieldVo, companyField); + companyFieldForm.setCompanyTypeName(companyFieldVo.getCompanyTypeName()); + companyFieldForm.setParentSectorName(companyFieldVo.getParentSectorName()); + companyFieldForm.setChildSectorName(companyFieldVo.getChildSectorName()); + companyFieldForm.setRegionName(companyFieldVo.getRegionName()); + companyFieldForm.setStatusName(companyFieldVo.getStatusName()); + + // 異붽� �씠�젰 + issueHistoryService.detectIssueCompany(IssueHistoryType.ADD, param, companyFieldForm, newIssueCompany, sb); + this.issueCompanyRepository.saveAndFlush(newIssueCompany); + } + + } else if(issueForm.getCompanyName() != null && !issueForm.getCompanyName().equals("")) { + //�뾽泥댁젙蹂� 吏곸젒 異붽� + CreateCompanyField(issueForm, issue, sb); + } else { + this.issueCompanyRepository.deleteByIssueId(issue.getId()); + this.issueCompanyRepository.flush(); + + if (issueCompany != null) { + issueHistoryService.detectIssueCompany(IssueHistoryType.DELETE, null, null, issueCompany, sb); } } + //issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); } } -- Gitblit v1.8.0