OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
@@ -6,9 +6,11 @@
import kr.wisestone.owl.constant.MsgConstants;
import kr.wisestone.owl.domain.CompanyField;
import kr.wisestone.owl.domain.HostingField;
import kr.wisestone.owl.domain.IspField;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.mapper.HostingFieldMapper;
import kr.wisestone.owl.repository.HostingFieldRepository;
import kr.wisestone.owl.service.CompanyFieldService;
import kr.wisestone.owl.service.HostingFieldService;
import kr.wisestone.owl.service.WorkspaceService;
import kr.wisestone.owl.util.ConvertUtil;
@@ -24,10 +26,12 @@
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -45,6 +49,9 @@
    private WorkspaceService workspaceService;
    @Autowired
    private CompanyFieldService companyFieldService;
    @Autowired
    private ExcelView excelView;
    @Autowired
@@ -58,30 +65,28 @@
    // Hosting 추가
    @Override
    public HostingField add(HostingFieldForm HostingFieldForm) {
        if(HostingFieldForm.getUrl() != null){
            //  url 유효성 체크
            this.verifyUrl(HostingFieldForm.getUrl(), null);
        if (HostingFieldForm.getTelList() != null && HostingFieldForm.getTelList().size() > 0) {
            String tels = HostingFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            HostingFieldForm.setTel(tels.trim());
        }
        if (HostingFieldForm.getEmailList() != null && HostingFieldForm.getEmailList().size() > 0) {
            String emails = HostingFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            HostingFieldForm.setEmail(emails.trim());
        }
        HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
        hostingFieldRepository.saveAndFlush(HostingField);
        return HostingField;
    }
    //  url 유효성 체크
    private void verifyUrl(String url, Long id) {
        HostingField hostingField;
        if(id == null){
            hostingField = this.hostingFieldRepository.findByUrl(url);
        HostingField hostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
        if (hostingField.getCode() != null && !hostingField.getCode().equals("")) {
            hostingFieldRepository.saveAndFlush(hostingField);
        } else {
            hostingField = this.hostingFieldRepository.findByUrlAndIdNot(url,id);
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.HOSTING_CODE_NOT_ENTER));
        }
        if (hostingField != null) {
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_USED_URL));
        }
        return hostingField;
    }
    // Hosting 목록을 가져온다.
@@ -97,6 +102,9 @@
        return this.convertHostingVoToMap(results, totalHostingCount, pageable, resJsonData);
    }
    public Map<String, Object> find(Long id) {
        return this.hostingFieldMapper.findById(id);
    }
    // Hosting 상세 조회한다.
    @Override
@@ -114,30 +122,49 @@
    // Hosting 정로를 수정한다.
    @Override
    public void modify(HostingFieldForm HostingFieldForm) {
        //  url 유효성 체크
        if(HostingFieldForm.getUrl() != null){
            this.verifyUrl(HostingFieldForm.getUrl(), HostingFieldForm.getId());
        if (HostingFieldForm.getTelList() != null && HostingFieldForm.getTelList().size() > 0) {
            String tels = HostingFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            HostingFieldForm.setTel(tels.trim());
        }
        if (HostingFieldForm.getEmailList() != null && HostingFieldForm.getEmailList().size() > 0) {
            String emails = HostingFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            HostingFieldForm.setEmail(emails.trim());
        }
        HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
        hostingFieldRepository.saveAndFlush(HostingField);
    }
    // Hosting를 삭제한다.
    @Override
    public void remove(HostingFieldForm HostingFieldForm) {
        if (HostingFieldForm.getRemoveIds().size() < 1) {
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.COMPANY_REMOVE_NOT_SELECT));
                    this.messageAccessor.getMessage(MsgConstants.HOSTING_REMOVE_NOT_SELECT));
        }
        for (Long id : HostingFieldForm.getRemoveIds()) {
            List<CompanyField> companyField = this.companyFieldService.findByHosting(id);
            if (companyField != null && companyField.size() > 0) {
                throw new OwlRuntimeException(
                        this.messageAccessor.getMessage(MsgConstants.HOSTING_EXIST_COMPANY));
            } else {
                this.hostingFieldRepository.deleteById(id);
            }
        }
        this.hostingFieldRepository.flush();
    }
    @Override
    @Transactional(readOnly = true)
    public List<HostingField> findAll() {
        return this.hostingFieldRepository.findAll();
    }
    // Hosting 목록을 엑셀로 다운로드 한다.
    @Override
    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {