From 5504a0b063793c5071e07c3c243c5aadd2d2f065 Mon Sep 17 00:00:00 2001 From: bvn13 Date: Tue, 21 Apr 2020 02:34:14 +0300 Subject: [PATCH] try to fix bug --- .../site/repositories/CovidUpdatesRepository.java | 14 ++++++++++---- .../covid19/site/service/StatisticsPreparator.java | 10 ++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/covid19-site/src/main/java/com/bvn13/covid19/site/repositories/CovidUpdatesRepository.java b/covid19-site/src/main/java/com/bvn13/covid19/site/repositories/CovidUpdatesRepository.java index 794b44e..620da16 100644 --- a/covid19-site/src/main/java/com/bvn13/covid19/site/repositories/CovidUpdatesRepository.java +++ b/covid19-site/src/main/java/com/bvn13/covid19/site/repositories/CovidUpdatesRepository.java @@ -32,13 +32,19 @@ import java.util.Optional; @Repository public interface CovidUpdatesRepository extends JpaRepository { - @Query("select new com.bvn13.covid19.site.dtos.CovidUpdateInfoDto(max(U.createdOn)) from CovidUpdate U") + @Query("select new com.bvn13.covid19.site.dtos.CovidUpdateInfoDto(max(U.createdOn))" + + " from CovidUpdate U") Optional findLastUpdate(); - @Query("select U from CovidUpdate U where U.datetime >= :date1 and U.datetime < :date2") - Optional findByDateOfUpdate(@Param("date1") ZonedDateTime date1, @Param("date2") ZonedDateTime date2); + @Query("select new com.bvn13.covid19.site.dtos.CovidUpdateInfoDto(max(U.createdOn))" + + " from CovidUpdate U" + + " where U.datetime >= :date1" + + " and U.datetime < :date2") + Optional findByDateOfUpdate(@Param("date1") ZonedDateTime date1, @Param("date2") ZonedDateTime date2); - @Query("select U from CovidUpdate U where U.id in (select max(U1.id) from CovidUpdate U1 group by U1.datetime)") + @Query("select U" + + " from CovidUpdate U" + + " where U.id in (select max(U1.id) from CovidUpdate U1 group by U1.datetime)") Collection findAllLastUpdatesPerDay(); Optional findFirstByCreatedOn(LocalDateTime createdOn); diff --git a/covid19-site/src/main/java/com/bvn13/covid19/site/service/StatisticsPreparator.java b/covid19-site/src/main/java/com/bvn13/covid19/site/service/StatisticsPreparator.java index 072e9f9..4da9aa0 100644 --- a/covid19-site/src/main/java/com/bvn13/covid19/site/service/StatisticsPreparator.java +++ b/covid19-site/src/main/java/com/bvn13/covid19/site/service/StatisticsPreparator.java @@ -19,6 +19,7 @@ package com.bvn13.covid19.site.service; import com.bvn13.covid19.model.entities.CovidStat; import com.bvn13.covid19.model.entities.CovidUpdate; import com.bvn13.covid19.model.entities.Region; +import com.bvn13.covid19.site.dtos.CovidUpdateInfoDto; import com.bvn13.covid19.site.repositories.CovidStatsRepository; import com.bvn13.covid19.site.repositories.CovidUpdatesRepository; import com.bvn13.covid19.site.repositories.RegionsRepository; @@ -92,15 +93,12 @@ public class StatisticsPreparator { if (date.isBefore(projectStartZonedDate)) { return Optional.empty(); } else { - Optional update = updatesRepository.findByDateOfUpdate( + Optional update = updatesRepository.findByDateOfUpdate( dateWithTime(prevDate(date), 0, 0, 0), dateWithTime(date, 0, 0, 0) ); - if (update.isPresent()) { - return update; - } else { - return findPrevUpdateByDate(prevDate(date)); - } + return update.map(upd -> updatesRepository.findFirstByCreatedOn(update.get().getCreatedOn())) + .orElse(findPrevUpdateByDate(prevDate(date))); } }