[FEAT/#362] 백오피스 푸시 알림 그룹 발송 및 문의 키워드 검색 구현#369
Merged
Conversation
[FIX/#364] 도메인 변경 assu.shop → assu.site
2 tasks
- PushTargetType(ALL/STUDENT/UNION/PARTNER/INDIVIDUAL) 기반 그룹 푸시 발송 - BackofficePushLog 엔티티 및 발송 이력 조회 API(GET /backoffice/notifications) 추가 - NotificationCommandService에 자유 메시지 오버로드(title/body/deepLink) 추가 - NotificationType에 BACKOFFICE 타입 추가 - MemberRepository에 역할별 조회(findByRole) 추가 - GET /backoffice/inquiries에 keyword 파라미터 추가 (제목/본문 검색)
- NotificationOutboxRepository: findByStatus, resetToPendingById 추가 - ErrorStatus: OUTBOX_NOT_FOUND, OUTBOX_NOT_FAILED 추가 - WebSocketConfig: allowedOrigin assu.shop → assu.site 변경 - .gitignore: .DS_Store, node_modules 추가
leesumin0526
force-pushed
the
feat/#362-sumin-backoffice
branch
from
July 4, 2026 05:50
81a2165 to
5b64403
Compare
kimyw1018
approved these changes
Jul 6, 2026
kimyw1018
left a comment
Contributor
There was a problem hiding this comment.
수고하셨습니당
main으로 pr올리셨습니당
2ghrms
reviewed
Jul 7, 2026
2ghrms
approved these changes
Jul 7, 2026
2ghrms
left a comment
Member
There was a problem hiding this comment.
고생하셨습니다~~ 회의때 얘기할 것이 조금 있는 것 같으니 참고해주세용
BAEK0111
reviewed
Jul 7, 2026
BAEK0111
reviewed
Jul 9, 2026
Comment on lines
+71
to
+72
| if (request.receiverId() == null) { | ||
| throw new DatabaseException(ErrorStatus.NO_SUCH_MEMBER); |
Contributor
There was a problem hiding this comment.
receiverId가 Null 일 경우는 NO_SUCH_MEMBER 말고 다른 errorStatus를 남기는게 좋을 것 같습니다.
NO_SUCH_MEMBER: DB조회를 했는데 해당 멤버가 없다. 의미라고 생각합니다.
하지만 이번 경우는 DB조회조차 안되었기 때문에 request 부분에 @NotNull을 붙여도 좋을 것 같아요
BAEK0111
reviewed
Jul 9, 2026
BAEK0111
reviewed
Jul 9, 2026
- PushTargetType.UNION → ADMIN (유비쿼터스 언어 통일) - NotificationBackofficeService 신규 분리 (백오피스 수동 발송 전용, REQUIRES_NEW 트랜잭션) - BackofficeInquiryService 신규 분리 (getInquiries/getById/answer 백오피스 전용) - InquiryRepository 키워드 검색 @query 교체 (OR 연산자 우선순위 버그 수정) - MemberRepository.findAllIds/findIdsByRole 추가 (전체 조회 OOM 방지) - PAGE 예외를 DatabaseException → GeneralException으로 교체 - retryOutbox 응답을 String 대신 BackofficeRetryOutboxResponseDTO로 변경 - sendPush 응답 String 제거 - ErrorStatus.RECEIVER_ID_REQUIRED 추가 - API 버전 v2.0 → v1.1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#️⃣연관된 이슈
📝작업 내용
요약
POST /backoffice/notifications/push— 기존 단건 전송에서 그룹(전체/역할별)/개인 자유 메시지 발송으로 전면 교체GET /backoffice/notifications— 발송 이력 조회 신규 구현GET /backoffice/inquiries—keyword파라미터 추가 (제목/본문 검색)A. 신규 엔티티 · DTO · Repository
PushTargetType.javaALL / STUDENT / UNION / PARTNER / INDIVIDUALBackofficePushLog.javaBackofficePushLogRepository.javaBackofficePushSendRequestDTO.javaBackofficePushRequestDTO대체)BackofficePushLogResponseDTO.javaB. 백오피스 알림 서비스
BackofficeNotificationService.javasendPush시그니처 교체,getPushLogs추가BackofficeNotificationServiceImpl.javatargetType별 수신자 분기(ALL/STUDENT/UNION/PARTNER/INDIVIDUAL) +BackofficePushLog저장BackofficeNotificationController.javaPOST /pushDTO 교체,GET /backoffice/notifications추가BackofficePushRequestDTO.javaC. 알림 공통 서비스
NotificationCommandService.javacreateAndQueue(receiverId, title, body, deepLink)자유 메시지 오버로드 추가NotificationCommandServiceImpl.javaNotificationType.BACKOFFICE사용)NotificationType.javaBACKOFFICE타입 추가MemberRepository.javafindByRole(UserRole)추가D. 문의 키워드 검색
InquiryRepository.javafindByStatusAndTitleContainingOrStatusAndContentContaining,findByTitleContainingOrContentContaining추가InquiryService.javagetAllInquiries시그니처에keyword추가InquiryServiceImpl.javaBackofficeInquiryController.javaGET /backoffice/inquiries에keyword파라미터 추가🔎코드 설명(스크린샷(선택))
프론트엔드 수정, 삭제가 필요한 부분들은 아래를 참고해 주세요

💬고민사항 및 리뷰 요구사항 (Optional)
비고 (Optional)