OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
@@ -6,9 +6,11 @@
import kr.wisestone.owl.constant.MsgConstants;
import kr.wisestone.owl.domain.CompanyField;
import kr.wisestone.owl.domain.IspField;
import kr.wisestone.owl.domain.Priority;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.mapper.IspFieldMapper;
import kr.wisestone.owl.repository.IspFieldRepository;
import kr.wisestone.owl.service.CompanyFieldService;
import kr.wisestone.owl.service.IspFieldService;
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,12 +65,28 @@
    // Isp 추가
    @Override
    public IspField add(IspFieldForm IspFieldForm) {
        //  url 유효성 체크
        this.verifyUrl(IspFieldForm.getUrl(), null);
        if (IspFieldForm.getTelList() != null && IspFieldForm.getTelList().size() > 0) {
            String tels = IspFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            IspFieldForm.setTel(tels.trim());
        }
        if (IspFieldForm.getEmailList() != null && IspFieldForm.getEmailList().size() > 0) {
            String emails = IspFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            IspFieldForm.setEmail(emails.trim());
        }
        IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
        ispFieldRepository.saveAndFlush(IspField);
        return IspField;
        IspField ispField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
        if (ispField.getCode() != null && !ispField.getCode().equals("")) {
            ispFieldRepository.saveAndFlush(ispField);
        } else {
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.ISP_CODE_NOT_ENTER));
        }
        return ispField;
    }
    // Isp 목록을 가져온다.
@@ -79,26 +102,9 @@
        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));
        }
    public Map<String, Object> find(Long id) {
        return this.ispFieldMapper.findById(id);
    }
    // Isp 상세 조회한다.
    @Override
@@ -116,8 +122,20 @@
    // Isp 정로를 수정한다.
    @Override
    public void modify(IspFieldForm IspFieldForm) {
        //  url 유효성 체크
        this.verifyUrl(IspFieldForm.getUrl(), IspFieldForm.getId());
        if (IspFieldForm.getTelList() != null && IspFieldForm.getTelList().size() > 0) {
            String tels = IspFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            IspFieldForm.setTel(tels.trim());
        }
        if (IspFieldForm.getEmailList() != null && IspFieldForm.getEmailList().size() > 0) {
            String emails = IspFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            IspFieldForm.setEmail(emails.trim());
        }
        IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
        ispFieldRepository.saveAndFlush(IspField);
@@ -132,11 +150,23 @@
                    this.messageAccessor.getMessage(MsgConstants.ISP_REMOVE_NOT_SELECT));
        }
        for (Long id : IspFieldForm.getRemoveIds()) {
            List<CompanyField> companyField = this.companyFieldService.findByIsp(id);
            if (companyField != null && companyField.size() > 0) {
                throw new OwlRuntimeException(
                        this.messageAccessor.getMessage(MsgConstants.ISP_EXIST_COMPANY));
            } else {
                this.ispFieldRepository.deleteById(id);
            }
        }
        this.ispFieldRepository.flush();
    }
    @Override
    @Transactional(readOnly = true)
    public List<IspField> findAll() {
        return this.ispFieldRepository.findAll();
    }
    // Isp 목록을 엑셀로 다운로드 한다.
    @Override
    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {