diff --git a/src/main/java/com/example/talky/domain/emergency_history/repository/EmergencyHistoryRepository.java b/src/main/java/com/example/talky/domain/emergency_history/repository/EmergencyHistoryRepository.java index dba7976..9ea75be 100644 --- a/src/main/java/com/example/talky/domain/emergency_history/repository/EmergencyHistoryRepository.java +++ b/src/main/java/com/example/talky/domain/emergency_history/repository/EmergencyHistoryRepository.java @@ -13,11 +13,12 @@ public interface EmergencyHistoryRepository extends JpaRepository= :firstDay """) List findAllByNormalId( + @Param("normalId") Long normalId, @Param("firstDay")LocalDateTime firstDay ); } diff --git a/src/main/java/com/example/talky/domain/recommendation/repository/SpeechRepository.java b/src/main/java/com/example/talky/domain/recommendation/repository/SpeechRepository.java index 8f06c4a..48d1ed1 100644 --- a/src/main/java/com/example/talky/domain/recommendation/repository/SpeechRepository.java +++ b/src/main/java/com/example/talky/domain/recommendation/repository/SpeechRepository.java @@ -6,7 +6,7 @@ import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; -import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; @Repository @@ -19,5 +19,5 @@ public interface SpeechRepository extends JpaRepository { """) List findAllByNormalUserId( @Param("userId") Long normalId, - @Param("date") LocalDate date); + @Param("date") LocalDateTime date); } diff --git a/src/main/java/com/example/talky/domain/statics/service/StaticsServiceImpl.java b/src/main/java/com/example/talky/domain/statics/service/StaticsServiceImpl.java index a64dc22..3ed834b 100644 --- a/src/main/java/com/example/talky/domain/statics/service/StaticsServiceImpl.java +++ b/src/main/java/com/example/talky/domain/statics/service/StaticsServiceImpl.java @@ -29,7 +29,7 @@ public class StaticsServiceImpl implements StaticsService { @Override public StaticsRes getNormalUsersStatics(Long normalId) { // 선택된 normal_user의 PK를 통하여 모든 발화 이력을 조회 - List pickSpeech = speechRepository.findAllByNormalUserId(normalId, LocalDateTime.now().minusDays(7).toLocalDate()); + List pickSpeech = speechRepository.findAllByNormalUserId(normalId, LocalDateTime.now().minusDays(7).toLocalDate().atStartOfDay()); LocalDateTime lastDay = LocalDateTime.now().minusDays(6).toLocalDate().atStartOfDay(); // 최근 7일간 사용한 시각을 통한 개수 카운팅 @@ -50,7 +50,14 @@ public StaticsRes getNormalUsersStatics(Long normalId) { .toList(); // normal_user가 좋아하는 상위 5개의 즐겨찾기 조회 - List top5Favorites = favoriteRepository.findTop5ByNormalUserIdOrderByCountDesc(normalId); + List top5Favorites = favoriteRepository.findTop5ByNormalUserIdOrderByCountDesc(normalId) + .stream() + .map(f -> new StaticsRes.Favorites( + f.getFavoriteId(), + f.getSentence(), + f.getCount() + )) + .toList(); // 사용한 시각과 같은 날짜의 사용 장소를 카운트 Map usedPlace = pickSpeech.stream() @@ -68,7 +75,7 @@ public StaticsRes getNormalUsersStatics(Long normalId) { // 긴급호출 사용 이력을 조회 // 단, 모든 기록을 조회할 시, 쿼리 시간이 길어짐을 생각하여 최근 7일만 조회 - List userEmergencyHistories = ehRepository.findAllByNormalId(LocalDateTime.now()); + List userEmergencyHistories = ehRepository.findAllByNormalId(normalId, LocalDateTime.now()); List parsedEmergencyHistory = userEmergencyHistories.stream() .filter(s -> s.getCreatedAt().isAfter(lastDay)) .map(h -> new StaticsRes.History( diff --git a/src/main/java/com/example/talky/domain/statics/web/dto/StaticsRes.java b/src/main/java/com/example/talky/domain/statics/web/dto/StaticsRes.java index 5ce6d03..d56ddc9 100644 --- a/src/main/java/com/example/talky/domain/statics/web/dto/StaticsRes.java +++ b/src/main/java/com/example/talky/domain/statics/web/dto/StaticsRes.java @@ -7,11 +7,16 @@ public record StaticsRes( List howManyUsed, - List top5Used, + List top5Used, Map usedPlace, Map usedWhen, List histories ) { + public record Favorites ( + Long favoriteId, + String sentence, + Integer count + ) {} public record UsedCount( String date, Long value