From e2d65771ee3acc23b1ae09bc3d9c280844d54c8e Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 09 12월 2021 10:47:49 +0900 Subject: [PATCH] 업체 기준 ISP/호스팅 연동 진행중 - ISP,호스팅 이름은 autoComplete 형태라 못 불러오는 문제 있음 --- src/main/java/kr/wisestone/owl/util/ConvertUtil.java | 2 src/main/webapp/views/issue/issueAdd.html | 12 +++ src/main/java/kr/wisestone/owl/repository/IspFieldRepository.java | 4 + src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js | 3 src/main/webapp/views/ispField/ispFieldModify.html | 2 src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java | 23 +++++ src/main/webapp/scripts/app/issue/issueAdd.controller.js | 18 ++++ src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java | 28 +++++++ src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js | 2 src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java | 1 src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java | 8 + src/main/java/kr/wisestone/owl/repository/HostingFieldRepository.java | 5 + src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java | 44 +++++++++- src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java | 28 +++++++ src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java | 2 15 files changed, 173 insertions(+), 9 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java b/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java index d8fff79..3520b7e 100644 --- a/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java +++ b/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java @@ -8,4 +8,5 @@ CompanyField findByUrl(@Param("url") String url); + CompanyField findByUrlAndIdNot(@Param("url") String url, @Param("id") Long id); } diff --git a/src/main/java/kr/wisestone/owl/repository/HostingFieldRepository.java b/src/main/java/kr/wisestone/owl/repository/HostingFieldRepository.java index 406f77d..528ac5a 100644 --- a/src/main/java/kr/wisestone/owl/repository/HostingFieldRepository.java +++ b/src/main/java/kr/wisestone/owl/repository/HostingFieldRepository.java @@ -1,8 +1,13 @@ package kr.wisestone.owl.repository; +import kr.wisestone.owl.domain.CompanyField; import kr.wisestone.owl.domain.HostingField; +import kr.wisestone.owl.domain.IspField; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.query.Param; public interface HostingFieldRepository extends JpaRepository<HostingField, Long> { + HostingField findByUrl(@Param("url") String url); + HostingField findByUrlAndIdNot(@Param("url") String url, @Param("id") Long id); } diff --git a/src/main/java/kr/wisestone/owl/repository/IspFieldRepository.java b/src/main/java/kr/wisestone/owl/repository/IspFieldRepository.java index 1da6f7f..8b4a52c 100644 --- a/src/main/java/kr/wisestone/owl/repository/IspFieldRepository.java +++ b/src/main/java/kr/wisestone/owl/repository/IspFieldRepository.java @@ -1,8 +1,12 @@ package kr.wisestone.owl.repository; +import kr.wisestone.owl.domain.CompanyField; import kr.wisestone.owl.domain.IspField; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.query.Param; public interface IspFieldRepository extends JpaRepository<IspField, Long> { + IspField findByUrl(@Param("url") String url); + IspField findByUrlAndIdNot(@Param("url") String url, @Param("id") Long id); } 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 06d7e86..383e006 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java @@ -2,6 +2,10 @@ import kr.wisestone.owl.domain.CompanyField; import kr.wisestone.owl.domain.CustomField; +import kr.wisestone.owl.domain.HostingField; +import kr.wisestone.owl.domain.IspField; +import kr.wisestone.owl.repository.HostingFieldRepository; +import kr.wisestone.owl.repository.IspFieldRepository; import kr.wisestone.owl.service.UserService; import kr.wisestone.owl.web.condition.CompanyFieldCondition; import kr.wisestone.owl.web.form.CompanyFieldForm; @@ -40,6 +44,12 @@ private CompanyFieldMapper companyFieldMapper; @Autowired + private IspFieldRepository ispFieldRepository; + + @Autowired + private HostingFieldRepository hostingFieldRepository; + + @Autowired private UserService userService; @Autowired @@ -60,7 +70,7 @@ @Override public CompanyField addCompany(CompanyFieldForm companyFieldForm) { // url �쑀�슚�꽦 泥댄겕 - this.verifyUrl(companyFieldForm.getUrl()); + this.verifyUrl(companyFieldForm.getUrl(), null); CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); companyFieldRepository.saveAndFlush(companyField); @@ -68,12 +78,18 @@ } // url �쑀�슚�꽦 泥댄겕 - private void verifyUrl(String url) { + private void verifyUrl(String url, Long id) { if (StringUtils.isEmpty(url)) { throw new OwlRuntimeException( this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_URL)); } - CompanyField companyField = this.companyFieldRepository.findByUrl(url); + CompanyField companyField; + + if(id == null){ + companyField = this.companyFieldRepository.findByUrl(url); + } else { + companyField = this.companyFieldRepository.findByUrlAndIdNot(url,id); + } if (companyField != null) { throw new OwlRuntimeException( @@ -94,7 +110,6 @@ return this.convertCompanyVoToMap(results, totalCompanyCount, pageable, resJsonData); } - // �뾽泥� �긽�꽭 議고쉶�븳�떎. @Override public void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition companyFieldCondition) { @@ -112,7 +127,7 @@ @Override public void modifyCompany(CompanyFieldForm companyFieldForm) { // url �쑀�슚�꽦 泥댄겕 - this.verifyUrl(companyFieldForm.getUrl()); + this.verifyUrl(companyFieldForm.getUrl(), companyFieldForm.getId()); CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); companyFieldRepository.saveAndFlush(companyField); @@ -170,9 +185,28 @@ // 寃��깋 寃곌낵瑜� CompanyFieldVo 濡� 蹂��솚�븳�떎. private List<CompanyFieldVo> convertCompanyVoToMap(List<Map<String, Object>> results, Long totalCompanyCount, Pageable pageable, Map<String, Object> resJsonData) { List<CompanyFieldVo> companyFieldVos = Lists.newArrayList(); + List<IspFieldVo> ispFieldVos = Lists.newArrayList(); + List<HostingFieldVo> hostingFieldVos = Lists.newArrayList(); for (Map<String, Object> result : results) { CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(result, CompanyFieldVo.class); + + String url = companyFieldVo.getUrl(); + + IspField ispField = this.ispFieldRepository.findByUrl(url); + IspFieldVo ispFieldVo = ConvertUtil.copyProperties(ispField, IspFieldVo.class); + if(ispFieldVo != null){ + ispFieldVos.add(ispFieldVo); + } + companyFieldVo.setIspFieldVos(ispFieldVos); + + HostingField hostingField = this.hostingFieldRepository.findByUrl(url); + HostingFieldVo hostingFieldVo = ConvertUtil.copyProperties(hostingField, HostingFieldVo.class); + if(hostingFieldVo != null){ + hostingFieldVos.add(hostingFieldVo); + } + companyFieldVo.setHostingFieldVos(hostingFieldVos); + companyFieldVos.add(companyFieldVo); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java index eee1084..d969fe6 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java @@ -4,6 +4,7 @@ import kr.wisestone.owl.common.ExcelConditionCheck; import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.constant.MsgConstants; +import kr.wisestone.owl.domain.CompanyField; import kr.wisestone.owl.domain.HostingField; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.HostingFieldMapper; @@ -18,6 +19,7 @@ import kr.wisestone.owl.web.condition.HostingFieldCondition; import kr.wisestone.owl.web.form.HostingFieldForm; import kr.wisestone.owl.web.view.ExcelView; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; @@ -56,9 +58,32 @@ // Hosting 異붽� @Override public HostingField add(HostingFieldForm HostingFieldForm) { + // url �쑀�슚�꽦 泥댄겕 + this.verifyUrl(HostingFieldForm.getUrl(), null); + HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class); hostingFieldRepository.saveAndFlush(HostingField); return HostingField; + } + + // url �쑀�슚�꽦 泥댄겕 + private void verifyUrl(String url, Long id) { + if (StringUtils.isEmpty(url)) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_URL)); + } + HostingField hostingField; + + if(id == null){ + hostingField = this.hostingFieldRepository.findByUrl(url); + } else { + hostingField = this.hostingFieldRepository.findByUrlAndIdNot(url,id); + } + + if (hostingField != null) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_USED_URL)); + } } // Hosting 紐⑸줉�쓣 媛��졇�삩�떎. @@ -91,6 +116,9 @@ // Hosting �젙濡쒕�� �닔�젙�븳�떎. @Override public void modify(HostingFieldForm HostingFieldForm) { + // url �쑀�슚�꽦 泥댄겕 + this.verifyUrl(HostingFieldForm.getUrl(), HostingFieldForm.getId()); + HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class); hostingFieldRepository.saveAndFlush(HostingField); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java index d3fb15f..110f026 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java @@ -4,6 +4,7 @@ import kr.wisestone.owl.common.ExcelConditionCheck; import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.constant.MsgConstants; +import kr.wisestone.owl.domain.CompanyField; import kr.wisestone.owl.domain.IspField; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.IspFieldMapper; @@ -18,6 +19,7 @@ import kr.wisestone.owl.web.condition.IspFieldCondition; import kr.wisestone.owl.web.form.IspFieldForm; import kr.wisestone.owl.web.view.ExcelView; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; @@ -56,6 +58,9 @@ // Isp 異붽� @Override public IspField add(IspFieldForm IspFieldForm) { + // url �쑀�슚�꽦 泥댄겕 + this.verifyUrl(IspFieldForm.getUrl(), null); + IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class); ispFieldRepository.saveAndFlush(IspField); return IspField; @@ -72,6 +77,26 @@ Long totalIspCount = this.ispFieldMapper.count(condition); return this.convertIspVoToMap(results, totalIspCount, pageable, resJsonData); + } + + // url �쑀�슚�꽦 泥댄겕 + private void verifyUrl(String url, Long id) { + if (StringUtils.isEmpty(url)) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_URL)); + } + IspField ispField; + + if(id == null){ + ispField = this.ispFieldRepository.findByUrl(url); + } else { + ispField = this.ispFieldRepository.findByUrlAndIdNot(url,id); + } + + if (ispField != null) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_USED_URL)); + } } @@ -91,6 +116,9 @@ // Isp �젙濡쒕�� �닔�젙�븳�떎. @Override public void modify(IspFieldForm IspFieldForm) { + // url �쑀�슚�꽦 泥댄겕 + this.verifyUrl(IspFieldForm.getUrl(), IspFieldForm.getId()); + IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class); ispFieldRepository.saveAndFlush(IspField); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java index 1ffff50..0c3b5b1 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java @@ -80,6 +80,8 @@ for (ProjectType projectType : projectTypes) { List<IssueType> issueTypes = Lists.newArrayList(); Workflow workflow = this.workflowService.findByWorkspaceIdAndProjectType(workspace.getId(), projectType); + //String projectKey = "BTS"; + //Project project = this.projectService.findByProjectKey(projectKey); switch (projectType) { case BTS_PROJECT: diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java index f5f077d..09ccec0 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java @@ -93,6 +93,9 @@ private ProjectService projectService; @Autowired + private IssueTypeService issueTypeService; + + @Autowired private UserSecurityService userSecurityService; @Autowired @@ -258,7 +261,10 @@ this.userWorkspaceService.addUserWorkspace(user, workspace, true, true); // 湲곕낯�쑝濡� �젣怨듬릺�뒗 �봽濡쒖젥�듃瑜� �깮�꽦�븳�떎. -// this.projectService.addDefaultProject(user, workspace); + this.projectService.addDefaultProject(user, workspace); + + // 湲곕낯�쑝濡� �젣怨듬릺�뒗 �봽濡쒖젥�듃瑜� �씠�뒋 �쑀�삎�쓽 �궗�슜 �봽濡쒖젥�듃濡� �꽕�젙 + //this.issueTypeService.addDefaultUsedProject(workspace); user.setLastWorkspaceId(workspace.getId()); diff --git a/src/main/java/kr/wisestone/owl/util/ConvertUtil.java b/src/main/java/kr/wisestone/owl/util/ConvertUtil.java index c4470cf..5bc0f35 100644 --- a/src/main/java/kr/wisestone/owl/util/ConvertUtil.java +++ b/src/main/java/kr/wisestone/owl/util/ConvertUtil.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.exception.OwlRuntimeException; +import kr.wisestone.owl.vo.CompanyFieldVo; +import kr.wisestone.owl.vo.IspFieldVo; import org.apache.commons.lang3.ArrayUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java index 6ab7497..f09ad46 100644 --- a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java +++ b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java @@ -1,5 +1,9 @@ package kr.wisestone.owl.vo; +import com.google.common.collect.Lists; + +import java.util.List; + public class CompanyFieldVo extends UsePartnerVo { private String manager; @@ -7,6 +11,9 @@ private String email; private String url; private String memo; + + private List<IspFieldVo> ispFieldVos = Lists.newArrayList(); + private List<HostingFieldVo> hostingFieldVos = Lists.newArrayList(); public CompanyFieldVo() {} @@ -58,4 +65,20 @@ public void setUrl(String url) { this.url = url; } + + public List<IspFieldVo> getIspFieldVos() { + return ispFieldVos; + } + + public void setIspFieldVos(List<IspFieldVo> ispFieldVos) { + this.ispFieldVos = ispFieldVos; + } + + public List<HostingFieldVo> getHostingFieldVos() { + return hostingFieldVos; + } + + public void setHostingFieldVos(List<HostingFieldVo> hostingFieldVos) { + this.hostingFieldVos = hostingFieldVos; + } } diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js index 36df870..86c33ff 100644 --- a/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js +++ b/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js @@ -45,7 +45,7 @@ var content = { id : parameter.id, - code : $rootScope.preventXss($scope.vm.form.name), + code : $rootScope.preventXss($scope.vm.form.code), name : $rootScope.preventXss($scope.vm.form.name), manager : $rootScope.preventXss($scope.vm.form.manager), tel : $rootScope.preventXss($scope.vm.form.tel), diff --git a/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js b/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js index f654894..4182144 100644 --- a/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js +++ b/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js @@ -24,6 +24,7 @@ name : "", //ISP紐� manager : "", //�떞�떦�옄 tel : "", //�쟾�솕踰덊샇 + code : "", email : "", //�씠硫붿씪 url : "", // url memo : "" //硫붾え(鍮꾧퀬) @@ -44,7 +45,7 @@ var content = { id : parameter.id, - code : $rootScope.preventXss($scope.vm.form.name), + code : $rootScope.preventXss($scope.vm.form.code), name : $rootScope.preventXss($scope.vm.form.name), manager : $rootScope.preventXss($scope.vm.form.manager), tel : $rootScope.preventXss($scope.vm.form.tel), diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js index 18cb24a..5da56d6 100644 --- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js @@ -388,6 +388,9 @@ // �뾽泥댁젙蹂� 寃곌낵 媛� Event 泥섎━(set) $scope.$on("companyFieldEvent", function (event, result) { + var ispFieldVos = result[0].ispFieldVos[0]; + var hostingFieldVos = result[0].hostingFieldVos[0]; + $scope.vm.companyId = result[0].id; $scope.vm.companyName = result[0].name; $scope.vm.companyManager = result[0].manager; @@ -396,6 +399,21 @@ $scope.vm.companyUrl = result[0].url; $scope.vm.companyMemo = result[0].memo; + $scope.vm.ispName = ispFieldVos.name; + $scope.vm.ispCode = ispFieldVos.code; + $scope.vm.ispManager = ispFieldVos.manager; + $scope.vm.ispTel = ispFieldVos.tel; + $scope.vm.ispEmail = ispFieldVos.email; + $scope.vm.ispUrl = ispFieldVos.url; + $scope.vm.ispMemo = ispFieldVos.memo; + + $scope.vm.hostingName = hostingFieldVos.name; + $scope.vm.hostingCode = hostingFieldVos.code; + $scope.vm.hostingManager = hostingFieldVos.manager; + $scope.vm.hostingTel = hostingFieldVos.tel; + $scope.vm.hostingEmail = hostingFieldVos.email; + $scope.vm.hostingUrl = hostingFieldVos.url; + $scope.vm.hostingMemo = hostingFieldVos.memo; }); // ISP�젙蹂� 寃곌낵 媛� Event 泥섎━(set) diff --git a/src/main/webapp/views/ispField/ispFieldModify.html b/src/main/webapp/views/ispField/ispFieldModify.html index b4cd4bc..0598f3d 100644 --- a/src/main/webapp/views/ispField/ispFieldModify.html +++ b/src/main/webapp/views/ispField/ispFieldModify.html @@ -12,7 +12,7 @@ <form role="form" name="hostingFieldModifyForm"> <div class="form-group"> <label for="hostingFieldModifyForm1"> - <span translate="hostingField.name">ISP紐�</span> + <span translate="ispField.name">ISP紐�</span> <code class="highlighter-rouge">*</code> </label> <input id="hostingFieldModifyForm1" diff --git a/src/main/webapp/views/issue/issueAdd.html b/src/main/webapp/views/issue/issueAdd.html index e55ca04..57e7322 100644 --- a/src/main/webapp/views/issue/issueAdd.html +++ b/src/main/webapp/views/issue/issueAdd.html @@ -487,6 +487,17 @@ <div class="col-lg-4"> <div class="form-group mb10"> <label class="issue-label"> <span translate="ispField.name">ISP �씠由�</span> </label> + <!--<input ng-click="show==false" + ng-show="show" + ng-hide="!show" + name="ispName" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.ispName" + ng-maxlength="100" + maxlength="100">--> <js-autocomplete-single data-input-name="ispField" selected-model="vm.form.issueIspFields" search="vm.ispName" @@ -609,6 +620,7 @@ <label class="issue-label"> <span translate="hostingField.name">�샇�뒪�똿 �씠由�</span> </label> <js-autocomplete-single data-input-name="hostingField" selected-model="vm.form.issueHostingFields" + ng-model="vm.hostingName" search="vm.hostingName" source="fn.getIssueHostingFieldList(vm.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)" page="vm.autoCompletePage.hostingField.page" -- Gitblit v1.8.0