Skip to content

#561 [Feat] 텀블벅 후원자 엑셀 연동 및 클래스 이용권 운영 기능 확장 - #562

Open
jucheonsu wants to merge 4 commits into
devfrom
feat/#561
Open

jucheonsu wants to merge 4 commits into
devfrom
feat/#561

Conversation

@jucheonsu

Copy link
Copy Markdown
Member

#️⃣ 연관된 이슈

Closes #561

📝 작업 내용

✨ Feat

내용 파일
후원자 XLSX 시트·필수 열 자동 판별 및 검사·미리보기 TumblbugSupporterExcelProcessor.java, 검사·미리보기 DTO, build.gradle
후원 정보 저장·중복 확인 및 기존 클래스 이용권 발급 연동 FundingAdminServiceImpl.java, FundingCampaign.java, TumblbugImportRecord.java, 관련 Repository
후원번호·코드가 담긴 디지털 선물용 XLSX 생성 및 전달 완료·실패 기록 TumblbugDigitalGiftWorkbookWriter.java, 전달 DTO, DeliveryChannel.java, TicketDeliveryAttempt.java
관리자 운영 API 및 기존 주문 조회의 정원·전달 상태·후원번호 검색 확장 FundingAdminController.java, AdminFundingController.java, AdminFundingService.java, FundingOrderRepository.java
원본 금액·알림 상태 일괄 조회 및 이용권·등록자·등록일·전체 코드·끝 4자리 검색 TumblbugImportRecordService.java, FundingTicketQueryService.java, ClassTicket.java, 조회 DTO·Repository
캠페인·원본·감사 로그 저장, 오류 응답 및 스키마 확장 AdminAuditLog.java, ErrorCode.java, GlobalExceptionHandler.java, V20261021_02__tumblbug_import_extensions.sql

♻️ Refactor

내용 파일
공통 주문·이용권 발급·등록·재발급·환불은 최신 dev 구현을 재사용하고 주문 목록은 기존 API 한 곳으로 통합 AdminFundingService.java, FundingOrderRepository.java
기존 클래스 연동 계약 파일 유지 FundingTicketAccess.java, FundingTicketPolicy.java
현재 통합 구조와 운영 API 문서 정리 BACKEND_ARCHITECTURE.md, FUNDING_API.md

🐛 Fix

내용 파일
문자열 셀에 날짜 판별을 먼저 호출해 정상 XLSX가 400으로 거부되던 문제 수정 TumblbugSupporterExcelProcessor.java
텀블벅 전달 채널명을 저장할 수 있도록 컬럼 길이 확장 TicketDeliveryAttempt.java, 마이그레이션 SQL

📌 공유 사항

  1. 운영 흐름: 관리자 후원자 엑셀 업로드 → 검증·DB 저장 → 조건에 맞는 이용권 코드 발급 → 코드 엑셀 다운로드 → 관리자가 텀블벅 디지털 선물에 업로드 → 전달 결과 기록.
  2. 발급 조건은 기존 정책인 결제 확정·수량 1·결제일 존재를 사용합니다. 다른 정상 주문은 저장하고 발급을 보류합니다.
  3. 실제 텀블벅 업로드는 관리자가 수행합니다. 코드 원문은 생성된 XLSX 응답에서만 제공하며 DB에는 해시를 저장합니다.
  4. 배포 전 V20261021_02__tumblbug_import_extensions.sql 반영이 필요합니다. 실제 PostgreSQL 적용과 외부 텀블벅 업로드는 이번 테스트 범위에 포함하지 않았습니다.
  5. 기존 코드의 접미사는 NULL이며, 변경 이후 발급·재발급한 코드부터 끝 4자리 검색을 지원합니다.
  6. 최신 origin/dev 반영 후 전체 테스트 580개 통과, 실패·오류·건너뜀 0건입니다.
  7. 변경 41개 파일을 요청한 4개 커밋(26·12·1·2개)으로 분리했습니다.

✅ 체크리스트

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

📸 스크린샷

스크린샷은 첨부하지 않았습니다. 검증 결과:

  • ./gradlew.bat test --offline: 97개 테스트 스위트, 580개 테스트 통과.
  • 신규 통합 테스트 5개: 발급→등록→클래스 생성→환불, 중복 가져오기·수량/결제 보류, 잘못된 행 전체 거부, 전달 결과·재발급·코드 검색, 관리자 권한·요청 검증.
  • 테스트 파일: TumblbugFundingApiIntegrationTest.java

💬 리뷰 요구사항

  • 기존 클래스 이용권 흐름과 텀블벅 발급·전달 연동의 일관성을 확인해 주세요.
  • 배포 시 추가 SQL 적용 순서와 관리자 수동 업로드 흐름을 확인해 주세요.

@jucheonsu jucheonsu added the ✨ Feat (기능 추가) 새로운 기능을 추가할 때 사용합니다. label Oct 21, 2026
@jucheonsu jucheonsu self-assigned this Oct 21, 2026

@si-zero si-zero left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이용권 형식이 피그마에 있는 방향으로 갈지 아니면 코드로 작성한 양식으로 갈지 확인이 필요해보입니다.
오늘 회의 때, 여쭤보고 답변 받으면 추가로 코멘트 달아두겠습니다.

This branch has not been deployed

No deployments
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: 텀블벅 후원자 엑셀 연동 및 클래스 이용권 운영 기능 확장

2 participants