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> 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 getRepository() { return this.issueApiDefaultRepository; } @Override @Transactional public IssueApiDefault find(Map 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 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 resJsonData, IssueApiDefaultForm form) { User user = this.webAppUtil.getLoginUserObject(); List 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; } }