Closed yurim0628 closed 11 months ago
public enum ReviewStatus { NOT_WRITABLE, WRITABLE, WRITTEN, DELETED }
ReviewStatus 열거형은 다음과 같이 네 가지 상태를 표현할 수 있다. NOT_WRITABLE: 체크아웃 전이라 리뷰 작성이 불가능한 상태를 나타낸다. WRITABLE: 체크아웃 이후라 리뷰 작성이 가능한 상태를 나타낸다. WRITTEN: 리뷰가 작성된 상태를 나타낸다. 수정이 가능한 상태이다. DELETED: 리뷰가 삭제된 상태를 나타낸다. 더이상 재작성은 불가능한 상태이다. 주문 상세 조회에서는 이러한 리뷰 상태를 이용하여 각 주문 상품의 리뷰 작성 여부를 확인할 수 있다.
orderHistory.getOrderItemList().add( OrderItem.builder() .orders(orderHistory) .personNumber(oir.getPersonNumber()) .price(price) .startDate(oir.getCheckIn()) .endDate(oir.getCheckOut()) .product(getProduct(oir.getProductId())) .reviewStatus(ReviewStatus.NOT_WRITABLE) .build() );
LocalDate currentDate = LocalDate.now(); ReviewStatus reviewStatus = (currentDate.isAfter(orderItem.getEndDate()) && orderItem.getReviewStatus() == ReviewStatus.NOT_WRITABLE) ? ReviewStatus.WRITABLE : orderItem.getReviewStatus();
{ "orderId": 15, "orderItemList": [ { "orderItemId": 21, "checkIn": "2023-12-26", "checkOut": "2023-12-28", "personNumber": 2, "price": 100000, "orderItemDetail": { "accommodationName": "세심천온천호텔", "accommodationAddress": "충청남도 예산군 삽교읍 수암산로 210", "productImage": "http://tong.visitkorea.or.kr/cms/resource/61/3039161_image2_1.JPG", "productName": "일반실(한실)" }, "reviewStatus": "WRITABLE" } ] }
1. ReviewStatus 상태 코드 추가
2. 주문 내역 생성 시 reviewStatus 값을 NOT_WRITABLE로 설정
3. 이후 주문 상품 정보 상세 조회 시 현재 날짜가 체크아웃 날짜 이후이며, 리뷰 작성 상태가 NOT_WRITABLE 일 때 리뷰 작성 가능 상태인 WRITABLE로 변경
4. reviewStatus 값이 WRITABLE 일 때만 리뷰 작성이 가능하도록 활성화