-
Notifications
You must be signed in to change notification settings - Fork 0
fix(Order): 사용자 주문 조회 반환타입 수정 #125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The head ref may contain hidden characters: "fix/#124-order\uC870\uD68C\uBC84\uADF8\uC218\uC815"
Conversation
- status 한번만 뜨도록 수정
Walkthrough새로운 Redis 기반 대기열 카운트 조회 저장소가 관리자 API에 추가되었습니다. 주문 관련 DTO 및 서비스에서 주문 항목 정보를 더 풍부하게 반환하도록 메서드 시그니처와 매핑 로직이 변경되었습니다. 일부 불필요한 import 구문이 삭제되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant Controller
participant Service
participant Repository
participant Redis
Controller->>Service: createOrder(storeId, tableId, orderCreateRequestDto, sessionId)
Service->>Repository: saveOrder(...)
Repository-->>Service: UserOrder, List<OrderItem>
Service->>OrderCreateResponseDto: fromEntity(UserOrder, List<OrderItem>)
Service-->>Controller: OrderCreateResponseDto
sequenceDiagram
participant Service
participant Redis
Service->>Redis: zCard(waitingKeyPrefix + storeId)
Redis-->>Service: waitingCount
Service-->>Service: 반환값: 대기 인원수(long)
Possibly related PRs
Suggested labels
✨ Finishing Touches
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/service/OrderService.java (1)
121-122: 불필요한 빈 줄 제거 권장코드 가독성을 위해 불필요한 빈 줄들을 제거하는 것이 좋겠습니다.
- - -nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/reservation/repository/WaitingRedisRepository.java (2)
1-9: 레포지토리 이름 중복 가능성 검토
applicationuser모듈에도 동일한 클래스명이 존재합니다. 패키지가 달라 충돌은 없겠지만, 스프링 컴포넌트 스캔 범위를 통합할 계획이 있다면 빈 이름 충돌이 발생할 수 있습니다.
AdminWaitingRedisRepository같이 역할이 드러나는 명칭을 고려해 보세요.
15-20: null-safe 처리 좋습니다 – 가독성 한 단계 개선 제안삼항 연산자 사용으로 NPE 를 막은 점은 충분히 만족스럽습니다. 다만, 가독성을 높이려면
Objects.requireNonNullElse(Java 9+) 또는Optional.ofNullable(count).orElse(0L)패턴도 고려할 수 있습니다.예시:
-Long count = redisTemplate.opsForZSet().zCard(key); -return count == null ? 0 : count; +Long count = redisTemplate.opsForZSet().zCard(key); +return Objects.requireNonNullElse(count, 0L);선택 사항이므로 참고만 해 주세요.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/reservation/repository/WaitingRedisRepository.java(1 hunks)nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/controller/OrderController.java(0 hunks)nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/dto/OrderCreateResponseDto.java(2 hunks)nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/dto/OrderItemListGetResponseDto.java(1 hunks)nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/dto/OrderItemResponseDTO.java(2 hunks)nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/service/OrderService.java(2 hunks)nowait-app-user-api/src/main/java/com/nowait/applicationuser/reservation/repository/WaitingRedisRepository.java(1 hunks)
💤 Files with no reviewable changes (1)
- nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/controller/OrderController.java
🧰 Additional context used
🧬 Code Graph Analysis (2)
nowait-app-user-api/src/main/java/com/nowait/applicationuser/reservation/repository/WaitingRedisRepository.java (1)
nowait-domain/domain-redis/src/main/java/com/nowait/domaincoreredis/common/util/RedisKeyUtils.java (1)
RedisKeyUtils(5-43)
nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/reservation/repository/WaitingRedisRepository.java (2)
nowait-app-user-api/src/main/java/com/nowait/applicationuser/reservation/repository/WaitingRedisRepository.java (1)
Repository(10-50)nowait-domain/domain-redis/src/main/java/com/nowait/domaincoreredis/common/util/RedisKeyUtils.java (1)
RedisKeyUtils(5-43)
🔇 Additional comments (8)
nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/dto/OrderItemResponseDTO.java (2)
3-3: 새로운 import 추가 승인OrderItem 엔티티 import가 적절하게 추가되었습니다.
19-25: 정적 팩토리 메서드 구현 승인OrderItem 엔티티를 DTO로 변환하는 정적 팩토리 메서드가 올바르게 구현되었습니다. 빌더 패턴을 사용하여 깔끔하게 구현되었고, 엔티티에서 필요한 필드들(메뉴 ID, 메뉴 이름, 수량)을 적절히 추출하고 있습니다.
nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/dto/OrderItemListGetResponseDto.java (1)
22-30: 상태 필드 제거 및 팩토리 메서드 단순화 승인OrderStatus 파라미터가 제거되고 status 필드 매핑이 제거된 것은 PR 목표와 일치합니다. 이제 상태는 개별 주문 항목이 아닌 상위 레벨에서 그룹핑 기준으로 사용되어 중복을 방지합니다. 팩토리 메서드가 적절히 단순화되었습니다.
nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/dto/OrderCreateResponseDto.java (2)
5-5: OrderItem 엔티티 import 추가 승인OrderItem 엔티티에 대한 import가 적절하게 추가되었습니다.
26-37: fromEntity 메서드 개선 승인OrderItem 목록을 파라미터로 받아 OrderItemResponseDTO 목록으로 변환하는 로직이 올바르게 구현되었습니다. 스트림을 사용하여 각 OrderItem을 OrderItemResponseDTO로 변환하는 방식이 깔끔하고, 새로 추가된 OrderItemResponseDTO.fromEntity 메서드를 적절히 활용하고 있습니다.
nowait-app-user-api/src/main/java/com/nowait/applicationuser/order/service/OrderService.java (2)
93-93: createOrder 메서드 반환 구문 개선 승인OrderCreateResponseDto.fromEntity 호출 시 orderItems를 추가로 전달하는 변경사항이 올바르게 구현되었습니다. 이를 통해 주문 생성 응답에 상세한 주문 항목 정보가 포함됩니다.
101-109: 주문 항목 상태별 그룹핑 로직 개선 승인스트림 처리 로직이 PR 목표에 맞게 훌륭하게 리팩토링되었습니다. 이제 각 주문 항목에서 상태를 중복해서 반환하는 대신, UserOrder의 상태를 기준으로 그룹핑하여 상태가 한 번만 나타나도록 구현되었습니다. flatMap을 사용하여 주문 항목을 직접 추출하고, Collectors.mapping을 사용하여 DTO 변환을 수행하는 방식이 효율적이고 명확합니다.
nowait-app-user-api/src/main/java/com/nowait/applicationuser/reservation/repository/WaitingRedisRepository.java (1)
5-7: 불필요한 import 제거 👍
java.util.Set사용 흔적이 없었는데 깔끔하게 정리하셨습니다. 빌드-타임 경고 감소에 도움이 됩니다.
작업 요약
Issue Link
#124
문제점 및 어려움
해결 방안
Reference
Summary by CodeRabbit
신규 기능
기능 개선
버그 수정