package kr.wisestone.owl.service.impl; import com.google.common.collect.Lists; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.*; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.ProjectRoleDepartmentMapper; import kr.wisestone.owl.mapper.ProjectRoleUserMapper; import kr.wisestone.owl.repository.ProjectRoleDepartmentRepository; import kr.wisestone.owl.repository.ProjectRoleUserRepository; import kr.wisestone.owl.service.ProjectRoleDepartmentService; import kr.wisestone.owl.service.ProjectRoleService; import kr.wisestone.owl.service.UserWorkspaceService; 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.HashMap; import java.util.List; import java.util.Map; @Service public class ProjectRoleDepartmentServiceImpl extends AbstractServiceImpl> implements ProjectRoleDepartmentService { private static final Logger log = LoggerFactory.getLogger(ProjectRoleDepartmentServiceImpl.class); @Autowired private ProjectRoleDepartmentRepository projectRoleDepartmentRepository; @Autowired private ProjectRoleService projectRoleService; @Autowired private UserWorkspaceService userWorkspaceService; @Autowired private ProjectRoleDepartmentMapper projectRoleDepartmentMapper; @Override protected JpaRepository getRepository() { return this.projectRoleDepartmentRepository; } @Override @Transactional(readOnly = true) public List findByProjectRoleId(Long projectRoleId) { return this.projectRoleDepartmentRepository.findByProjectRoleId(projectRoleId); } // 해당 부서가 특정 역할에 소속되어 있는지 확인한다. @Override @Transactional(readOnly = true) public ProjectRoleDepartment findByProjectRoleIdAndDepartmentId(Long projectRoleId, Long departmentId) { return this.projectRoleDepartmentRepository.findByProjectRoleIdAndDepartmentId(projectRoleId, departmentId); } // 프로젝트에 참여하는 부서를 파라미터에 따라 조회한다. @Override @Transactional(readOnly = true) public List> findProjectRoleDepartment(Map projectRoleDepartmentMap) { return this.projectRoleDepartmentMapper.findProjectRoleDepartment(projectRoleDepartmentMap); } }