From 3b019e5599dfb5d368f4e8fd50fb557f4679a645 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 12 1월 2022 15:19:58 +0900
Subject: [PATCH] 업체/isp/호스팅 기능 개편

---
 src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java |  197 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 175 insertions(+), 22 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 d431ed6..12d42d4 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -1,9 +1,15 @@
 package kr.wisestone.owl.service.impl;
 
-import kr.wisestone.owl.domain.CompanyField;
-import kr.wisestone.owl.service.UserService;
+import kr.wisestone.owl.domain.*;
+import kr.wisestone.owl.repository.HostingFieldRepository;
+import kr.wisestone.owl.repository.IspFieldRepository;
+import kr.wisestone.owl.service.*;
+import kr.wisestone.owl.util.CommonUtil;
+import kr.wisestone.owl.web.condition.CompanyFieldCategoryCondition;
 import kr.wisestone.owl.web.condition.CompanyFieldCondition;
 import kr.wisestone.owl.web.form.CompanyFieldForm;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.common.ExcelConditionCheck;
@@ -12,8 +18,6 @@
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.CompanyFieldMapper;
 import kr.wisestone.owl.repository.CompanyFieldRepository;
-import kr.wisestone.owl.service.CompanyFieldService;
-import kr.wisestone.owl.service.WorkspaceService;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.vo.*;
 import kr.wisestone.owl.web.view.ExcelView;
@@ -24,9 +28,7 @@
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class CompanyFieldServiceImpl extends AbstractServiceImpl<CompanyField, Long, JpaRepository<CompanyField, Long>> implements CompanyFieldService {
@@ -36,6 +38,21 @@
 
     @Autowired
     private CompanyFieldMapper companyFieldMapper;
+
+    @Autowired
+    private IspFieldRepository ispFieldRepository;
+
+    @Autowired
+    private HostingFieldRepository hostingFieldRepository;
+
+    @Autowired
+    private IspFieldService ispFieldService;
+
+    @Autowired
+    private HostingFieldService hostingFieldService;
+
+    @Autowired
+    private CompanyFieldCategoryService companyFieldCategoryService;
 
     @Autowired
     private UserService userService;
@@ -57,9 +74,41 @@
     // �뾽泥� 異붽�
     @Override
     public CompanyField addCompany(CompanyFieldForm companyFieldForm) {
+        //  url �쑀�슚�꽦 泥댄겕
+        this.verifyUrl(companyFieldForm.getUrl(), null);
+
+        if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) {
+            String[] tels = ConvertUtil.ToArray(companyFieldForm.getTelList());
+            companyFieldForm.setTel(Arrays.toString(tels));
+        }
+        if (companyFieldForm.getEmailList() != null && companyFieldForm.getEmailList().size() > 0) {
+            String[] emails = ConvertUtil.ToArray(companyFieldForm.getEmailList());
+            companyFieldForm.setEmail(Arrays.toString(emails));
+        }
+
         CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class);
         companyFieldRepository.saveAndFlush(companyField);
         return companyField;
+    }
+
+    //  url �쑀�슚�꽦 泥댄겕
+    private void verifyUrl(String url, Long id) {
+        if (StringUtils.isEmpty(url)) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_URL));
+        }
+        CompanyField companyField;
+
+        if(id == null){
+            companyField = this.companyFieldRepository.findByUrl(url);
+        } else {
+            companyField = this.companyFieldRepository.findByUrlAndIdNot(url,id);
+        }
+
+        if (companyField != null) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_USED_URL));
+        }
     }
 
     // �뾽泥� 紐⑸줉�쓣 媛��졇�삩�떎.
@@ -75,16 +124,67 @@
         return this.convertCompanyVoToMap(results, totalCompanyCount, pageable, resJsonData);
     }
 
+    public List<Map<String, Object>> find(CompanyFieldCondition condition) {
+        return this.companyFieldMapper.find(condition);
+    }
 
     // �뾽泥� �긽�꽭 議고쉶�븳�떎.
     @Override
+    @Transactional
     public void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition companyFieldCondition) {
         CompanyFieldVo companyFieldVo = new CompanyFieldVo();
+        IspFieldVo ispFieldVo = new IspFieldVo();
+        HostingFieldVo hostingFieldVo = new HostingFieldVo();
+
+        IspField ispField = new IspField();
+        HostingField hostingField = new HostingField();
 
         Long companyId = companyFieldCondition.getId();
         if (companyId != null) {
             CompanyField companyField = this.getCompany(companyId);
+            if(companyField.getIspId() != null && companyField.getIspId() != -1){
+                ispField = this.ispFieldRepository.getOne(companyField.getIspId());
+            }
+            if(companyField.getHostingId() != null && companyField.getHostingId() != -1){
+                hostingField = this.hostingFieldRepository.getOne(companyField.getHostingId());
+            }
             companyFieldVo = ConvertUtil.copyProperties(companyField, CompanyFieldVo.class);
+            ispFieldVo = ConvertUtil.copyProperties(ispField, IspFieldVo.class);
+            hostingFieldVo = ConvertUtil.copyProperties(hostingField, HostingFieldVo.class);
+
+            if (companyField.getCompanyTypeId() != null && companyField.getCompanyTypeId() != -1) {
+                CompanyFieldCategory companyType = this.companyFieldCategoryService.find(companyField.getCompanyTypeId());
+                if (companyType != null) {
+                    companyFieldVo.setCompanyTypeName(companyType.getUseValue());
+                }
+            }
+            if (companyField.getParentSectorId() != null && companyField.getParentSectorId() != -1) {
+                CompanyFieldCategory parentSector = this.companyFieldCategoryService.find(companyField.getParentSectorId());
+                if (parentSector != null) {
+                    companyFieldVo.setParentSectorName(parentSector.getUseValue());
+                }
+            }
+            if (companyField.getChildSectorId() != null && companyField.getChildSectorId() != -1) {
+                CompanyFieldCategory childSector = this.companyFieldCategoryService.find(companyField.getChildSectorId());
+                if (childSector != null) {
+                    companyFieldVo.setChildSectorName(childSector.getUseValue());
+                }
+            }
+            if (companyField.getRegionId() != null && companyField.getRegionId() != -1) {
+                CompanyFieldCategory region = this.companyFieldCategoryService.find(companyField.getRegionId());
+                if (region != null) {
+                    companyFieldVo.setRegionName(region.getUseValue());
+                }
+            }
+            /*if (companyField.getStatusId() != null && companyField.getStatusId() != -1) {
+                CompanyFieldCategory status = this.companyFieldCategoryService.find(companyField.getStatusId());
+                if (status != null) {
+                    companyFieldVo.setStatusName(status.getUseValue());
+                }
+            }*/
+
+            companyFieldVo.setIspFieldVo(ispFieldVo);
+            companyFieldVo.setHostingFieldVo(hostingFieldVo);
         }
         resJsonData.put(Constants.REQ_KEY_CONTENT, companyFieldVo);
     }
@@ -92,6 +192,18 @@
     // �뾽泥� �젙濡쒕�� �닔�젙�븳�떎.
     @Override
     public void modifyCompany(CompanyFieldForm companyFieldForm) {
+        //  url �쑀�슚�꽦 泥댄겕
+        this.verifyUrl(companyFieldForm.getUrl(), companyFieldForm.getId());
+
+        if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) {
+            String[] tels = ConvertUtil.ToArray(companyFieldForm.getTelList());
+            companyFieldForm.setTel(Arrays.toString(tels));
+        }
+        if (companyFieldForm.getEmailList() != null && companyFieldForm.getEmailList().size() > 0) {
+            String[] emails = ConvertUtil.ToArray(companyFieldForm.getEmailList());
+            companyFieldForm.setEmail(Arrays.toString(emails));
+        }
+
         CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class);
         companyFieldRepository.saveAndFlush(companyField);
     }
@@ -104,7 +216,10 @@
             throw new OwlRuntimeException(
                     this.messageAccessor.getMessage(MsgConstants.COMPANY_REMOVE_NOT_SELECT));
         }
-        this.companyFieldRepository.flush();
+        for (Long id : companyFieldForm.getRemoveIds()) {
+            this.companyFieldRepository.deleteById(id);
+            this.companyFieldRepository.flush();
+        }
     }
 
     // �뾽泥� 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
@@ -123,29 +238,28 @@
         }
 
         CompanyFieldCondition companyFieldCondition = CompanyFieldCondition.make(conditions);
-
-
         List<Map<String, Object>> results = this.companyFieldMapper.find(companyFieldCondition);
         List<CompanyFieldVo> companyFieldVos = ConvertUtil.convertListToListClass(results, CompanyFieldVo.class);
+
         // code_ko_KR �뿉 code紐� �꽕�젙
         ExportExcelVo excelInfo = new ExportExcelVo();
         excelInfo.setFileName(this.messageAccessor.message("�뾽泥� 紐⑸줉"));
-        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyName", this.messageAccessor.message("companyField.companyName"), 6, ExportExcelAttrVo.ALIGN_CENTER));
-        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyManager", this.messageAccessor.message("companyField.companyManager"), 10, ExportExcelAttrVo.ALIGN_CENTER));
-        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyTel", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER));
-        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyEmail", this.messageAccessor.message("companyField.companyEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER));
-        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyMemo", this.messageAccessor.message("companyField.companyMemo"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("name", this.messageAccessor.message("companyField.companyName"), 6, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("manager", this.messageAccessor.message("companyField.companyManager"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("tel", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("email", this.messageAccessor.message("companyField.companyEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("url", this.messageAccessor.message("companyField.companyUrl"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyTypeName", this.messageAccessor.message("companyField.companyTypeName"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("parentSectorName", this.messageAccessor.message("companyField.parentSectorName"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("childSectorName", this.messageAccessor.message("companyField.childSectorName"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("regionName", this.messageAccessor.message("companyField.regionName"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("statusName", this.messageAccessor.message("companyField.statusName"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("memo", this.messageAccessor.message("companyField.companyMemo"), 10, ExportExcelAttrVo.ALIGN_CENTER));
 
         excelInfo.setDatas(companyFieldVos);
 
         model.addAttribute(Constants.EXCEL, excelInfo);
         return new ModelAndView(this.excelView);
-    }
-
-    // �궘�젣 �븷 �뾽泥닿� �엳�뒗吏� �솗�씤
-    @Override
-    public boolean company(Long Id) {
-        return this.companyFieldMapper.findByCompany(Id) > 0;
     }
 
     //  寃��깋 寃곌낵瑜� CompanyFieldVo 濡� 蹂��솚�븳�떎.
@@ -154,6 +268,46 @@
 
         for (Map<String, Object> result : results) {
             CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(result, CompanyFieldVo.class);
+
+            if (companyFieldVo.getCompanyTypeId() != null && companyFieldVo.getCompanyTypeId() != -1) {
+                CompanyFieldCategory companyType = this.companyFieldCategoryService.find(companyFieldVo.getCompanyTypeId());
+                if (companyType != null) {
+                    companyFieldVo.setCompanyTypeName(companyType.getUseValue());
+                }
+            }
+            if (companyFieldVo.getParentSectorId() != null && companyFieldVo.getParentSectorId() != -1) {
+                CompanyFieldCategory parentSector = this.companyFieldCategoryService.find(companyFieldVo.getParentSectorId());
+                if (parentSector != null) {
+                    companyFieldVo.setParentSectorName(parentSector.getUseValue());
+                }
+            }
+            if (companyFieldVo.getChildSectorId() != null && companyFieldVo.getChildSectorId() != -1) {
+                CompanyFieldCategory childSector = this.companyFieldCategoryService.find(companyFieldVo.getChildSectorId());
+                if (childSector != null) {
+                    companyFieldVo.setChildSectorName(childSector.getUseValue());
+                }
+            }
+            if (companyFieldVo.getRegionId() != null && companyFieldVo.getRegionId() != -1) {
+                CompanyFieldCategory region = this.companyFieldCategoryService.find(companyFieldVo.getRegionId());
+                if (region != null) {
+                    companyFieldVo.setRegionName(region.getUseValue());
+                }
+            }
+
+            if(companyFieldVo.getIspId() != null && companyFieldVo.getIspId() != -1){
+                IspField ispField = this.ispFieldService.getIsp(companyFieldVo.getIspId());
+                if(ispField != null){
+                    IspFieldVo ispFieldVo = ConvertUtil.copyProperties(ispField, IspFieldVo.class);
+                    companyFieldVo.setIspFieldVo(ispFieldVo);
+                }
+            }
+            if(companyFieldVo.getHostingId() != null && companyFieldVo.getHostingId() != -1){
+                HostingField hostingField = this.hostingFieldService.getHosting(companyFieldVo.getHostingId());
+                if(hostingField != null){
+                    HostingFieldVo hostingFieldVo = ConvertUtil.copyProperties(hostingField, HostingFieldVo.class);
+                    companyFieldVo.setHostingFieldVo(hostingFieldVo);
+                }
+            }
             companyFieldVos.add(companyFieldVo);
         }
 
@@ -173,7 +327,6 @@
             throw new OwlRuntimeException(
                     this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST));
         }
-
         CompanyField companyField = this.findOne(id);
 
         if (companyField == null) {

--
Gitblit v1.8.0