Skip to content

(fix) : 멤버별 정산내역 입금 확인 요청 ID 추가#57

Merged
sudhdkso merged 2 commits into
developfrom
fix/payment-request-settlement-detail
May 31, 2026
Merged

(fix) : 멤버별 정산내역 입금 확인 요청 ID 추가#57
sudhdkso merged 2 commits into
developfrom
fix/payment-request-settlement-detail

Conversation

@sudhdkso
Copy link
Copy Markdown
Contributor

@sudhdkso sudhdkso commented May 31, 2026

#️⃣연관된 이슈

X

🔀반영 브랜치

fix/payment-request-settlement-detail -> develop

🔧변경 사항

  • 멤버별 정산내역 응답에 입금 확인 요청 ID를 추가했습니다.
  • 총무가 조회할 때만 대기 중인 입금 확인 요청 ID를 포함하도록 처리했습니다.
  • 관련 서비스 및 컨트롤러 테스트를 수정했습니다.

💬리뷰 요구사항(선택)

X

Summary by CodeRabbit

릴리스 노트

  • New Features
    • 정산 참여자별 미지급(펜딩) 결제 요청 정보를 조회 응답에 추가했습니다. 정산 작성자는 각 멤버의 대기 중인 결제 요청 ID를 확인할 수 있습니다.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 31, 2026

Review Change Stack

Warning

Review limit reached

@sudhdkso, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 47 minutes and 26 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 57e207fe-7380-4483-ade3-fd28c1649bb1

📥 Commits

Reviewing files that changed from the base of the PR and between 3e1b746 and 141276c.

📒 Files selected for processing (1)
  • src/test/java/com/dnd/moddo/domain/memberExpense/service/QueryMemberExpenseServiceTest.java

Walkthrough

정산 멤버 지출 상세 조회 API에서 현재 사용자 정보를 기반으로 정산 작성자를 판별한 후, 작성자인 경우에만 멤버별 펜딩 결제 요청 ID를 조회하여 응답에 포함하도록 변경했습니다.

Changes

멤버 지출 조회에 결제 요청 ID 매핑

Layer / File(s) Summary
멤버 지출 응답에 결제 요청 ID 필드 추가
src/main/java/com/dnd/moddo/event/presentation/response/MemberExpenseItemResponse.java
MemberExpenseItemResponse 레코드에 paymentRequestId Long 필드를 추가하고, 팩토리 메서드 of(...)의 파라미터 목록 및 빌더 조립에 해당 필드를 포함하도록 수정합니다.
정산 작성자 판별 후 결제 요청 ID 조회 및 매핑
src/main/java/com/dnd/moddo/event/application/query/QueryMemberExpenseService.java
QueryMemberExpenseServiceSettlementReaderPaymentRequestReader 의존성을 주입받고, findMemberExpenseDetailsBySettlementId 메서드에 userId 파라미터를 추가합니다. 정산 작성자 여부를 판별한 후, 작성자인 경우 PaymentRequestReader로 멤버별 펜딩 요청 ID를 조회하고 비작성자인 경우 빈 맵으로 처리합니다. 조회한 paymentRequestIdByMemberId를 멤버 상세 응답 생성 시 전달하여 각 응답에 paymentRequestId를 포함합니다.
컨트롤러에서 로그인 사용자 정보 수신 및 전달
src/main/java/com/dnd/moddo/event/presentation/MemberExpenseController.java
MemberExpenseControllergetMemberExpensesDetails 메서드에 @LoginUser LoginUserInfo loginUser 파라미터를 추가하여 인증된 사용자 정보를 수신하고, queryMemberExpenseService.findMemberExpenseDetailsBySettlementId 호출 시 loginUser.userId()를 함께 전달합니다.
서비스 및 컨트롤러 테스트 업데이트
src/test/java/com/dnd/moddo/domain/memberExpense/service/QueryMemberExpenseServiceTest.java, src/test/java/com/dnd/moddo/domain/memberExpense/controller/MemberExpenseControllerTest.java
QueryMemberExpenseServiceTest에서 userId 파라미터 추가, SettlementReaderPaymentRequestReader 모킹을 추가하고, 정산 작성자인 경우와 비작성자인 경우의 동작을 검증합니다. MemberExpenseControllerTest에서 로그인 사용자 파라미터 해석 스텁을 추가하고 응답 JSON의 paymentRequestId 값을 검증합니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • moddo-kr/moddo-backend#51: 멤버별 펜딩 결제 요청 ID 매핑 기능의 선행 구현으로, 정산 멤버 비용 조회 시 PaymentRequestReader.findPendingRequestIdByMemberId 사용을 도입한 변경입니다.

Poem

🐰 정산 담당자의 눈을 밝혀주네,
펜딩 결제 요청 ID가 반짝반짝,
userId 한 줄 더하니 보안도 쌓이고,
테스트까지 완벽하게 다진 변경이로군! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경 사항의 핵심을 명확하게 반영하고 있습니다. 멤버별 정산내역에 입금 확인 요청 ID를 추가하는 것이 주요 변경 사항이며, 제목이 이를 정확하게 나타냅니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/payment-request-settlement-detail

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.

@github-actions
Copy link
Copy Markdown

📝 테스트 커버리지 리포트입니다!

File Coverage [99.02%] 🍏
QueryMemberExpenseService.java 99.02% 🍏
Total Project Coverage 71.38%

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@src/test/java/com/dnd/moddo/domain/memberExpense/service/QueryMemberExpenseServiceTest.java`:
- Around line 124-125: The test relies on GroupTestFactory.createDefault() which
fixes the settlement writer to 1L, causing brittle behavior around
Settlement.isWriter(userId) and the branch in
QueryMemberExpenseService.findMemberExpenseDetailsBySettlementId that calls
paymentRequestReader.findPendingRequestIdByMemberId(...); explicitly set the
settlement's writer to the userId under test (e.g., adjust mockSettlement or
create the Settlement via a factory method that accepts writer) before
stubbing/verifying paymentRequestReader so the writer check aligns with the
tested userId rather than relying on createDefault()'s hardcoded 1L.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: be384a6b-c8a6-41ad-8bfe-079ab25861c5

📥 Commits

Reviewing files that changed from the base of the PR and between 0910ca2 and 3e1b746.

📒 Files selected for processing (5)
  • src/main/java/com/dnd/moddo/event/application/query/QueryMemberExpenseService.java
  • src/main/java/com/dnd/moddo/event/presentation/MemberExpenseController.java
  • src/main/java/com/dnd/moddo/event/presentation/response/MemberExpenseItemResponse.java
  • src/test/java/com/dnd/moddo/domain/memberExpense/controller/MemberExpenseControllerTest.java
  • src/test/java/com/dnd/moddo/domain/memberExpense/service/QueryMemberExpenseServiceTest.java

@github-actions
Copy link
Copy Markdown

📝 테스트 커버리지 리포트입니다!

File Coverage [99.02%] 🍏
QueryMemberExpenseService.java 99.02% 🍏
Total Project Coverage 71.35%

@sudhdkso sudhdkso merged commit 8d41233 into develop May 31, 2026
3 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