Skip to content

Commit

Permalink
hotfix: 학과/학년 정보도 초기화하게 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
DWL21 committed Feb 1, 2025
1 parent b5f8313 commit 0e9d953
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import com.yourssu.soongpt.domain.college.implement.CollegeWriter
import com.yourssu.soongpt.domain.college.storage.QCollegeEntity.collegeEntity
import com.yourssu.soongpt.domain.department.implement.Department
import com.yourssu.soongpt.domain.department.implement.DepartmentWriter
import com.yourssu.soongpt.domain.departmentGrade.implement.DepartmentGrade
import com.yourssu.soongpt.domain.departmentGrade.implement.DepartmentGradeWriter
import org.springframework.boot.CommandLineRunner
import org.springframework.stereotype.Component
import org.springframework.transaction.annotation.Transactional
Expand All @@ -16,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional
class CollegesAndDepartmentsInitializer(
private val collegeWriter: CollegeWriter,
private val departmentWriter: DepartmentWriter,
private val departmentGradeWriter: DepartmentGradeWriter,
private val jpaQueryFactory: JPAQueryFactory,
private val properties: CollegeProperties,
) : CommandLineRunner {
Expand All @@ -35,6 +38,15 @@ class CollegesAndDepartmentsInitializer(

private fun initialize(collegeName: String, departments: List<String>) {
val college: College = collegeWriter.save(College(name = collegeName))
departmentWriter.saveAll(departments.map { Department(collegeId = college.id!!, name = it) })
val department = departmentWriter.saveAll(departments.map { Department(collegeId = college.id!!, name = it) })
initializeDepartmentGrades(department)
}

private fun initializeDepartmentGrades(departments: List<Department>) {
for (grade in 1..4) {
departmentGradeWriter.saveAll(departments.map { DepartmentGrade(departmentId = it.id!!, grade = grade) })
}
departmentGradeWriter.saveAll(departments.filter { it.name.startsWith("건축학부") }
.map { DepartmentGrade(departmentId = it.id!!, grade = 5) })
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ package com.yourssu.soongpt.domain.departmentGrade.implement

interface DepartmentGradeRepository {
fun save(departmentGrade: DepartmentGrade): DepartmentGrade
fun saveAll(departmentGrades: List<DepartmentGrade>): List<DepartmentGrade>
fun get(id: Long): DepartmentGrade
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.yourssu.soongpt.domain.departmentGrade.implement

import com.yourssu.soongpt.domain.department.implement.Department
import com.yourssu.soongpt.domain.department.implement.DepartmentRepository
import org.springframework.stereotype.Component

@Component
class DepartmentGradeWriter(
private val departmentRepository: DepartmentRepository,
private val departmentRepository: DepartmentGradeRepository,
) {
fun save(department: Department): Department {
return departmentRepository.save(department)
fun save(departmentGrade: DepartmentGrade): DepartmentGrade {
return departmentRepository.save(departmentGrade)
}
fun saveAll(departmentGrades: List<DepartmentGrade>): List<DepartmentGrade> {
return departmentRepository.saveAll(departmentGrades)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ class DepartmentGradeRepositoryImpl(
.toDomain()
}

override fun saveAll(departmentGrades: List<DepartmentGrade>): List<DepartmentGrade> {
return departmentGradeJpaRepository.saveAll(departmentGrades.map { DepartmentGradeEntity.from(it) })
.map { it.toDomain() }
}

override fun get(id: Long): DepartmentGrade {
val departmentGrade = departmentGradeJpaRepository.findByIdOrNull(id)
?: throw DepartmentGradeNotFoundException()
Expand Down

0 comments on commit 0e9d953

Please sign in to comment.