OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-09 107ab8e67d089738ad8b3a1ff0efc96680a13cf6
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);
        }