@@ -29,8 +29,13 @@ class ExternalWeatherService(
2929
3030 @Transactional
3131 fun updateCurrentWeather () {
32- val baseDate = LocalDateTime .now().format(DateTimeFormatter .ofPattern(" yyyyMMdd" ))
3332 val baseTime = getBaseTime()
33+ val baseLocalDateTime = if (baseTime == " 2300" ) {
34+ LocalDateTime .now().minusDays(1 )
35+ } else {
36+ LocalDateTime .now()
37+ }
38+ val baseDate = baseLocalDateTime.format(DateTimeFormatter .ofPattern(" yyyyMMdd" ))
3439 skiResortRepository.findAll().forEach { resort ->
3540 val url = " https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst" +
3641 " ?serviceKey=$apiKey " +
@@ -62,6 +67,9 @@ class ExternalWeatherService(
6267 private fun getBaseTime (): String {
6368 val now = LocalDateTime .now().minusHours(1 )
6469 val hour = now.hour.toString().padStart(2 , ' 0' )
70+ if (hour == " 23" ) {
71+ return " 0000"
72+ }
6573 return " ${hour} 00"
6674 }
6775
@@ -91,11 +99,21 @@ class ExternalWeatherService(
9199 val feelsLike = calculateFeelsLike(temperature, windSpeed)
92100 val condition = determineCondition(data)
93101 val description = generateDescription(condition, temperature)
94-
102+ val dailyWeather = dailyWeatherRepository.findBySkiResortAndForecastDate(resort, LocalDate .now())[0 ]
103+ // dailyWeather.maxTemp보다 temperature이 높으면 maxTemp를 업데이트
104+ if (temperature > dailyWeather.maxTemp) {
105+ dailyWeather.maxTemp = temperature
106+ dailyWeatherRepository.save(dailyWeather)
107+ }
108+ // dailyWeather.minTemp보다 temperature이 낮으면 minTemp을 업데이트
109+ if (temperature < dailyWeather.minTemp) {
110+ dailyWeather.minTemp = temperature
111+ dailyWeatherRepository.save(dailyWeather)
112+ }
95113 return CurrentWeather (
96114 temperature = temperature,
97- maxTemp = data[ " TMX " ]?.toDoubleOrNull()?.toInt() ? : temperature ,
98- minTemp = data[ " TMN " ]?.toDoubleOrNull()?.toInt() ? : temperature ,
115+ maxTemp = dailyWeather.maxTemp ,
116+ minTemp = dailyWeather.minTemp ,
99117 feelsLike = feelsLike,
100118 condition = condition,
101119 description = description,
0 commit comments