From 69ccbbc6f70d7e06541a2dc28f62bf242502a449 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Sun, 1 Feb 2026 23:11:09 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=ED=95=99=EA=B3=BC=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EA=B4=80=EB=A0=A8=20=EC=98=88=EC=99=B8=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/GlobalExceptionHandler.java | 9 +++++++++ .../waiting/service/WaitingService.java | 11 ++++++++++- .../com/nowait/common/exception/ErrorMessage.java | 3 +++ .../exception/DepartmentNotFoundException.java | 9 +++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/department/exception/DepartmentNotFoundException.java diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/exception/GlobalExceptionHandler.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/exception/GlobalExceptionHandler.java index de20f1f3..3eb701b7 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/exception/GlobalExceptionHandler.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/exception/GlobalExceptionHandler.java @@ -24,6 +24,7 @@ import com.nowait.common.exception.ErrorMessage; import com.nowait.common.exception.ErrorResponse; import com.nowait.discord.service.DiscordAlarmService; +import com.nowait.domaincorerdb.department.exception.DepartmentNotFoundException; import com.nowait.domaincorerdb.order.exception.DepositorNameTooLongException; import com.nowait.domaincorerdb.order.exception.DuplicateOrderException; import com.nowait.domaincorerdb.order.exception.OrderItemsEmptyException; @@ -240,6 +241,14 @@ public ErrorResponse storeWaitingDisabledException(StoreWaitingDisabledException return new ErrorResponse(e.getMessage(), STORE_WAITING_DISABLED.getCode()); } + @ResponseStatus(NOT_FOUND) + @ExceptionHandler(DepartmentNotFoundException.class) + public ErrorResponse handleDepartmentNotFoundException(DepartmentNotFoundException e, WebRequest request) { + alarm(e, request); + log.error("handleDepartmentNotFoundException", e); + return new ErrorResponse(e.getMessage(), DEPARTMENT_NOT_FOUND.getCode()); + } + @ResponseStatus(NOT_FOUND) @ExceptionHandler(StoreNotFoundException.class) public ErrorResponse handleStoreNotFoundException(StoreNotFoundException e, WebRequest request) { diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/service/WaitingService.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/service/WaitingService.java index 8a822b69..822d31c3 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/service/WaitingService.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/service/WaitingService.java @@ -17,6 +17,9 @@ import com.nowait.applicationuser.waiting.event.AddWaitingRegisterEvent; import com.nowait.applicationuser.waiting.redis.WaitingIdempotencyRepository; import com.nowait.common.enums.ReservationStatus; +import com.nowait.domaincorerdb.department.entity.Department; +import com.nowait.domaincorerdb.department.exception.DepartmentNotFoundException; +import com.nowait.domaincorerdb.department.repository.DepartmentRepository; import com.nowait.domaincorerdb.reservation.entity.Reservation; import com.nowait.domaincorerdb.reservation.exception.ReservationNotFoundException; import com.nowait.domaincorerdb.reservation.repository.ReservationRepository; @@ -43,6 +46,7 @@ public class WaitingService { private final WaitingRedisRepository waitingRedisRepository; private final StoreRepository storeRepository; private final UserRepository userRepository; + private final DepartmentRepository departmentRepository; private final ApplicationEventPublisher eventPublisher; private final WaitingIdempotencyRepository waitingIdempotencyRepository; @@ -153,15 +157,20 @@ public GetWaitingSizeResponse getWaitingCount(CustomOAuth2User oAuth2User, Strin Store store = storeRepository.findByPublicCodeAndDeletedFalse(publicCode) .orElseThrow(StoreNotFoundException::new); + Long storeId = store.getStoreId(); + User user = userRepository.findById(oAuth2User.getUserId()) .orElseThrow(UserNotFoundException::new); - Long storeId = store.getStoreId(); + Department department = departmentRepository.findById(store.getDepartmentId()) + .orElseThrow(DepartmentNotFoundException::new); Long waitingCount = waitingRedisRepository.getWaitingCount(storeId); return GetWaitingSizeResponse.builder() .storeId(storeId) + .storeName(store.getName()) + .departmentName(department.getName()) .waitingCount(waitingCount) .build(); } diff --git a/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java b/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java index fa9e0bd7..ba58c78a 100644 --- a/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java +++ b/nowait-common/src/main/java/com/nowait/common/exception/ErrorMessage.java @@ -79,6 +79,9 @@ public enum ErrorMessage { STORE_PAYMENT_DELETE_UNAUTHORIZED("주점 결제 정보 삭제 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "storePayment006"), STORE_PAYMENT_ALREADY_EXISTS("이미 존재하는 주점 결제 정보입니다.", "storePayment007"), + // department + DEPARTMENT_NOT_FOUND("해당 학과/전공을 찾을 수 없습니다.", "department001"), + // Statistics STATISTIC_VIEW_UNAUTHORIZED("통계 보기 권한이 없습니다.(슈퍼계정 or 주점 관리자만 가능)", "statistics001"), MENU_COUNTER_UPDATE("메뉴 카운터 업데이트 실패", "statistics002"), diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/department/exception/DepartmentNotFoundException.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/department/exception/DepartmentNotFoundException.java new file mode 100644 index 00000000..55718143 --- /dev/null +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/department/exception/DepartmentNotFoundException.java @@ -0,0 +1,9 @@ +package com.nowait.domaincorerdb.department.exception; + +import com.nowait.common.exception.ErrorMessage; + +public class DepartmentNotFoundException extends RuntimeException { + public DepartmentNotFoundException() { + super(ErrorMessage.DEPARTMENT_NOT_FOUND.getMessage()); + } +} From 3e35faadc4540409bcb9838ff0d0b88279a5c263 Mon Sep 17 00:00:00 2001 From: Jihun Kim Date: Sun, 1 Feb 2026 23:11:18 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=ED=95=99=EA=B3=BC=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EB=B0=8F=20=EC=A3=BC=EC=A0=90=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../applicationuser/waiting/dto/GetWaitingSizeResponse.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/dto/GetWaitingSizeResponse.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/dto/GetWaitingSizeResponse.java index 85a0f93a..17d654ff 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/dto/GetWaitingSizeResponse.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/waiting/dto/GetWaitingSizeResponse.java @@ -7,5 +7,7 @@ @Builder public class GetWaitingSizeResponse { private Long storeId; + private String storeName; + private String departmentName; private Long waitingCount; }