|
1 | 1 | package org.meme.service.domain.service;
|
2 | 2 |
|
3 |
| -import jakarta.transaction.Transactional; |
4 | 3 | import lombok.RequiredArgsConstructor;
|
5 | 4 | import org.meme.service.common.exception.GeneralException;
|
6 | 5 | import org.meme.service.domain.entity.*;
|
|
16 | 15 | import org.springframework.data.domain.Pageable;
|
17 | 16 | import org.springframework.stereotype.Service;
|
18 | 17 | import org.meme.service.common.status.ErrorStatus;
|
| 18 | +import org.springframework.transaction.annotation.Transactional; |
19 | 19 |
|
20 | 20 | import java.util.ArrayList;
|
21 | 21 | import java.util.List;
|
| 22 | +import java.util.Objects; |
22 | 23 | import java.util.Optional;
|
23 | 24 |
|
24 | 25 | @Service
|
25 | 26 | @RequiredArgsConstructor
|
| 27 | +@Transactional(readOnly = true) |
26 | 28 | public class ReviewService {
|
27 | 29 | private final ModelRepository modelRepository;
|
28 | 30 | private final ReviewRepository reviewRepository;
|
@@ -110,15 +112,15 @@ public ReviewResponse.ReviewDetailsDto updateReview(ReviewRequest.UpdateReviewDt
|
110 | 112 | Model model = findModelById(updateReviewDto.getModelId());
|
111 | 113 | Review review = findReviewById(updateReviewDto.getReviewId());
|
112 | 114 |
|
113 |
| - if (!review.getModel().equals(model)) |
| 115 | + if (!review.getModel().getUserId().equals(model.getUserId())) |
114 | 116 | throw new GeneralException(ErrorStatus.INVALID_MODEL_FOR_REVIEW);
|
115 | 117 |
|
116 | 118 | // 리뷰 이미지 수정
|
117 | 119 | if (!updateReviewDto.getReviewImgSrcList().isEmpty())
|
118 | 120 | updateReviewImgList(review, updateReviewDto.getReviewImgSrcList());
|
119 | 121 |
|
120 | 122 | // 리뷰 수정
|
121 |
| - updateReviewEntity(review, updateReviewDto); |
| 123 | + updateReview(review, updateReviewDto); |
122 | 124 | return ReviewConverter.toReviewDetailDto(review);
|
123 | 125 | }
|
124 | 126 |
|
@@ -160,18 +162,17 @@ public void updateReviewImgList(Review review, List<String> reviewImgSrcList){
|
160 | 162 | public void deleteReview(ReviewRequest.DeleteReviewDto reviewDto){
|
161 | 163 | Model model = findModelById(reviewDto.getModelId());
|
162 | 164 | Review review = findReviewById(reviewDto.getReviewId());
|
163 |
| - if(!review.getModel().equals(model)) |
| 165 | + |
| 166 | + if(!Objects.equals(review.getModel().getUserId(), model.getUserId())) |
164 | 167 | throw new GeneralException(ErrorStatus.INVALID_MODEL_FOR_REVIEW);
|
165 | 168 |
|
166 | 169 | reviewRepository.delete(review);
|
167 | 170 | }
|
168 | 171 |
|
169 | 172 | private void validateReservationStatus(Reservation reservation) {
|
170 |
| - // 이미 리뷰 작성 완료 |
171 | 173 | if (reservation.isReviewed())
|
172 | 174 | throw new GeneralException(ErrorStatus.ALREADY_REVIEWED);
|
173 | 175 |
|
174 |
| - // 예약 미완료 |
175 | 176 | if (!reservation.isCompleted())
|
176 | 177 | throw new GeneralException(ErrorStatus.INVALID_REVIEW_REQUEST);
|
177 | 178 | }
|
@@ -207,7 +208,7 @@ private Page<Review> getPage(int page, List<Review> list){
|
207 | 208 | pageable, list.size());
|
208 | 209 | }
|
209 | 210 |
|
210 |
| - private void updateReviewEntity(Review review, ReviewRequest.UpdateReviewDto updateReviewDto){ |
| 211 | + private void updateReview(Review review, ReviewRequest.UpdateReviewDto updateReviewDto){ |
211 | 212 | if(updateReviewDto.getStar() > 0)
|
212 | 213 | review.setStar(updateReviewDto.getStar());
|
213 | 214 | if(updateReviewDto.getComment() != null)
|
|
0 commit comments