2.9 KiB
2.9 KiB
관리자 채널후원 크리에이터별 정산 조회 및 엑셀 API 작업 계획
- 기존 관리자 채널후원 정산 API의 날짜별 조회 경로를 식별하고 URL 변경 범위를 확정한다.
- 관리자 채널후원 정산 날짜별 조회 API URL을 목적에 맞게 변경한다.
- 관리자 크리에이터별 채널후원 정산 조회 API(
GET /admin/calculate/channel-donation-by-creator)를 구현한다. - 관리자 크리에이터별 채널후원 정산 엑셀 다운로드 API(
GET /admin/calculate/channel-donation-by-creator/excel)를 구현한다. - 크리에이터별 집계/카운트/합계 Query를 추가하고, 정산 계산 비율은 기존 채널후원 정산과 동일하게 적용한다.
- 관련 테스트를 수정/추가하고
./gradlew test,./gradlew build로 검증한다.
검증 기록
1차 구현
- 무엇을: 관리자 채널후원 정산 API를 날짜별/크리에이터별로 분리하고, 크리에이터별 정산 엑셀 다운로드 API를 추가했다.
- 왜: 기존
/admin/calculate/channel-donation-by-creator가 날짜별 조회 성격이어서 URL 의미를 분리하고, 요청한 크리에이터별 목록/엑셀 기능을 제공하기 위해서다. - 어떻게:
- 컨트롤러에서 기존 날짜별 조회 경로를
GET /admin/calculate/channel-donation-by-date로 변경했다. - 신규 크리에이터별 조회
GET /admin/calculate/channel-donation-by-creator와 엑셀 다운로드GET /admin/calculate/channel-donation-by-creator/excel를 추가했다. - QueryRepository에 날짜별/크리에이터별 집계 메서드를 분리하고, 크리에이터별 총건수(distinct creator) 및 엑셀용 전체 조회를 추가했다.
- 서비스에서 크리에이터별 조회 응답 DTO와 엑셀(XSSFWorkbook) 생성 로직을 구현했다.
- 정산 비율/공식은 기존
ChannelDonationSettlementCalculator를 그대로 사용해 동일 정책을 유지했다. - 테스트를 수정/추가해 날짜별 라우팅, 크리에이터별 조회, 엑셀 다운로드, Query 집계를 검증했다.
- 실행 결과:
lsp_diagnostics(수정된.kt파일들) → Kotlin LSP 미설정으로 진단 불가./gradlew test --tests "*channelDonation*"→ 성공./gradlew build→ 성공
- 컨트롤러에서 기존 날짜별 조회 경로를
2차 수정
- 무엇을: 크리에이터별 정산 엑셀 다운로드 파일의 시트명과 헤더를 한글로 변경했다.
- 왜: 관리자 화면에서 다운로드한 엑셀의 컬럼 의미를 즉시 식별할 수 있도록 가독성을 높이기 위해서다.
- 어떻게:
- 시트명
channel-donation-by-creator를크리에이터별 채널후원 정산으로 변경했다. - 헤더를
크리에이터,건수,총 받은 캔 수,원화,수수료,정산금액,원천세,입금액으로 변경했다. - 실행 결과:
./gradlew test --tests "*channelDonation*"→ 성공
- 시트명