package kr.wisestone.owl.service.impl;
|
|
import com.google.common.collect.Lists;
|
import kr.wisestone.owl.constant.Constants;
|
import kr.wisestone.owl.constant.MsgConstants;
|
import kr.wisestone.owl.domain.Severity;
|
import kr.wisestone.owl.domain.Workspace;
|
import kr.wisestone.owl.exception.OwlRuntimeException;
|
import kr.wisestone.owl.repository.SeverityRepository;
|
import kr.wisestone.owl.service.SeverityService;
|
import kr.wisestone.owl.service.UserService;
|
import kr.wisestone.owl.service.WorkspaceService;
|
import kr.wisestone.owl.util.ConvertUtil;
|
import kr.wisestone.owl.vo.SeverityVo;
|
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 SeverityServiceImpl extends AbstractServiceImpl<Severity, Long, JpaRepository<Severity, Long>> implements SeverityService {
|
|
private static final Logger log = LoggerFactory.getLogger(SeverityServiceImpl.class);
|
|
@Autowired
|
private SeverityRepository severityRepository;
|
|
@Autowired
|
private WorkspaceService workspaceService;
|
|
@Autowired
|
private UserService userService;
|
|
@Override
|
protected JpaRepository<Severity, Long> getRepository() {
|
return this.severityRepository;
|
}
|
|
@Override
|
@Transactional(readOnly = true)
|
public List<Severity> findByWorkspaceIdOrderByPosition() {
|
Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
|
return this.severityRepository.findByWorkspaceIdOrderByPosition(workspace.getId());
|
}
|
|
// 중요도 아이디로 우선순위를 조회한다.
|
@Transactional(readOnly = true)
|
@Override
|
public Severity getSeverity(Long id) {
|
if (id == null) {
|
throw new OwlRuntimeException(
|
this.messageAccessor.getMessage(MsgConstants.SEVERITY_NOT_EXIST));
|
}
|
|
Severity severity = this.findOne(id);
|
|
if (severity == null) {
|
throw new OwlRuntimeException(
|
this.messageAccessor.getMessage(MsgConstants.SEVERITY_NOT_EXIST));
|
}
|
|
return severity;
|
}
|
|
// 중요도 목록을 조회한다.
|
@Override
|
@Transactional(readOnly = true)
|
public List<SeverityVo> findSeverity(Map<String, Object> resJsonData) {
|
List<SeverityVo> severityVos = ConvertUtil.convertObjectsToClasses(this.findByWorkspaceIdOrderByPosition(), SeverityVo.class);
|
resJsonData.put(Constants.RES_KEY_CONTENTS, severityVos);
|
|
return severityVos;
|
}
|
|
// 기본적으로 제공되는 우선순위 목록록
|
@Override
|
@Transactional
|
public void addDefaultSeverity(Workspace workspace) {
|
List<Severity> severities = Lists.newArrayList();
|
severities.add(new Severity(this.messageAccessor.message("common.critical"), 1, "#ed5565", workspace));
|
severities.add(new Severity(this.messageAccessor.message("common.major"), 2, "#f8ac59", workspace));
|
severities.add(new Severity(this.messageAccessor.message("common.minor"), 3, "#1c84c6", workspace));
|
severities.add(new Severity(this.messageAccessor.message("common.trivial"), 4, "#23c6c8", workspace));
|
|
this.severityRepository.saveAll(severities);
|
}
|
|
// 업무공간에 있는 중요도 목록을 가져온다.
|
@Override
|
@Transactional(readOnly = true)
|
public List<Severity> findByWorkspaceId() {
|
return this.severityRepository.findByWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
|
}
|
}
|