Skip to content

[SRLT-160] 백오피스 PDF 유형 응답 추가#100

Merged
SeongHo5356 merged 2 commits into
developfrom
SRLT-160-백오피스-pdf-유형-추가
May 24, 2026

Hidden character warning

The head ref may contain hidden characters: "SRLT-160-\ubc31\uc624\ud53c\uc2a4-pdf-\uc720\ud615-\ucd94\uac00"
Merged

[SRLT-160] 백오피스 PDF 유형 응답 추가#100
SeongHo5356 merged 2 commits into
developfrom
SRLT-160-백오피스-pdf-유형-추가

Conversation

@SeongHo5356
Copy link
Copy Markdown
Member

@SeongHo5356 SeongHo5356 commented May 24, 2026

🚀 Why - 해결하려는 문제가 무엇인가요?

  • 백오피스에서 PDF 업로드 기반 사업계획서와 플랫폼 작성 기반 사업계획서를 구분할 수 없어, 상세 화면에서 PDF 원본을 표시할 기준이 부족했습니다.
  • 사용자별 사업계획서 목록에서도 PDF 여부를 알 수 없어, 목록 화면에서 PDF 배지/아이콘을 사전에 표시할 수 없었습니다.

✅ What - 무엇이 변경됐나요?

  • 백오피스 사업계획서 상세 조회 응답에 pdfBased, pdfUrl을 추가했습니다.
  • 백오피스 사용자별 사업계획서 목록 응답 row에 pdfBased를 추가했습니다.
  • PDF URL은 상세 화면에서 실제 PDF 뷰어/새 탭 열기에 사용할 수 있도록 상세 응답에만 포함했습니다.

🛠️ How - 어떻게 해결했나요?

  • BusinessPlanpdfUrl 존재 여부를 기준으로 PDF 기반 여부를 판단하도록 매핑했습니다.
  • 상세 조회는 plan.isPdfBased()plan.getPdfUrl()을 application result DTO와 web response DTO로 전달합니다.
  • 사용자별 목록 조회는 JPQL projection에서 bp.pdfUrl is not null 값을 조회해 pdfBased로 내려줍니다.
  • 일반 사용자용 사업계획서 API는 변경하지 않고 백오피스 전용 DTO/조회 흐름만 확장했습니다.

🖼️ Attachment

  • N/A

💬 기타 코멘트

  • 검증: ./gradlew compileJava

  • 프론트 반영:

    • GET /v1/backoffice/users/{userId}/business-plans 목록 row의 pdfBased로 PDF 배지/아이콘을 표시하면 됩니다.
    • GET /v1/backoffice/business-plans/{planId} 상세의 pdfBasedtrue이면 pdfUrl로 PDF 뷰어를 렌더링하고, false이면 기존 subSectionDetailList 기반 UI를 렌더링하면 됩니다.

Summary by CodeRabbit

새로운 기능

  • 비즈니스 플랜 상세 정보 조회 시 PDF 기반 여부 및 PDF URL 정보 추가 표시
  • 사용자 비즈니스 플랜 목록 조회 시 각 항목의 PDF 기반 여부 정보 추가
  • 백오피스 비즈니스 플랜 페이지에 PDF URL 존재 여부 판단 로직 강화

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 24, 2026

Caution

Review failed

The pull request is closed.

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key: "tools"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9e6bc1bd-4176-4385-9264-b1fb4bec7ad6

📥 Commits

Reviewing files that changed from the base of the PR and between 2652b17 and 668775a.

📒 Files selected for processing (8)
  • src/main/java/starlight/adapter/backoffice/businessplan/persistence/BackofficeUserBusinessPlanRepository.java
  • src/main/java/starlight/adapter/backoffice/businessplan/webapi/dto/response/BackofficeBusinessPlanDetailResponse.java
  • src/main/java/starlight/adapter/backoffice/member/webapi/dto/response/BackofficeUserBusinessPlanRowResponse.java
  • src/main/java/starlight/application/backoffice/businessplan/BackofficeBusinessPlanQueryService.java
  • src/main/java/starlight/application/backoffice/businessplan/provided/dto/result/BackofficeBusinessPlanDetailResult.java
  • src/main/java/starlight/application/backoffice/member/BackofficeUserQueryService.java
  • src/main/java/starlight/application/backoffice/member/provided/dto/result/BackofficeUserBusinessPlanRowResult.java
  • src/main/java/starlight/application/backoffice/member/required/dto/BackofficeUserBusinessPlanLookupResult.java

📝 Walkthrough

Walkthrough

백오피스 비즈니스 플랜 조회 API에 PDF 관련 메타데이터(pdfBased, pdfUrl)를 추가합니다. 애플리케이션 결과 DTO부터 서비스 레이어, 퍼시스턴스 쿼리, HTTP 응답 객체까지 전체 데이터 흐름을 확장하여 일관되게 PDF 정보를 전달합니다.

Changes

백오피스 비즈니스 플랜 PDF 정보 전달 흐름

Layer / File(s) Summary
결과 DTO 데이터 계약 확장
src/main/java/starlight/application/backoffice/businessplan/provided/dto/result/BackofficeBusinessPlanDetailResult.java, src/main/java/starlight/application/backoffice/member/provided/dto/result/BackofficeUserBusinessPlanRowResult.java, src/main/java/starlight/application/backoffice/member/required/dto/BackofficeUserBusinessPlanLookupResult.java
BackofficeBusinessPlanDetailResultpdfBasedpdfUrl 필드 추가, BackofficeUserBusinessPlanRowResultpdfBased 필드 추가, BackofficeUserBusinessPlanLookupResultpdfBased 필드 추가. 각 결과 레코드의 정적 팩토리 메서드(of(...)) 시그니처와 생성자 호출을 업데이트하여 새 필드를 수용합니다.
서비스 레이어 DTO 구성
src/main/java/starlight/application/backoffice/businessplan/BackofficeBusinessPlanQueryService.java, src/main/java/starlight/application/backoffice/member/BackofficeUserQueryService.java
findBusinessPlanDetail에서 엔티티의 isPdfBased()getPdfUrl() 호출 결과를 BackofficeBusinessPlanDetailResult.of(...) 인자에 추가합니다. findUserBusinessPlans에서 plan.pdfBased()BackofficeUserBusinessPlanRowResult.of(...) 인자에 추가하여 서비스가 PDF 데이터를 전달하도록 와이링합니다.
퍼시스턴스 쿼리 및 HTTP 응답 포매팅
src/main/java/starlight/adapter/backoffice/businessplan/persistence/BackofficeUserBusinessPlanRepository.java, src/main/java/starlight/adapter/backoffice/businessplan/webapi/dto/response/BackofficeBusinessPlanDetailResponse.java, src/main/java/starlight/adapter/backoffice/member/webapi/dto/response/BackofficeUserBusinessPlanRowResponse.java
JPQL 쿼리의 select new BackofficeUserBusinessPlanLookupResult(...) 생성자에 bp.pdfUrl is not null 조건을 추가하여 PDF 존재 여부를 데이터베이스에서 조회합니다. API 응답 DTO(BackofficeBusinessPlanDetailResponse, BackofficeUserBusinessPlanRowResponse)의 from(...) 메서드에서 결과 객체의 pdfBased()pdfUrl() 값을 새 필드에 매핑하여 클라이언트 응답에 포함시킵니다.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

이 PR은 일관된 패턴의 필드 추가 작업입니다. 모든 변경이 pdfBased/pdfUrl 두 필드를 여러 레코드와 서비스에 동일한 방식으로 추가하는 반복적인 구조를 따르므로, 검토 복잡도가 낮습니다. 데이터 흐름이 명확하고 로직 변경이 최소한이므로 빠르게 검증할 수 있습니다.

Possibly related PRs

  • StartUpLight/STARLIGHT_BE#84: 백오피스 사용자/사업계획서 조회 기능 초기 구현 후, 이 PR이 동일한 쿼리(BackofficeUserBusinessPlanRepository.findUserBusinessPlanPage) 및 결과 레코드들에 PDF 필드 흐름을 확장하므로 코드 레벨로 직접 연결됩니다.

Suggested labels

✨ FEAT, 📋 backend, 🔍 backoffice

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch SRLT-160-백오피스-pdf-유형-추가

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@SeongHo5356 SeongHo5356 changed the title [SRLT-160] Feat: 백오피스 PDF 유형 응답 추가 [SRLT-160] 백오피스 PDF 유형 응답 추가 May 24, 2026
@SeongHo5356 SeongHo5356 requested a review from 2ghrms May 24, 2026 06:48
@SeongHo5356 SeongHo5356 self-assigned this May 24, 2026
@github-actions
Copy link
Copy Markdown

Test Results

266 tests   266 ✅  10s ⏱️
 52 suites    0 💤
 52 files      0 ❌

Results for commit 668775a.

@SeongHo5356 SeongHo5356 marked this pull request as ready for review May 24, 2026 06:50
@SeongHo5356 SeongHo5356 merged commit b20c1c9 into develop May 24, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant