Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
rudeh2926 committed Nov 12, 2024
1 parent 2321ba2 commit 5ef42dc
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,8 @@ class SchedulePersistenceAdapter(
val entities = schedule.map { scheduleMapper.toEntity(it) }
scheduleRepository.saveAll(entities)
}

override fun deleteAll() {
scheduleRepository.deleteAll()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@ interface ScheduleRepository : Repository<ScheduleJpaEntity, UUID> {
fun saveAll(entity: Iterable<ScheduleJpaEntity>)

fun findAllByDate(date: LocalDate): List<ScheduleJpaEntity>?

fun deleteAll()
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package dsm.pick2024.domain.schedule.port.`in`

interface SaveScheduleUseCase {
fun saveNeisInfoToDatabase(start: String, end: String)
fun saveNeisInfoToDatabase()
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ import java.util.UUID

interface DeleteSchedulePort {
fun deleteById(id: UUID)

fun deleteAll()
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,7 @@ class ScheduleController(
@Operation(summary = "나이스 학사일정 저장 api")
@PostMapping("/save")
fun saveSchedule(
@RequestParam(name = "start") start: String,
@RequestParam(name = "end") end: String
) = scheduleUseCase.saveNeisInfoToDatabase(start, end)
) = scheduleUseCase.saveNeisInfoToDatabase()

@Operation(summary = "일 별 학사일정조회 api")
@GetMapping("/date")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,46 @@
package dsm.pick2024.domain.schedule.service

import dsm.pick2024.domain.schedule.port.`in`.SaveScheduleUseCase
import dsm.pick2024.domain.schedule.port.out.DeleteSchedulePort
import dsm.pick2024.domain.schedule.port.out.SaveSchedulePort
import dsm.pick2024.global.config.cache.CacheName
import dsm.pick2024.infrastructure.feign.NeisScheduleFeignClientService
import org.springframework.cache.annotation.CacheEvict
import org.springframework.context.annotation.Configuration
import org.springframework.stereotype.Component
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import java.time.LocalDate
import java.time.format.DateTimeFormatter

@Service
class SaveScheduleService(
private val saveSchedulePort: SaveSchedulePort,
private val deleteSchedulePort: DeleteSchedulePort,
private val neisScheduleFeignClientService: NeisScheduleFeignClientService
) : SaveScheduleUseCase {

@CacheEvict(value = [CacheName.SCHEDULES], allEntries = true)
@Transactional
override fun saveNeisInfoToDatabase(start: String, end: String) {
override fun saveNeisInfoToDatabase() {

val (start, end) = formatDate()
deleteSchedulePort.deleteAll()
val scheduleForSave =
neisScheduleFeignClientService.getNeisInfoToEntity(start, end)

scheduleForSave?.let { saveSchedulePort.saveFeignSchedule(it) }
}

private fun formatDate(): Pair<String, String> {
val today = LocalDate.now()

val start = LocalDate.of(today.year - 1, 1, 1)

val end = LocalDate.of(today.year + 1, 3, 1)

val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")

return start.format(formatter) to end.format(formatter)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import dsm.pick2024.domain.application.port.out.DeleteApplicationPort
import dsm.pick2024.domain.attendance.port.`in`.ResetAttendanceUseCase
import dsm.pick2024.domain.classroom.port.out.DeleteClassRoomPort
import dsm.pick2024.domain.meal.port.`in`.MealUseCase
import dsm.pick2024.domain.schedule.port.`in`.SaveScheduleUseCase
import dsm.pick2024.domain.schedule.service.SaveScheduleService
import dsm.pick2024.domain.status.port.`in`.ResetStatusUseCase
import dsm.pick2024.domain.timetable.port.`in`.SaveTimetableUseCase
import dsm.pick2024.domain.timetable.port.out.DeleteTimeTablePort
Expand All @@ -20,7 +22,8 @@ class ScheduleService(
private val mealUseCase: MealUseCase,
private val resetAttendanceUseCase: ResetAttendanceUseCase,
private val resetStatusUseCase: ResetStatusUseCase,
private val saveTimetableUseCase: SaveTimetableUseCase
private val saveTimetableUseCase: SaveTimetableUseCase,
private val saveScheduleUseCase: SaveScheduleUseCase
) {
@Scheduled(cron = "0 30 20 * * ?", zone = "Asia/Seoul")
fun deleteTable() {
Expand All @@ -45,4 +48,9 @@ class ScheduleService(
deleteTimetablePort.deleteAll()
saveTimetableUseCase.saveTimetable()
}

@Scheduled(cron = "0 0 8 * * ?")
fun saveSchedule() {
saveScheduleUseCase.saveNeisInfoToDatabase()
}
}

0 comments on commit 5ef42dc

Please sign in to comment.