package kr.wisestone.owl.service.impl;
|
|
import com.google.common.collect.Lists;
|
import kr.wisestone.owl.constant.Constants;
|
import kr.wisestone.owl.domain.*;
|
import kr.wisestone.owl.repository.CustomFieldApiOverlapRepository;
|
import kr.wisestone.owl.repository.IssueApiDefaultRepository;
|
import kr.wisestone.owl.service.*;
|
import kr.wisestone.owl.util.ConvertUtil;
|
import kr.wisestone.owl.vo.*;
|
import kr.wisestone.owl.web.form.CustomFieldApiOverlapForm;
|
import kr.wisestone.owl.web.form.IssueApiDefaultForm;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
import java.util.Map;
|
|
@Service
|
public class CustomFieldApiOverlapServiceImpl extends AbstractServiceImpl<CustomFieldApiOverlap, Long, JpaRepository<CustomFieldApiOverlap, Long>>
|
implements CustomFieldApiOverlapService {
|
|
static final Logger log = LoggerFactory.getLogger(CustomFieldApiOverlapServiceImpl.class);
|
|
@Autowired
|
private CustomFieldApiOverlapRepository customFieldApiOverlapRepository;
|
|
@Autowired
|
private IssueTypeService issueTypeService;
|
|
@Autowired
|
private ProjectService projectService;
|
|
@Autowired
|
private CustomFieldService customFieldService;
|
|
@Override
|
protected JpaRepository<CustomFieldApiOverlap, Long> getRepository() {
|
return this.customFieldApiOverlapRepository;
|
}
|
|
@Override
|
public List<CustomFieldApiOverlap> find(Long userId, Long issueTypeId) {
|
return this.customFieldApiOverlapRepository.findByUserIdAndIssueTypeId(userId, issueTypeId);
|
}
|
|
@Override
|
@Transactional
|
public void find(Map<String, Object> resJsonData, CustomFieldApiOverlapForm form) {
|
Long userId = this.webAppUtil.getLoginId();
|
List<CustomFieldApiOverlap> customFieldApiOverlaps = this.find(userId, form.getIssueTypeId());
|
if (customFieldApiOverlaps != null && customFieldApiOverlaps.size() > 0) {
|
|
List<CustomFieldApiOverlapVo> customFieldApiOverlapVos = Lists.newArrayList();
|
for (CustomFieldApiOverlap customFieldApiOverlap : customFieldApiOverlaps) {
|
CustomFieldApiOverlapVo customFieldApiOverlapVo = ConvertUtil.copyProperties(customFieldApiOverlap, CustomFieldApiOverlapVo.class);
|
|
CustomField customField = customFieldApiOverlap.getCustomField();
|
if (customField != null) {
|
customFieldApiOverlapVo.setCustomFieldVo(ConvertUtil.copyProperties(customField, CustomFieldVo.class));
|
}
|
|
customFieldApiOverlapVos.add(customFieldApiOverlapVo);
|
}
|
|
resJsonData.put(Constants.RES_KEY_CONTENTS, customFieldApiOverlapVos);
|
}
|
}
|
|
@Override
|
@Transactional
|
public boolean modify(Map<String, Object> resJsonData, CustomFieldApiOverlapForm form) {
|
User user = this.webAppUtil.getLoginUserObject();
|
Project project = this.projectService.getProject(form.getProjectId());
|
List<CustomFieldApiOverlap> customFieldApiOverlaps = this.customFieldApiOverlapRepository.findByUserIdAndIssueTypeId(user.getId(), form.getIssueTypeId());
|
if (customFieldApiOverlaps != null && customFieldApiOverlaps.size() > 0) {
|
this.customFieldApiOverlapRepository.deleteAll(customFieldApiOverlaps);
|
}
|
|
List<CustomFieldApiOverlap> customFieldApiOverlapList = Lists.newArrayList();
|
for (Long customFieldId : form.getCustomFieldIds()) {
|
CustomFieldApiOverlap customFieldApiOverlap = ConvertUtil.copyProperties(form, CustomFieldApiOverlap.class);
|
CustomField customField = this.customFieldService.getCustomField(customFieldId);
|
customFieldApiOverlap.setCustomField(customField);
|
customFieldApiOverlap.setUser(user);
|
customFieldApiOverlap.setIssueType(this.issueTypeService.getIssueType(form.getIssueTypeId()));
|
customFieldApiOverlap.setProject(project);
|
|
customFieldApiOverlapList.add(customFieldApiOverlap);
|
}
|
|
this.customFieldApiOverlapRepository.saveAll(customFieldApiOverlapList);
|
|
return true;
|
}
|
}
|