55import com .back .web7_9_codecrete_be .domain .concerts .entity .*;
66import com .back .web7_9_codecrete_be .domain .concerts .repository .*;
77import com .back .web7_9_codecrete_be .domain .users .entity .User ;
8- import com .back .web7_9_codecrete_be .domain .users .repository .UserRepository ;
9- import com .back .web7_9_codecrete_be .global .error .code .AuthErrorCode ;
108import com .back .web7_9_codecrete_be .global .error .code .ConcertErrorCode ;
11- import com .back .web7_9_codecrete_be .global .error .code .ErrorCode ;
129import com .back .web7_9_codecrete_be .global .error .exception .BusinessException ;
1310import lombok .RequiredArgsConstructor ;
1411import org .springframework .data .domain .Pageable ;
15- import org .springframework .security .core .parameters .P ;
1612import org .springframework .stereotype .Service ;
13+ import org .springframework .transaction .annotation .Transactional ;
1714
1815import java .time .LocalDate ;
1916import java .util .ArrayList ;
@@ -57,14 +54,17 @@ public List<ConcertItem> getConcertListByKeyword(String keyword, Pageable pageab
5754 return concertRepository .getConcertItemsByKeyword (keyword , pageable );
5855 }
5956
57+ @ Transactional
6058 public ConcertDetailResponse getConcertDetail (long concertId ) {
6159 ConcertDetailResponse concertDetailResponse = concertRepository .getConcertDetailById (concertId );
6260 List <ConcertImage > concertImages = concertImageRepository .getConcertImagesByConcert_ConcertId (concertId );
6361 List <String > concertImageUrls = new ArrayList <>();
6462 for (ConcertImage concertImage : concertImages ){
6563 concertImageUrls .add (concertImage .getImageUrl ());
6664 }
65+ concertRepository .concertViewCountUp (concertId );
6766 concertDetailResponse .setConcertImageUrls (concertImageUrls );
67+ concertDetailResponse .setViewCount (concertDetailResponse .getViewCount () + 1 );
6868 return concertDetailResponse ;
6969 }
7070
@@ -103,22 +103,26 @@ public ConcertLikeResponse isLikeConcert(Long concertId, User user) {
103103 return concertLikeResponse ;
104104 }
105105
106+ @ Transactional
106107 public void likeConcert (long concertId , User user ) {
107108 Concert concert = concertRepository .findById (concertId ).orElseThrow ();
108109 if (concertLikeRepository .existsConcertLikeByConcertAndUser (concert ,user )){
109110 throw new BusinessException (ConcertErrorCode .LIKE_CONFLICT );
110111 }
111112 ConcertLike concertLike = new ConcertLike (concert , user );
112113 concertLikeRepository .save (concertLike );
114+ concertRepository .concertLikeCountUp (concertId );
113115 }
114116
117+ @ Transactional
115118 public void dislikeConcert (long concertId , User user ) {
116119 Concert concert = concertRepository .findById (concertId ).orElseThrow ();
117120 ConcertLike concertLike = concertLikeRepository .findConcertLikeByConcertAndUser (concert , user );
118121 if (concertLike == null ){
119122 throw new BusinessException (ConcertErrorCode .NOT_FOUND_CONCERTLIKE );
120123 }
121124 concertLikeRepository .delete (concertLike );
125+ concertRepository .concertLikeCountDown (concertId );
122126 }
123127
124128 public ConcertItem updateConcert (long concertId , ConcertUpdateRequest concertUpdateRequest ) {
@@ -141,5 +145,4 @@ public void deleteConcert(long concertId) {
141145 concertRepository .deleteById (concertId );
142146 }
143147
144-
145148}
0 commit comments