diff --git a/src/main/java/com/devkor/ifive/nadab/domain/stats/application/DailyStatsService.java b/src/main/java/com/devkor/ifive/nadab/domain/stats/application/DailyStatsService.java index 307bf53c..f8f1b03a 100644 --- a/src/main/java/com/devkor/ifive/nadab/domain/stats/application/DailyStatsService.java +++ b/src/main/java/com/devkor/ifive/nadab/domain/stats/application/DailyStatsService.java @@ -74,15 +74,18 @@ public DailyStatsViewModel getDailyStats(LocalDate selectedDate) { ); int selectedIndex = days.size() - 1; - long sharedDailyReportCount = repo.countSharedDailyReports(selectedDate); + long selectedDateSharedDailyReportCount = repo.countSharedDailyReports(selectedDate); DailyPeriodStatsViewModel selectedPeriod = new DailyPeriodStatsViewModel( selectedDate.toString(), selectedDate.toString(), signupCounts.get(selectedIndex), assignedCounts.get(selectedIndex), completedCounts.get(selectedIndex), - sharedDailyReportCount + selectedDateSharedDailyReportCount ); + long sharedDailyReportCount = selectedDate.equals(today) + ? selectedDateSharedDailyReportCount + : repo.countSharedDailyReports(today); return new DailyStatsViewModel( labels, @@ -93,6 +96,7 @@ public DailyStatsViewModel getDailyStats(LocalDate selectedDate) { signupPeak, assignedQuestionPeak, dauPeak, + sharedDailyReportCount, OffsetDateTime.now(SEOUL).format(FMT) ); } diff --git a/src/main/java/com/devkor/ifive/nadab/domain/stats/core/dto/daily/DailyStatsViewModel.java b/src/main/java/com/devkor/ifive/nadab/domain/stats/core/dto/daily/DailyStatsViewModel.java index 07f801f2..76c15a29 100644 --- a/src/main/java/com/devkor/ifive/nadab/domain/stats/core/dto/daily/DailyStatsViewModel.java +++ b/src/main/java/com/devkor/ifive/nadab/domain/stats/core/dto/daily/DailyStatsViewModel.java @@ -13,5 +13,6 @@ public record DailyStatsViewModel( PeakStatViewModel signupPeak, PeakStatViewModel assignedQuestionPeak, PeakStatViewModel dauPeak, + long sharedDailyReportCount, String refreshedAt // "2026-02-27 21:34:12" ) {} diff --git a/src/main/resources/templates/stats/daily.html b/src/main/resources/templates/stats/daily.html index e34109c6..59136b84 100644 --- a/src/main/resources/templates/stats/daily.html +++ b/src/main/resources/templates/stats/daily.html @@ -290,6 +290,14 @@ th:href="@{/stats/total}">전체 + +
+
+
현재 공유 중인 일간 리포트
+
0
+
+
+
diff --git a/src/test/java/com/devkor/ifive/nadab/domain/stats/application/DailyStatsServiceTest.java b/src/test/java/com/devkor/ifive/nadab/domain/stats/application/DailyStatsServiceTest.java index 75e178d5..60f100c9 100644 --- a/src/test/java/com/devkor/ifive/nadab/domain/stats/application/DailyStatsServiceTest.java +++ b/src/test/java/com/devkor/ifive/nadab/domain/stats/application/DailyStatsServiceTest.java @@ -37,6 +37,7 @@ void getDailyStats_anchors_chart_and_summary_to_selected_date() { when(repo.findCompletedDailyReportCountsLast7Days(startDate, selectedDate)) .thenReturn(List.of(new DateCountDto(selectedDate, 9L))); when(repo.countSharedDailyReports(selectedDate)).thenReturn(2L); + when(repo.countSharedDailyReports(today)).thenReturn(4L); DailyStatsViewModel vm = service.getDailyStats(selectedDate); @@ -51,9 +52,12 @@ void getDailyStats_anchors_chart_and_summary_to_selected_date() { assertThat(vm.selectedPeriod().assignedQuestionCount()).isEqualTo(7L); assertThat(vm.selectedPeriod().dauCount()).isEqualTo(9L); assertThat(vm.selectedPeriod().sharedDailyReportCount()).isEqualTo(2L); + assertThat(vm.sharedDailyReportCount()).isEqualTo(4L); verify(repo).findSignupCountsLast7Days(startDate, selectedDate); verify(repo).findAssignedQuestionCountsLast7Days(startDate, selectedDate); verify(repo).findCompletedDailyReportCountsLast7Days(startDate, selectedDate); + verify(repo).countSharedDailyReports(selectedDate); + verify(repo).countSharedDailyReports(today); } } diff --git a/src/test/java/com/devkor/ifive/nadab/domain/stats/controller/StatsControllerTemplateTest.java b/src/test/java/com/devkor/ifive/nadab/domain/stats/controller/StatsControllerTemplateTest.java index 432847d1..4a6a861e 100644 --- a/src/test/java/com/devkor/ifive/nadab/domain/stats/controller/StatsControllerTemplateTest.java +++ b/src/test/java/com/devkor/ifive/nadab/domain/stats/controller/StatsControllerTemplateTest.java @@ -73,6 +73,7 @@ void dailyStats_renders_peak_value_period_current_badge_and_empty_state() throws currentPeak, pastPeak, PeakStatViewModel.empty(), + 4_321L, "2026-08-13 12:00:00" )); @@ -86,6 +87,8 @@ void dailyStats_renders_peak_value_period_current_badge_and_empty_state() throws .andExpect(content().string(containsString("value=\"2026-08-13\""))) .andExpect(content().string(containsString("할당된 질문 수"))) .andExpect(content().string(containsString("DAU · 일간 리포트 작성자"))) + .andExpect(content().string(containsString("현재 공유 중인 일간 리포트"))) + .andExpect(content().string(containsString("4,321"))) .andExpect(content().string(containsString("공유 중인 일간 리포트"))) .andExpect(content().string(containsString("역대 최고"))) .andExpect(content().string(containsString("1,234"))) @@ -94,6 +97,8 @@ void dailyStats_renders_peak_value_period_current_badge_and_empty_state() throws .andExpect(content().string(containsString("기록 없음"))) .andReturn().getResponse().getContentAsString(); + assertThat(html.indexOf("현재 공유 중인 일간 리포트")) + .isLessThan(html.indexOf("