Skip to content

feat(item): 상품 다중 구매 기능 추가 - #100

Merged
choi-jin-wook merged 1 commit into
mainfrom
refactor/item-purchase-quantity
Sep 14, 2026
Merged

choi-jin-wook merged 1 commit into
mainfrom
refactor/item-purchase-quantity

Conversation

@choi-jin-wook

Copy link
Copy Markdown
Collaborator

개요

상품 구매 요청 시 구매 수량을 지정할 수 있도록 다중 구매 기능을 추가합니다.

구매 수량에 따라 주문 금액과 지급 아이템 수량을 계산하고, 아이템 보유 한도 역시 전체 구매 수량을 기준으로 검증합니다.

변경 사항

1. 구매 API 수량 파라미터 추가

  • 상품 구매 API에 quantity 요청 파라미터 추가
  • 수량을 전달하지 않으면 기본값 1 적용
  • @Min(1)을 적용해 최소 구매 수량 검증
  • 구매 서비스 인터페이스와 구현체에 구매 수량 전달

2. 주문 금액 및 지급 수량 계산

  • 상품 가격에 구매 수량을 곱해 요청 금액과 예상 금액 계산
  • 상품별 보상 수량에 구매 수량을 곱해 주문 아이템 생성
  • 단일 구매 시 기존 동작 유지

3. 아이템 보유 한도 검증

  • 상품 구성품 수량에 구매 수량을 반영해 실제 요청 수량 계산
  • 현재 보유 수량과 결제 대기 수량을 포함해 구매 가능 여부 검증
  • 다중 구매로 아이템 보유 한도를 초과하는 주문 방지

4. 관리자 룰렛 컨트롤러 패키지 정리

  • AdminRouletteController의 패키지를 실제 디렉터리 구조에 맞게 변경
  • 컨트롤러 테스트의 import 경로 수정

테스트

  • 기존 상품 구매 테스트에 기본 구매 수량 적용
  • 여러 개 구매 시 주문 금액과 지급 아이템 수량이 함께 증가하는지 검증
  • 전체 구매 수량이 아이템 보유 한도를 초과하면 주문이 생성되지 않는지 검증

    - 구매 API에 수량 파라미터와 최소값 검증 추가
    - 구매 수량에 따라 주문 금액과 지급 아이템 수량 계산
    - 전체 구매 수량 기준으로 아이템 보유 한도 검증
    - 다중 구매 및 구매 한도 초과 테스트 추가
    - 관리자 룰렛 컨트롤러 패키지 경로 수정
@choi-jin-wook
choi-jin-wook merged commit 1ae00a9 into main Sep 14, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant