package kr.wisestone.owl.data; import kr.wisestone.owl.config.CommonConfiguration; import kr.wisestone.owl.domain.*; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.web.form.IssueForm; import org.springframework.beans.factory.annotation.Autowired; // issue 유효성 체크용 클래스 public class CheckIssueData { Issue issue; IssueStatus oldIssueStatus; IssueStatus newIssueStatus; Project project; IssueType issueType; Priority priority; Severity severity; @Autowired private IssueService issueService; @Autowired private WorkspaceService workspaceService; @Autowired private ProjectService projectService; @Autowired private IssueStatusService issueStatusService; @Autowired private IssueTypeService issueTypeService; @Autowired private PriorityService priorityService; @Autowired private SeverityService severityService; public CheckIssueData() {} public boolean CheckData(User user, IssueForm issueForm) { // 사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다. this.workspaceService.checkUseWorkspace(user, user.getLastWorkspaceId()); Issue issue = this.issueService.getIssue(issueForm.getId()); IssueStatus oldIssueStatus = issue.getIssueStatus(); // 프로젝트 유효성 체크 Project project = this.projectService.getProject(issueForm.getProjectId()); // 이슈 상태 유효성 체크 IssueStatus issueStatus = this.issueStatusService.getIssueStatus(issueForm.getIssueStatusId()); // 이슈 유형 유효성 체크 IssueType issueType = this.issueTypeService.getIssueType(issueForm.getIssueTypeId()); // 우선순위 유효성 체크 Priority priority = this.priorityService.getPriority(issueForm.getPriorityId()); // 중요도 유효성 체크 Severity severity = this.severityService.getSeverity(issueForm.getSeverityId()); return true; } public Issue getIssue() { return issue; } public void setIssue(Issue issue) { this.issue = issue; } public IssueStatus getOldIssueStatus() { return oldIssueStatus; } public void setOldIssueStatus(IssueStatus oldIssueStatus) { this.oldIssueStatus = oldIssueStatus; } public IssueStatus getNewIssueStatus() { return newIssueStatus; } public void setNewIssueStatus(IssueStatus newIssueStatus) { this.newIssueStatus = newIssueStatus; } public Project getProject() { return project; } public void setProject(Project project) { this.project = project; } public IssueType getIssueType() { return issueType; } public void setIssueType(IssueType issueType) { this.issueType = issueType; } public Priority getPriority() { return priority; } public void setPriority(Priority priority) { this.priority = priority; } public Severity getSeverity() { return severity; } public void setSeverity(Severity severity) { this.severity = severity; } // 변경된 값 설정 public Issue SetIssue(IssueForm issueForm) { Issue issue = this.getIssue(); ConvertUtil.copyProperties(issueForm, issue, "id"); issue.setProject(getProject()); issue.setIssueStatus(getNewIssueStatus()); issue.setIssueType(getIssueType()); issue.setPriority(getPriority()); issue.setSeverity(getSeverity()); issue.setStartDate(issueForm.getStartDate()); issue.setCompleteDate(issueForm.getCompleteDate()); return issue; } }