3.2 KiB
3.2 KiB
관리자 정산 엑셀 다운로드 추가 작업 계획
- 기존 정산 API 구조와 엑셀 다운로드 응답 패턴(
ResponseEntity<InputStreamResource>)을 기준으로 구현 범위를 확정한다. - 라이브 정산 엑셀 다운로드 API(
GET /admin/calculate/live/excel)를 추가한다. - 콘텐츠 정산 엑셀 다운로드 API(
GET /admin/calculate/content-list/excel)를 추가한다. - 콘텐츠 후원 정산 엑셀 다운로드 API(
GET /admin/calculate/content-donation-list/excel)를 추가한다. - 커뮤니티 정산 엑셀 다운로드 API(
GET /admin/calculate/community-post/excel)를 추가한다. - 크리에이터별 라이브 정산 엑셀 다운로드 API(
GET /admin/calculate/live-by-creator/excel)를 추가한다. - 크리에이터별 콘텐츠 정산 엑셀 다운로드 API(
GET /admin/calculate/content-by-creator/excel)를 추가한다. - 크리에이터별 커뮤니티 정산 엑셀 다운로드 API(
GET /admin/calculate/community-by-creator/excel)를 추가한다. - 채널후원 정산 엑셀 다운로드 API(
GET /admin/calculate/channel-donation-by-date/excel)를 추가한다. - 각 엑셀 API가 시작/끝 날짜를 받아 전체 데이터를 내려주도록 서비스/리포지토리를 확장한다.
lsp_diagnostics, 테스트, 빌드로 변경사항을 검증하고 결과를 문서 하단에 기록한다.
검증 기록
1차 구현
- 무엇을: 관리자 정산 API 8종(라이브/콘텐츠/콘텐츠후원/커뮤니티/크리에이터별 3종/채널후원 날짜별)에
/excel다운로드 엔드포인트를 추가하고, 전체 데이터 엑셀 생성 서비스를 구현했다. - 왜: 페이지네이션 기반 조회 API와 별도로 시작일/종료일 기준의 전체 정산 데이터를 한 번에 내려받을 수 있어야 한다는 요구사항을 충족하기 위해서다.
- 어떻게:
AdminCalculateController에 7개 엔드포인트(.../excel)를 추가하고 공통 다운로드 헤더(Content-Disposition, xlsx content type)를 적용했다.AdminCalculateService에 7개 엑셀 생성 메서드를 추가해 기간 변환 후 전체 데이터 조회 및XSSFWorkbook기반 시트/헤더/행 작성을 구현했다.- 페이지네이션 대상(커뮤니티 정산, 크리에이터별 정산 3종)은
totalCount를 조회해offset=0,limit=totalCount로 전체 행을 조회하도록 처리했다. AdminChannelDonationCalculateController에GET /admin/calculate/channel-donation-by-date/excel를 추가하고 기존 크리에이터별 엑셀 응답 로직과 동일한 규칙을 적용했다.AdminChannelDonationCalculateService에 날짜별 엑셀 다운로드 메서드를 추가해 전체 데이터 기준 시트를 생성했다.- 테스트를 보강했다.
AdminChannelDonationCalculateControllerTest: 날짜별 엑셀 다운로드 테스트 추가AdminChannelDonationCalculateServiceTest: 날짜별 엑셀 바이트 생성 테스트 추가
- 실행 결과:
lsp_diagnostics(수정된.kt파일) → Kotlin LSP 미설정으로 진단 불가./gradlew test --tests "*AdminChannelDonationCalculate*"→ 성공./gradlew build→ 성공