1
1
package com .jupiter .wyl .domain .movie .movie .service ;
2
2
3
+ import com .jupiter .wyl .domain .member .service .MemberService ;
3
4
import com .jupiter .wyl .domain .movie .movie .dto .response .MovieDto ;
4
5
import com .jupiter .wyl .domain .movie .movie .dto .response .MovieReviewDto ;
5
6
import com .jupiter .wyl .domain .movie .movie .entity .Movie ;
@@ -24,6 +25,7 @@ public class MovieReviewService {
24
25
@ Autowired
25
26
private final MovieReviewRepository movieReviewRepository ;
26
27
private final MovieRepository movieRepository ;
28
+ private final MemberService memberService ;
27
29
28
30
public void saveReview (Long userId , String reviewContent , int rating , Long movieId ) {
29
31
Movie movie = movieRepository .findById (movieId )
@@ -39,29 +41,40 @@ public void saveReview(Long userId, String reviewContent, int rating, Long movie
39
41
movieReviewRepository .save (movieReview );
40
42
}
41
43
44
+ // public List<MovieReviewDto> findAllByMovieId(Long movieId) {
45
+ // List<MovieReview> movieReviews = movieReviewRepository.findAllByMovieId(movieId);
46
+ //
47
+ // if (movieReviews.isEmpty()) {
48
+ // throw new RuntimeException("해당 영화에 대한 리뷰가 없습니다: " + movieId);
49
+ // }
50
+ //
51
+ // return movieReviews.stream()
52
+ // .map(review -> MovieReviewDto.builder()
53
+ // .id(review.getId())
54
+ // .reviewContent(review.getReviewContent())
55
+ // .rating(review.getRating())
56
+ // .movie(review.getMovie().getId())
57
+ // .userId(review.getUserId())
58
+ // .build())
59
+ // .collect(Collectors.toList());
60
+ // }
61
+
42
62
public List <MovieReviewDto > findAllByMovieId (Long movieId ) {
43
63
List <MovieReview > movieReviews = movieReviewRepository .findAllByMovieId (movieId );
44
64
45
- if (movieReviews .isEmpty ()) {
46
- throw new RuntimeException ("해당 영화에 대한 리뷰가 없습니다: " + movieId );
47
- }
48
-
49
- return movieReviews .stream ()
50
- .map (review -> MovieReviewDto .builder ()
51
- .id (review .getId ())
52
- .reviewContent (review .getReviewContent ())
53
- .rating (review .getRating ())
54
- .movie (review .getMovie ().getId ())
55
- .userId (review .getUserId ())
56
- .build ())
57
- .collect (Collectors .toList ());
65
+ return movieReviews .stream ().map (review -> {
66
+ String userName = memberService .getUserNameById (review .getUserId ()); // ✅ userId로 userName 조회
67
+ return MovieReviewDto .fromEntity (review , userName ); // ✅ DTO에 userName 추가
68
+ }).collect (Collectors .toList ());
58
69
}
59
70
60
71
public MovieReviewDto getReviewByUserAndMovie (Long userId , Long movieId ) {
61
72
MovieReview movieReview = movieReviewRepository .findByUserIdAndMovieId (userId , movieId )
62
73
.orElseThrow (() -> new EntityNotFoundException ("해당 리뷰를 찾을 수 없습니다." ));
63
74
64
- return MovieReviewDto .fromEntity (movieReview ); // ✅ DTO로 변환하여 반환
75
+ String userName = memberService .getUserNameById (userId );
76
+
77
+ return MovieReviewDto .fromEntity (movieReview , userName ); // ✅ DTO로 변환하여 반환
65
78
}
66
79
67
80
public void updateReview (Long reviewId , String newContent , int newRating ) {
0 commit comments