Skip to content

fix: 어드민 유저가 채팅방을 나가도 목록에 조회되는 문제 해결#498

Merged
dh2906 merged 2 commits intodevelopfrom
fix/admin-quit-chat-room
Apr 4, 2026
Merged

fix: 어드민 유저가 채팅방을 나가도 목록에 조회되는 문제 해결#498
dh2906 merged 2 commits intodevelopfrom
fix/admin-quit-chat-room

Conversation

@dh2906
Copy link
Copy Markdown
Contributor

@dh2906 dh2906 commented Apr 4, 2026

🔍 개요

  • ADMIN 권한을 가진 유저가 DIRECT 채팅방을 나가도, 해당 채팅방이 목록에서 계속 보이는 버그를 수정합니다.

🚀 주요 변경 내용

  • ChatService.java

    • getAdminDirectChatRooms() 메서드에 adminUserId 파라미터 추가
    • 현재 조회하는 관리자의 ID를 Repository에 전달하도록 변경
  • ChatRoomRepository.java

    • findAdminChatRoomsOptimized 쿼리 수정
    • viewerAdminCrm을 LEFT JOIN으로 추가하여 현재 조회하는 관리자의 멤버십 상태 확인
    • WHERE 절에 (viewerAdminCrm.leftAt IS NULL OR viewerAdminCrm.id.userId IS NULL) 조건 추가
    • 각 운영자가 독립적으로 채팅방을 나갈 수 있도록 지원

💬 참고 사항


✅ Checklist (완료 조건)

  • 코드 스타일 가이드 준수
  • 테스트 코드 포함됨
  • Reviewers / Assignees / Labels 지정 완료
  • 보안 및 민감 정보 검증 (API 키, 환경 변수, 개인정보 등)

@dh2906 dh2906 self-assigned this Apr 4, 2026
@dh2906 dh2906 added the 버그 정상적으로 동작하지 않는 문제 상황 관련 이슈입니다. label Apr 4, 2026
@dh2906 dh2906 merged commit d020892 into develop Apr 4, 2026
4 checks passed
@dh2906 dh2906 deleted the fix/admin-quit-chat-room branch April 4, 2026 12:47
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 4, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1520559c-ef85-4123-80e9-3b097fe6d8b2

📥 Commits

Reviewing files that changed from the base of the PR and between 4c38d56 and a749095.

📒 Files selected for processing (2)
  • src/main/java/gg/agit/konect/domain/chat/repository/ChatRoomRepository.java
  • src/main/java/gg/agit/konect/domain/chat/service/ChatService.java

📝 Walkthrough

Walkthrough

관리자 직접 채팅 방 조회 기능을 사용자 범위로 제한하기 위해 리포지토리 쿼리와 서비스 메서드 서명을 수정했습니다. findAdminChatRoomsOptimized 메서드에 viewerAdminId 매개변수를 추가하고, JPQL 쿼리에 해당 ID를 기반으로 하는 LEFT JOIN 필터를 추가하여 채팅방 멤버십 검증을 강화했습니다.

Changes

Cohort / File(s) Summary
Repository Query Update
src/main/java/gg/agit/konect/domain/chat/repository/ChatRoomRepository.java
findAdminChatRoomsOptimized 메서드 서명에 viewerAdminId 매개변수 추가. JPQL 쿼리의 시스템 관리자 alias를 adminCrm에서 systemAdminCrm으로 변경하고, 읽지 않은 메시지 조건을 조정. viewerAdminId 기반으로 ChatRoomMember에 LEFT JOIN을 추가하고, 뷰어가 채팅방을 나가지 않았거나 멤버십이 없는 경우만 필터링하도록 조정.
Service Method Update
src/main/java/gg/agit/konect/domain/chat/service/ChatService.java
getDirectChatRooms(Integer userId) 메서드가 관리자 역할일 때 getAdminDirectChatRooms(userId)를 호출하도록 변경. getAdminDirectChatRooms 메서드 서명을 수정하여 Integer adminUserId 매개변수를 받도록 하고, 리포지토리 쿼리 호출 시 SYSTEM_ADMIN_ID 대신 adminUserId를 전달하도록 조정.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 관리자님의 채팅 방을 다시 정렬하고,
누가 어느 방에 계신지 이제는 명확하네!
LEFT JOIN으로 멤버십 검증하고,
나간 방은 걸러내는 마법이 일어나네.
뷰어의 ID가 춤을 추며 방을 제한하고,
더욱 안전한 채팅의 세상을 만들어가네! 📩

✨ 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 fix/admin-quit-chat-room

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

버그 정상적으로 동작하지 않는 문제 상황 관련 이슈입니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant