-
Notifications
You must be signed in to change notification settings - Fork 3
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
feat: 경매 옵션 변경(업데이트) 서비스 구현 #37
Conversation
- ConstantAuctionType: 지정 금액만큼 가격이 변동되는 경매 방식 - PercentageAuctionType: 지정 비율만큼 가격이 변동되는 경매 방식
- 경매가 성공적으로 생성되면 예외가 발생하지 않는다. - CreateAuctionCommand: 경매 생성 command 구현
- String -> ErrorCode enum으로 변경
## 제약 요구사항 명세 - 경매 재고는 인당 구매 수량 보다 작을 수 없다. - 최대 구매 수량 제한은 0보다 커야한다. - 가격 변동폭은 0보다 커야한다. - 변동 시간 단위는 0보다 커야한다. - 경매의 시작시간은 종료 시간보다 이전이어야 한다. - 상품 이름은 비어있을 수 없다. - 상품의 원가는 0보다 커야한다. - 경매 유형, 판매자 식별자, 상품 이름, 시작 시간, 종료 시간은 필수값이다. ## 구현 세부 사항 - ErrorCode A000 ~ A007 에러 코드 생성 - CreateAuctionCommand 구현 - CreateAuctionCommandTest 작성
## 제약 요구사항 명세 - 경매 시작 시간과 경매 종료 시간의 차이는 10분, 20분, 30분, 40분, 50분, 60분으로 제한된다. ## 구현 세부 사항 - ErrorCode A008 에러 코드 생성 - AuctionService#createAuction 구현 - AuctionServiceTest 테스트 생성
- 경매 지속시간이 10, 20, 30, 40, 50, 60이 아닌 경우 예외가 발생한다.
- 경매가 성공적으로 생성되면 경매를 저장시킨다.
## 구현 요구사항 - 상품 원가는 가격 변동폭(절대값)보다 커야합니다.
- int -> long 으로 변경
- variationWidth 필드를 PricePolicy로 이전하였습니다.
## 구현 요구사항 - 경매의 할인율은 100% 보다 작아야한다.
- variationWidth 속성이 PricePolicy로 이전되었습니다.
- 가격 변동폭이 0과 같거나 더 작은 경우 A004 예외가 발생한다.
- 가격 할인률은 0보다 크고 100보다 작아야 한다.
* feat: AuctionServiceTest 경매 성공 테스트 추가 - 경매가 성공적으로 생성되면 예외가 발생하지 않는다. - CreateAuctionCommand: 경매 생성 command 구현 * feat: base exception class add * hotfix: CustomException의 ErrorCode 리턴 타입 변경 - String -> ErrorCode enum으로 변경 * feat: CreateAuctionCommand 테스트 생성 * refactor: CreateAuctionCommand 멤버변수 오타 수정 (variationDuration) * feat: CreateAuctionCommand 제약 구현 ## 제약 요구사항 명세 - 경매 재고는 인당 구매 수량 보다 작을 수 없다. - 최대 구매 수량 제한은 0보다 커야한다. - 가격 변동폭은 0보다 커야한다. - 변동 시간 단위는 0보다 커야한다. - 경매의 시작시간은 종료 시간보다 이전이어야 한다. - 상품 이름은 비어있을 수 없다. - 상품의 원가는 0보다 커야한다. - 경매 유형, 판매자 식별자, 상품 이름, 시작 시간, 종료 시간은 필수값이다. ## 구현 세부 사항 - ErrorCode A000 ~ A007 에러 코드 생성 - CreateAuctionCommand 구현 - CreateAuctionCommandTest 작성 * test: 경매의 지속시간은 최소 10분 최대 60분이다. * feat: AuctionService#createAuction 기능 구현 ## 제약 요구사항 명세 - 경매 시작 시간과 경매 종료 시간의 차이는 10분, 20분, 30분, 40분, 50분, 60분으로 제한된다. ## 구현 세부 사항 - ErrorCode A008 에러 코드 생성 - AuctionService#createAuction 구현 - AuctionServiceTest 테스트 생성 * feat: AuctionRepository 생성 * feat: 경매 지속시간 제약 실패 케이스 구현 - 경매 지속시간이 10, 20, 30, 40, 50, 60이 아닌 경우 예외가 발생한다. * feat: 경매 생성 기능 구현 - 경매가 성공적으로 생성되면 경매를 저장시킨다. * refactor: Auction 생성 관련 오류 코드를 변경한다. - A000: 경매 생성시 필수 값을 모두 입력해야합니다. - A007: 경매 재고는 인당 구매 수량보다 작을 수 없습니다. --------- Co-authored-by: HiiWee <[email protected]>
…ion-two # Conflicts: # src/main/java/com/wootecam/luckyvickyauction/core/auction/domain/Auction.java # src/main/java/com/wootecam/luckyvickyauction/core/auction/dto/CreateAuctionCommand.java # src/main/java/com/wootecam/luckyvickyauction/core/auction/service/AuctionService.java # src/main/java/com/wootecam/luckyvickyauction/global/exception/ErrorCode.java # src/test/java/com/wootecam/luckyvickyauction/core/auction/dto/CreateAuctionCommandTest.java # src/test/java/com/wootecam/luckyvickyauction/core/auction/service/AuctionServiceTest.java
## 구현 제약 - 경매 거래는 0번만 가능하다. - 경매 시작 계획은 0보다 커야한다. - 변동 시간 단위는 0보다 커야한다. - 경매의 시작시간은 종료 시간보다 이전이어야한다. - 상품 이름은 비어있을 수 없다. - 상품 평가는 0보다 커야한다. - 경매 유형은 필수값이다. - 변동 추가(variationDuration)는 필수값이다. - 시작 시간(startedAt)은 필수값이다. - 종료 시간(finishedAt)은 필수값이다. - 요청시간은 필수값이다.
- WAITING: 경매 진행전 - RUNNING: 경매 진행중 - FINISHED: 경매 종료
- AuctionService#chagneOption을 통해서 경매의 상태를 변경할 시 시작 중인 경매는 수정할 수 없도록 제약 구현 - AuctionServiceTest 테스트 추가 - Auction 테스트에서 중복되는 테스트 제거 - A011: 경매ID를 기준으로 경매를 찾으려고 했지만 찾을 수 없습니다. - A012: 이미 시작된 경매를 변경하려고 할 때, 예외가 발생합니다.
…uction-update # Conflicts: # src/main/java/com/wootecam/luckyvickyauction/core/auction/domain/Auction.java # src/main/java/com/wootecam/luckyvickyauction/core/auction/dto/CreateAuctionCommand.java # src/main/java/com/wootecam/luckyvickyauction/core/auction/infra/AuctionRepository.java # src/main/java/com/wootecam/luckyvickyauction/core/auction/service/AuctionService.java # src/main/java/com/wootecam/luckyvickyauction/global/exception/ErrorCode.java # src/test/java/com/wootecam/luckyvickyauction/core/auction/domain/AuctionTest.java # src/test/java/com/wootecam/luckyvickyauction/core/auction/service/AuctionServiceTest.java
왜 이미 Dev에 존재하는 Commit들인데 중복으로 나타나는 걸까용? FileChanged는 정상적으로 나오는 것 같은데 🥲 |
요거 머지해도 괜찮은건가..? |
update branch 하고 머지하면 문제 없을 것 같은데? |
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.
고생하셨습니다~~ 🤓
if (auction.getStatus() != AuctionStatus.WAITING) { | ||
throw new BadRequestException( | ||
"시작 전인 경매만 변경할 수 있습니다. 변경요청시간: " + command.requestTime() + ", 경매시작시간: " + auction.getStartedAt(), | ||
ErrorCode.A012); | ||
} |
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.
의견: 요런거 나중에 로깅으로 남겨줘도 아주아주 좋을것같아요! ㅎㅎ
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.
#40 로깅 이슈에 todo 목록으로 등록할께요
📄 Summary
경매 정보 변경시 제약을 구현합니다.
구현 제약
변경 사항
🙋🏻 More
close #30