Class DepartmentServiceImpl

java.lang.Object
inha.git.department.api.service.DepartmentServiceImpl
All Implemented Interfaces:
DepartmentService

@Service @Transactional(readOnly=true) public class DepartmentServiceImpl extends Object implements DepartmentService
학과 관련 비즈니스 로직을 처리하는 서비스 구현체입니다. 학과의 조회, 생성, 수정, 삭제 및 관련 통계 처리를 담당합니다.
  • Constructor Details

    • DepartmentServiceImpl

      public DepartmentServiceImpl()
  • Method Details

    • getDepartments

      public List<SearchDepartmentResponse> getDepartments(Integer collegeIdx)
      학과 목록을 조회합니다.
      Specified by:
      getDepartments in interface DepartmentService
      Parameters:
      collegeIdx - 조회할 단과대학 ID (선택적)
      Returns:
      학과 목록
      Throws:
      BaseException - COLLEGE_NOT_FOUND: 단과대학을 찾을 수 없는 경우
    • createDepartment

      @Transactional public String createDepartment(User admin, CreateDepartmentRequest createDepartmentRequest)
      새로운 학과를 생성합니다.
      Specified by:
      createDepartment in interface DepartmentService
      Parameters:
      admin - 생성을 요청한 관리자 정보
      createDepartmentRequest - 생성할 학과 정보
      Returns:
      학과 생성 완료 메시지
      Throws:
      BaseException - COLLEGE_NOT_FOUND: 단과대학을 찾을 수 없는 경우, DEPARTMENT_NOT_BELONG_TO_COLLEGE: 학과와 단과대학 정보가 일치하지 않는 경우
    • updateDepartmentName

      @Transactional public String updateDepartmentName(User admin, Integer departmentIdx, UpdateDepartmentRequest updateDepartmentRequest)
      학과명을 수정합니다.
      Specified by:
      updateDepartmentName in interface DepartmentService
      Parameters:
      admin - 수정을 요청한 관리자 정보
      departmentIdx - 수정할 학과의 식별자
      updateDepartmentRequest - 새로운 학과명
      Returns:
      학과명 수정 완료 메시지
      Throws:
      BaseException - DEPARTMENT_NOT_FOUND: 학과를 찾을 수 없는 경우
    • deleteDepartment

      @Transactional public String deleteDepartment(User admin, Integer departmentIdx)
      학과를 삭제(비활성화) 처리합니다.
      Specified by:
      deleteDepartment in interface DepartmentService
      Parameters:
      admin - 삭제를 요청한 관리자 정보
      departmentIdx - 삭제할 학과의 식별자
      Returns:
      학과 삭제 완료 메시지
      Throws:
      BaseException - DEPARTMENT_NOT_FOUND: 학과를 찾을 수 없는 경우