package kr.wisestone.owl.service.impl;
|
|
import kr.wisestone.owl.constant.Constants;
|
import kr.wisestone.owl.domain.*;
|
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.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 IssueApiDefaultServiceImpl extends AbstractServiceImpl<IssueApiDefault, Long, JpaRepository<IssueApiDefault, Long>>
|
implements IssueApiDefaultService {
|
|
static final Logger log = LoggerFactory.getLogger(IssueApiDefaultServiceImpl.class);
|
|
@Autowired
|
private IssueApiDefaultRepository issueApiDefaultRepository;
|
|
@Autowired
|
private IssueTypeService issueTypeService;
|
|
@Autowired
|
private PriorityService priorityService;
|
|
@Autowired
|
private SeverityService severityService;
|
|
@Autowired
|
private ProjectService projectService;
|
|
@Override
|
protected JpaRepository<IssueApiDefault, Long> getRepository() {
|
return this.issueApiDefaultRepository;
|
}
|
|
@Override
|
@Transactional
|
public IssueApiDefault find(Map<String, Object> resJsonData, IssueApiDefaultForm form) {
|
form.setUserId(this.webAppUtil.getLoginId());
|
IssueApiDefault issueApiDefault = this.find(form);
|
if (issueApiDefault != null) {
|
IssueApiDefaultVo issueApiDefaultVo = ConvertUtil.copyProperties(issueApiDefault, IssueApiDefaultVo.class);
|
Project project = issueApiDefault.getProject();
|
if (project != null) {
|
issueApiDefaultVo.setProjectVo(ConvertUtil.copyProperties(project, ProjectVo.class));
|
}
|
|
Priority priority = issueApiDefault.getPriority();
|
if (priority != null) {
|
issueApiDefaultVo.setPriorityId(priority.getId());
|
}
|
|
Severity severity = issueApiDefault.getSeverity();
|
if (severity != null) {
|
issueApiDefaultVo.setSeverityId(severity.getId());
|
}
|
|
resJsonData.put(Constants.RES_KEY_CONTENTS, issueApiDefaultVo);
|
}
|
return issueApiDefault;
|
}
|
|
@Override
|
public IssueApiDefault find(IssueApiDefaultForm form) {
|
if (form.getUserId() != null && form.getIssueTypeId() != null) {
|
List<IssueApiDefault> issueApiDefaults = this.issueApiDefaultRepository.findByUserIdAndIssueTypeId(form.getUserId(), form.getIssueTypeId());
|
if (issueApiDefaults != null && issueApiDefaults.size() > 0) {
|
return issueApiDefaults.get(0);
|
}
|
}
|
return null;
|
}
|
|
@Override
|
public boolean modify(Map<String, Object> resJsonData, IssueApiDefaultForm form) {
|
User user = this.webAppUtil.getLoginUserObject();
|
List<IssueApiDefault> issueApiDefaults = this.issueApiDefaultRepository.findByUserIdAndIssueTypeId(user.getId(), form.getIssueTypeId());
|
if (issueApiDefaults != null && issueApiDefaults.size() > 0) {
|
this.issueApiDefaultRepository.deleteAll(issueApiDefaults);
|
}
|
IssueApiDefault issueApiDefault = new IssueApiDefault();
|
issueApiDefault = ConvertUtil.copyProperties(form, IssueApiDefault.class);
|
if (form.getPriorityId() != null)
|
issueApiDefault.setPriority(this.priorityService.getPriority(form.getPriorityId()));
|
|
if (form.getSeverityId() != null)
|
issueApiDefault.setSeverity(this.severityService.getSeverity(form.getSeverityId()));
|
|
if (form.getProjectId() != null)
|
issueApiDefault.setProject(this.projectService.getProject(form.getProjectId()));
|
|
issueApiDefault.setUser(user);
|
issueApiDefault.setIssueType(this.issueTypeService.getIssueType(form.getIssueTypeId()));
|
|
this.issueApiDefaultRepository.saveAndFlush(issueApiDefault);
|
|
return true;
|
}
|
}
|