package kr.wisestone.owl.service.impl;
|
|
import kr.wisestone.owl.constant.Constants;
|
import kr.wisestone.owl.domain.Issue;
|
import kr.wisestone.owl.domain.IssueTableConfig;
|
import kr.wisestone.owl.domain.User;
|
import kr.wisestone.owl.domain.Workspace;
|
import kr.wisestone.owl.repository.IssueTableConfigRepository;
|
import kr.wisestone.owl.service.IssueService;
|
import kr.wisestone.owl.service.IssueTableConfigService;
|
import kr.wisestone.owl.service.UserService;
|
import kr.wisestone.owl.service.WorkspaceService;
|
import kr.wisestone.owl.util.MapUtil;
|
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.Map;
|
|
@Service
|
public class IssueTableConfigServiceImpl extends AbstractServiceImpl<IssueTableConfig, Long, JpaRepository<IssueTableConfig, Long>> implements IssueTableConfigService {
|
|
private static final Logger log = LoggerFactory.getLogger(IssueTableConfigServiceImpl.class);
|
|
@Autowired
|
private IssueTableConfigRepository issueTableConfigRepository;
|
|
@Autowired
|
private WorkspaceService workspaceService;
|
|
@Autowired
|
private UserService userService;
|
|
@Autowired
|
private IssueService issueService;
|
|
@Override
|
protected JpaRepository<IssueTableConfig, Long> getRepository() {
|
return this.issueTableConfigRepository;
|
}
|
|
@Override
|
public void multipleCode() {
|
|
}
|
Long issueId;
|
int issueTableType = 0; //issueTableType 초기값 설정
|
|
// 이슈 테이블 컬럼 설정 정보를 저장한다.
|
@Override
|
@Transactional
|
public IssueTableConfig addIssueTableConfig(Map<String, Object> params) {
|
String issueTableConfigs = MapUtil.getString(params, "issueTableConfigs");
|
issueId = (long) -1;
|
issueTableType = 1;
|
|
// 해당 업무 공간에서 사용자의 이슈 목록 테이블 컬럼 설정을 조회한다.
|
IssueTableConfig saveIssueTableConfig = this.findByUserIdAndWorkspaceId();
|
IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType);
|
// 아직 테이블 컬럼 설정을 하지 않았을 경우
|
if (saveIssueTableConfig == null && saveIssueTableType == null) {
|
IssueTableConfig issueTableConfig = new IssueTableConfig();
|
Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
|
User user = this.userService.getUser(this.webAppUtil.getLoginId());
|
Issue issue = this.issueService.getIssue(issueId);
|
issueTableConfig.setWorkspace(workspace);
|
issueTableConfig.setUser(user);
|
issueTableConfig.setIssue(issue);
|
issueTableConfig.setIssueTableType(issueTableType);
|
issueTableConfig.setIssueTableConfigs(issueTableConfigs);
|
return this.issueTableConfigRepository.saveAndFlush(issueTableConfig);
|
}
|
else {
|
saveIssueTableConfig.setIssueTableConfigs(issueTableConfigs);
|
return this.issueTableConfigRepository.saveAndFlush(saveIssueTableConfig);
|
}
|
}
|
|
@Override
|
public IssueTableConfig addRelationIssueTableConfig(Map<String, Object> params) {
|
String issueTableConfigs = MapUtil.getString(params, "issueTableConfigs");
|
|
issueId = MapUtil.getLong(params, "issueId");
|
issueTableType = 2;
|
// 해당 업무 공간에서 사용자의 이슈 목록 테이블 컬럼 설정을 조회한다.
|
IssueTableConfig saveIssueTableConfig = this.findByUserIdAndWorkspaceId();
|
IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType);
|
|
// 아직 테이블 컬럼 설정을 하지 않았을 경우
|
if (saveIssueTableConfig == null && saveIssueTableType == null) {
|
IssueTableConfig issueTableConfig = new IssueTableConfig();
|
Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
|
User user = this.userService.getUser(this.webAppUtil.getLoginId());
|
Issue issue = this.issueService.getIssue(issueId);
|
issueTableConfig.setWorkspace(workspace);
|
issueTableConfig.setUser(user);
|
issueTableConfig.setIssue(issue);
|
issueTableConfig.setIssueTableType(issueTableType);
|
issueTableConfig.setIssueTableConfigs(issueTableConfigs);
|
return this.issueTableConfigRepository.saveAndFlush(issueTableConfig);
|
}else {
|
saveIssueTableConfig.setIssueTableConfigs(issueTableConfigs);
|
return this.issueTableConfigRepository.saveAndFlush(saveIssueTableConfig);
|
}
|
}
|
|
@Override
|
public IssueTableConfig addDownIssueTableConfig(Map<String, Object> params) {
|
String issueTableConfigs = MapUtil.getString(params, "issueTableConfigs");
|
|
issueId = MapUtil.getLong(params, "issueId");
|
issueTableType = 3;
|
// 해당 업무 공간에서 사용자의 이슈 목록 테이블 컬럼 설정을 조회한다.
|
IssueTableConfig saveIssueTableConfig = this.findByUserIdAndWorkspaceId();
|
IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType);
|
|
// 아직 테이블 컬럼 설정을 하지 않았을 경우
|
if (saveIssueTableConfig == null && saveIssueTableType == null) {
|
IssueTableConfig issueTableConfig = new IssueTableConfig();
|
Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
|
User user = this.userService.getUser(this.webAppUtil.getLoginId());
|
Issue issue = this.issueService.getIssue(issueId);
|
issueTableConfig.setWorkspace(workspace);
|
issueTableConfig.setUser(user);
|
issueTableConfig.setIssue(issue);
|
issueTableConfig.setIssueTableType(issueTableType);
|
issueTableConfig.setIssueTableConfigs(issueTableConfigs);
|
return this.issueTableConfigRepository.saveAndFlush(issueTableConfig);
|
}else {
|
saveIssueTableConfig.setIssueTableConfigs(issueTableConfigs);
|
return this.issueTableConfigRepository.saveAndFlush(saveIssueTableConfig);
|
}
|
}
|
|
// 해당 업무 공간에서 사용자의 이슈 테이블 설정을 조회한다.
|
@Override
|
@Transactional(readOnly = true)
|
public IssueTableConfig findByUserIdAndWorkspaceId() {
|
return this.issueTableConfigRepository.findByUserIdAndWorkspaceId(this.webAppUtil.getLoginId(),
|
this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
|
}
|
|
@Override
|
@Transactional(readOnly = true)
|
public IssueTableConfig findByIssueIdAndIssueTableType(Long issueId, int issueTableType) {
|
return this.issueTableConfigRepository.findByIssueIdAndIssueTableType(issueId, issueTableType);
|
}
|
|
// 저장된 이슈 테이블 설정을 조회한다.
|
@Override
|
@Transactional(readOnly = true)
|
public void detailIssueTableConfig(Map<String, Object> resJsonData) {
|
issueId = (long) -1;
|
issueTableType = 1;
|
// 해당 업무 공간에서 사용자의 이슈 검색 조건을 조회한다.
|
IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceId();
|
IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType);
|
|
if (issueTableConfig != null && saveIssueTableType != null) {
|
resJsonData.put(Constants.RES_KEY_CONTENTS, issueTableConfig.getIssueTableConfigs());
|
}
|
else {
|
resJsonData.put(Constants.RES_KEY_CONTENTS, "");
|
}
|
}
|
|
// 저장된 연관 이슈 테이블 설정 조회
|
@Override
|
public void detailRelationIssueTableConfig(Long issueId, Map<String, Object> resJsonData) {
|
issueTableType = 2;
|
// 해당 업무 공간에서 사용자의 이슈 검색 조건을 조회한다.
|
IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceId();
|
IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType);
|
|
if (issueTableConfig != null && saveIssueTableType != null) {
|
resJsonData.put(Constants.RES_KEY_CONTENTS, issueTableConfig.getIssueTableConfigs());
|
}
|
else {
|
resJsonData.put(Constants.RES_KEY_CONTENTS, "");
|
}
|
}
|
|
// 저장된 하위 이슈 테이블 설정 조회
|
@Override
|
public void detailDownIssueTableConfig(Long issueId, Map<String, Object> resJsonData) {
|
issueTableType = 3;
|
// 해당 업무 공간에서 사용자의 이슈 검색 조건을 조회한다.
|
IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceId();
|
IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType);
|
|
if (issueTableConfig != null && saveIssueTableType != null) {
|
resJsonData.put(Constants.RES_KEY_CONTENTS, issueTableConfig.getIssueTableConfigs());
|
}
|
else {
|
resJsonData.put(Constants.RES_KEY_CONTENTS, "");
|
}
|
}
|
|
|
}
|