diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/reservation/service/ReservationService.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/reservation/service/ReservationService.java index 82e66e3c..d4ec8ab0 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/reservation/service/ReservationService.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/reservation/service/ReservationService.java @@ -30,6 +30,7 @@ import com.nowait.domaincorerdb.reservation.entity.Reservation; import com.nowait.domaincorerdb.reservation.exception.DuplicateReservationException; import com.nowait.domaincorerdb.reservation.exception.ReservationAddUnauthorizedException; +import com.nowait.domaincorerdb.reservation.exception.ReservationNotFoundException; import com.nowait.domaincorerdb.reservation.exception.ReservationNumberIssueFailException; import com.nowait.domaincorerdb.reservation.exception.UserWaitingLimitExceededException; import com.nowait.domaincorerdb.reservation.repository.ReservationRepository; @@ -177,9 +178,15 @@ public WaitingResponseDto myWaitingInfo(Long storeId, CustomOAuth2User customOAu if (storeId == null || userId.trim().isEmpty()) { throw new IllegalArgumentException("Invalid storeId or userId"); } + Long rank = waitingUserRedisRepository.getRank(storeId, userId); Integer partySize = waitingUserRedisRepository.getPartySize(storeId, userId); String reservationId = waitingUserRedisRepository.getReservationId(storeId, userId); + + if (reservationId == null) { + throw new ReservationNotFoundException(); + } + return WaitingResponseDto.builder() .reservationNumber(reservationId) .rank(rank == null ? -1 : rank.intValue() + 1) diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/controller/StoreController.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/controller/StoreController.java index e134bf28..8eefa2d7 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/controller/StoreController.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/controller/StoreController.java @@ -46,15 +46,15 @@ public ResponseEntity getAllStoresByPageAndDeparments(Pageable pageable, @Aut ); } - @GetMapping("/{storeId}") + @GetMapping("/{publicCode}") @Operation(summary = "주점 ID로 주점 상세 조회", description = "특정 주점을 ID로 조회합니다.") @ApiResponse(responseCode = "200", description = "주점 상세 조회 성공") - public ResponseEntity getStoreById(@PathVariable Long storeId, @AuthenticationPrincipal CustomOAuth2User customOAuth2User) { + public ResponseEntity getStoreById(@PathVariable String publicCode, @AuthenticationPrincipal CustomOAuth2User customOAuth2User) { return ResponseEntity .status(HttpStatus.OK) .body( ApiUtils.success( - storeService.getStoreByStoreId(storeId, customOAuth2User) + storeService.getStoreByPublicCode(publicCode, customOAuth2User) ) ); } diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/dto/StorePageReadResponse.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/dto/StorePageReadResponse.java index cabee501..4bc28d85 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/dto/StorePageReadResponse.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/dto/StorePageReadResponse.java @@ -15,6 +15,7 @@ @Builder public class StorePageReadResponse { private Long storeId; + private String publicCode; private Long bookmarkId; private Boolean isBookmark; private Long waitingCount; @@ -45,6 +46,7 @@ public static StorePageReadResponse fromEntity(Store store, Long bookmarkId, Lis return StorePageReadResponse.builder() .storeId(store.getStoreId()) + .publicCode(store.getPublicCode()) .bookmarkId(bookmarkId) .isBookmark(isBookmark) .waitingCount(waitingCount) diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/dto/StoreSearchResponse.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/dto/StoreSearchResponse.java index 8883ebf3..1a11a085 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/dto/StoreSearchResponse.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/dto/StoreSearchResponse.java @@ -15,6 +15,7 @@ @Builder public class StoreSearchResponse { private Long storeId; + private String publicCode; private Long waitingCount; private Long departmentId; private String departmentName; @@ -34,6 +35,7 @@ public static StoreSearchResponse fromEntity(Store store, List searchByKeywordNative(String name); diff --git a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/service/StoreServiceImpl.java b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/service/StoreServiceImpl.java index c49b4718..35173642 100644 --- a/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/service/StoreServiceImpl.java +++ b/nowait-app-user-api/src/main/java/com/nowait/applicationuser/store/service/StoreServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import com.nowait.applicationuser.reservation.repository.WaitingUserRedisRepository; import com.nowait.applicationuser.store.dto.StoreDepartmentReadResponse; @@ -141,15 +142,17 @@ public StoreDepartmentReadResponse getAllStoresByPageAndDeparments(Pageable page @Override @Transactional(readOnly = true) - public StoreDetailReadResponse getStoreByStoreId(Long storeId, CustomOAuth2User customOAuth2User) { + public StoreDetailReadResponse getStoreByPublicCode(String publicCode, CustomOAuth2User customOAuth2User) { - if (storeId == null) + if (!StringUtils.hasText(publicCode)) throw new StoreParamEmptyException(); User user = customOAuth2User.getUser(); - Store store = storeRepository.findByStoreIdAndDeletedFalse(storeId) + Store store = storeRepository.findByPublicCodeAndDeletedFalse(publicCode) .orElseThrow(StoreNotFoundException::new); + Long storeId = store.getStoreId();; + String departmentName = departmentRepository.findById(store.getDepartmentId()) .map(Department::getName) .orElse("Unknown Department");