Skip to content

#433 [Feat] 어드민 대시보드 출석 체크율 API 추가 - #434

Merged
si-zero merged 5 commits into
devfrom
feat/#433
Sep 1, 2026
Merged

#433 [Feat] 어드민 대시보드 출석 체크율 API 추가#434
si-zero merged 5 commits into
devfrom
feat/#433

Conversation

@si-zero

@si-zero si-zero commented Sep 1, 2026

Copy link
Copy Markdown
Member

#️⃣ 연관된 이슈

📝 작업 내용

✨ Feat

내용 파일
일자별 출석 인원 집계 저장소 쿼리 추가 (generate_series 기반) AttendanceRecordRepository.java
개근 보너스 지급 건수 집계 저장소 쿼리 추가 CreditHistoryRepository.java
출석 체크율 응답 DTO 추가 AdminDashboardAttendanceStatsResponse.java
출석 체크율 조회 서비스 로직 추가 AdminDashboardService.java
출석 체크율 조회 API 엔드포인트 추가 AdminDashboardController.java

📚 Docs

내용 파일
출석 체크율 API 명세 추가 docs/api-specs/dashboard-api.md

📌 공유 사항

  1. GET /api/v1/admin/dashboard/attendance-stats?from=&to=로 기간 내 출석 현황을 조회합니다.
  2. 논의 중 나온 의견을 반영해 개근 보너스(CreditType.ATTENDANCE_STREAK) 달성 건수(streakAchievedCount)를 같은 응답에 필드로 추가했습니다. 출석은 로그인 시 자동이 아니라 유저가 명시적으로 체크 API를 호출해야 기록되는 구조라, 단순 체크율뿐 아니라 "얼마나 꾸준히" 했는지도 같이 보여주는 게 맞다고 판단했습니다.
  3. avgAttendanceRate는 일자별 (출석 인원 / 전체 ACTIVE 유저 수)의 평균이고, totalCount는 기간 내 총 출석 횟수입니다.
  4. 출석이 없는 날짜도 items에 0으로 채워서 반환합니다 (다른 대시보드 API와 동일한 패턴).

✅ 체크리스트

  • Reviewer에 팀원들을 선택했나요?
  • Assignees에 본인을 선택했나요?
  • 컨벤션에 맞는 Type을 선택했나요?
  • Development에 이슈를 연동했나요?
  • Merge 하려는 브랜치가 올바르게 설정되어 있나요?
  • 컨벤션을 지키고 있나요?
  • 로컬에서 실행했을 때 에러가 발생하지 않나요?
  • 팀원들에게 PR 링크 공유를 했나요?

📸 스크린샷

./gradlew test 전체 통과. AdminDashboardServiceTest에 정상/from>to 검증 케이스 2개 추가.

@si-zero si-zero self-assigned this Sep 1, 2026
@si-zero si-zero added the ✨ Feat (기능 추가) 새로운 기능을 추가할 때 사용합니다. label Sep 1, 2026
@si-zero si-zero linked an issue Sep 1, 2026 that may be closed by this pull request
3 tasks
@si-zero
si-zero merged commit 1e134bc into dev Sep 1, 2026
1 check passed
@si-zero
si-zero deleted the feat/#433 branch September 1, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feat (기능 추가) 새로운 기능을 추가할 때 사용합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ Feat: 어드민 대시보드 출석 체크율 API 추가

1 participant