Skip to content

Commit

Permalink
[refactor] Review 테이블명 Record로 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
syyling committed Apr 4, 2024
1 parent a10bbcb commit 13ecd0c
Show file tree
Hide file tree
Showing 22 changed files with 227 additions and 226 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.mookive.mookive_backend.keyword.application.mapper;

import com.mookive.mookive_backend.keyword.domain.entity.Keyword;
import com.mookive.mookive_backend.review.domain.entity.Review;
import com.mookive.mookive_backend.record.domain.entity.Record;

public class KeywordMapper {

public static Keyword mapToKeyword(Review review, String word, Long movieId) {
public static Keyword mapToKeyword(Record record, String word, Long movieId) {
return Keyword.builder()
.review(review)
.record(record)
.word(word)
.movieId(movieId)
.build();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mookive.mookive_backend.keyword.domain.entity;

import com.mookive.mookive_backend.review.domain.entity.Review;
import com.mookive.mookive_backend.record.domain.entity.Record;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
Expand All @@ -16,15 +16,15 @@ public class Keyword {
private Long id;

@ManyToOne
@JoinColumn(name = "review_id")
private Review review;
@JoinColumn(name = "record")
private Record record;

private String word;
private Long movieId;

@Builder
public Keyword(Review review, String word, Long movieId) {
this.review = review;
public Keyword(Record record, String word, Long movieId) {
this.record = record;
this.word = word;
this.movieId = movieId;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

public interface KeywordRepository extends JpaRepository<Keyword, Long> {

List<Keyword> findByReviewId(Long reviewId);
List<Keyword> findByRecordId(Long recordId);

void deleteAllByReviewId(Long reviewId);
void deleteAllByRecordId(Long recordId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class KeywordDeleteService {

private final KeywordRepository keywordRepository;

public void deleteAllByReviewId(Long reviewId) {
keywordRepository.deleteAllByReviewId(reviewId);
public void deleteAllByRecordId(Long recordId) {
keywordRepository.deleteAllByRecordId(recordId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class KeywordQueryService {

private final KeywordRepository keywordRepository;

public List<Keyword> findByReviewId(Long reviewId) {
return keywordRepository.findByReviewId(reviewId);
public List<Keyword> findByRecordId(Long recordId) {
return keywordRepository.findByRecordId(recordId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import com.mookive.mookive_backend.movieInPlaylist.domain.service.MovieInPlaylistQueryService;
import com.mookive.mookive_backend.playlist.domain.entity.Playlist;
import com.mookive.mookive_backend.playlist.domain.service.PlaylistQueryService;
import com.mookive.mookive_backend.review.domain.entity.Review;
import com.mookive.mookive_backend.review.domain.service.ReviewQueryService;
import com.mookive.mookive_backend.record.domain.entity.Record;
import com.mookive.mookive_backend.record.domain.service.RecordQueryService;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -23,7 +23,7 @@ public class MovieInPlayListGetService {

private final MovieInPlaylistQueryService movieInPlaylistQueryService;
private final PlaylistQueryService playlistQueryService;
private final ReviewQueryService reviewQueryService;
private final RecordQueryService recordQueryService;

public List<MovieInPlaylistResponse.MovieInPlaylistDefaultResponse> getMovieInPlayList(Long playlistId) {
Playlist playlist = playlistQueryService.findById(playlistId);
Expand All @@ -33,10 +33,10 @@ public List<MovieInPlaylistResponse.MovieInPlaylistDefaultResponse> getMovieInPl
List<MovieInPlaylistResponse.MovieInPlaylistDefaultResponse> movieInPlaylistDefaultResponseList = movieInPlaylistList.stream().map(movieInPlaylist ->
{
Long movieId = movieInPlaylist.getMovie().getId();
Optional<Review> review = reviewQueryService.findByUserIdAndMovieId(userId, movieId);
Optional<Record> record = recordQueryService.findByUserIdAndMovieId(userId, movieId);
String rating = null;
if(review.isPresent()) {
rating = review.get().getRating();
if(record.isPresent()) {
rating = record.get().getRating();
}
return MovieInPlaylistMapper.mapToMovieInPlaylistDefaultResponse(movieInPlaylist, rating);
}).collect(Collectors.toList());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mookive.mookive_backend.review.application.dto.request;
package com.mookive.mookive_backend.record.application.dto.request;

import lombok.Builder;
import lombok.Getter;
Expand All @@ -7,11 +7,11 @@
import java.time.LocalDate;
import java.util.ArrayList;

public class ReviewRequest {
public class RecordRequest {

@Getter
@NoArgsConstructor
public static class ReviewCreateRequest {
public static class RecordCreateRequest {
private Long movieId;
private Long userId;
private String rating;
Expand All @@ -21,7 +21,7 @@ public static class ReviewCreateRequest {


@Builder
public ReviewCreateRequest(Long movieId, Long userId, String rating,
public RecordCreateRequest(Long movieId, Long userId, String rating,
String text, LocalDate date, ArrayList<String> keywords) {
this.movieId = movieId;
this.userId = userId;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mookive.mookive_backend.review.application.dto.response;
package com.mookive.mookive_backend.record.application.dto.response;

import lombok.Builder;
import lombok.Getter;
Expand All @@ -7,18 +7,18 @@
import java.time.LocalDate;
import java.util.List;

public class ReviewResponse {
public class RecordResponse {

@Getter
@NoArgsConstructor
public static class ReviewDetailResponse {
public static class RecordDetailResponse{
private String rating;
private String text;
private LocalDate date;
private List<String> keywords;

@Builder
public ReviewDetailResponse(String rating, String text, LocalDate date, List<String> keywords) {
public RecordDetailResponse(String rating, String text, LocalDate date, List<String> keywords) {
this.rating = rating;
this.text = text;
this.date = date;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.mookive.mookive_backend.record.application.mapper;

import com.mookive.mookive_backend.movie.domain.entity.Movie;
import com.mookive.mookive_backend.record.application.dto.request.RecordRequest;
import com.mookive.mookive_backend.record.application.dto.response.RecordResponse;
import com.mookive.mookive_backend.record.domain.entity.Record;
import com.mookive.mookive_backend.user.domain.entity.User;

import java.util.List;

public class RecordMapper {

public static Record mapToRecord(RecordRequest.RecordCreateRequest recordCreateRequest, Movie movie, User user) {
return Record.builder()
.movie(movie)
.user(user)
.rating(recordCreateRequest.getRating())
.text(recordCreateRequest.getText())
.date(recordCreateRequest.getDate())
.build();
}

public static RecordResponse.RecordDetailResponse mapToRecordDetailResponse(Record record, List<String> keywords) {
return RecordResponse.RecordDetailResponse.builder()
.rating(record.getRating())
.text(record.getText())
.date(record.getDate())
.keywords(keywords)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package com.mookive.mookive_backend.record.application.service;


import com.mookive.mookive_backend.keyword.application.mapper.KeywordMapper;
import com.mookive.mookive_backend.keyword.domain.entity.Keyword;
import com.mookive.mookive_backend.keyword.domain.service.KeywordDeleteService;
import com.mookive.mookive_backend.keyword.domain.service.KeywordSaveService;
import com.mookive.mookive_backend.movie.domain.entity.Movie;
import com.mookive.mookive_backend.movie.domain.service.MovieQueryService;
import com.mookive.mookive_backend.record.application.dto.request.RecordRequest;
import com.mookive.mookive_backend.record.application.mapper.RecordMapper;
import com.mookive.mookive_backend.record.domain.entity.Record;
import com.mookive.mookive_backend.record.domain.entity.Record;
import com.mookive.mookive_backend.record.domain.service.RecordQueryService;
import com.mookive.mookive_backend.record.domain.service.RecordQueryService;
import com.mookive.mookive_backend.record.domain.service.RecordSaveService;
import com.mookive.mookive_backend.user.domain.entity.User;
import com.mookive.mookive_backend.user.domain.service.UserQueryService;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Optional;

@Service
@RequiredArgsConstructor
@Transactional
public class RecordCreateService {

private final MovieQueryService movieQueryService;
private final UserQueryService userQueryService;
private final RecordSaveService recordSaveService;
private final KeywordSaveService keywordSaveService;
private final KeywordDeleteService keywordDeleteService;
private final RecordQueryService recordQueryService;

public void createRecord(RecordRequest.RecordCreateRequest recordCreateRequest) {
Long movieId = recordCreateRequest.getMovieId();
Long userId = recordCreateRequest.getUserId();
Optional<Record> optionalRecord = recordQueryService.findByUserIdAndMovieId(userId, movieId);
if(optionalRecord.isPresent()){
Record record = optionalRecord.get();
LocalDate date = recordCreateRequest.getDate();
String rating = recordCreateRequest.getRating();
String text = recordCreateRequest.getText();
ArrayList<String> keywords = recordCreateRequest.getKeywords();
record.updateRecord(rating, text, date);
keywordDeleteService.deleteAllByRecordId(record.getId());
saveKeywords(keywords, record, movieId);
}
else {
Movie movie = movieQueryService.findById(movieId);
User user = userQueryService.findById(userId);
Record record = RecordMapper.mapToRecord(recordCreateRequest, movie, user);
recordSaveService.saveRecord(record);
ArrayList<String> keywords = recordCreateRequest.getKeywords();
saveKeywords(keywords, record, movieId);
}
}

private void saveKeywords(ArrayList<String> keywords, Record record, Long movieId) {
for(String word : keywords){
Keyword keyword = KeywordMapper.mapToKeyword(record, word, movieId);
keywordSaveService.saveKeyword(keyword);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.mookive.mookive_backend.review.application.service;
package com.mookive.mookive_backend.record.application.service;

import com.mookive.mookive_backend.keyword.domain.entity.Keyword;
import com.mookive.mookive_backend.keyword.domain.service.KeywordQueryService;
import com.mookive.mookive_backend.review.application.dto.response.ReviewResponse;
import com.mookive.mookive_backend.review.application.mapper.ReviewMapper;
import com.mookive.mookive_backend.review.domain.entity.Review;
import com.mookive.mookive_backend.review.domain.service.ReviewQueryService;
import com.mookive.mookive_backend.record.application.dto.response.RecordResponse;
import com.mookive.mookive_backend.record.application.mapper.RecordMapper;
import com.mookive.mookive_backend.record.domain.entity.Record;
import com.mookive.mookive_backend.record.domain.service.RecordQueryService;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -16,18 +16,18 @@
@Service
@RequiredArgsConstructor
@Transactional
public class ReviewGetService {
public class RecordGetService {

private final ReviewQueryService reviewQueryService;
private final RecordQueryService recordQueryService;
private final KeywordQueryService keywordQueryService;

public ReviewResponse.ReviewDetailResponse getReview(Long reviewId) {
Review review = reviewQueryService.findById(reviewId);
List<Keyword> keywordList = keywordQueryService.findByReviewId(reviewId);
public RecordResponse.RecordDetailResponse getRecord(Long recordId) {
Record record = recordQueryService.findById(recordId);
List<Keyword> keywordList = keywordQueryService.findByRecordId(recordId);
List<String> keywords= new ArrayList<>();
for(Keyword keyword : keywordList){
keywords.add(keyword.getWord());
}
return ReviewMapper.mapToReviewDetailResponse(review, keywords);
return RecordMapper.mapToRecordDetailResponse(record, keywords);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mookive.mookive_backend.review.domain.entity;
package com.mookive.mookive_backend.record.domain.entity;


import com.mookive.mookive_backend.movie.domain.entity.Movie;
Expand All @@ -14,7 +14,7 @@
@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Review {
public class Record {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
Expand All @@ -32,15 +32,15 @@ public class Review {
private Movie movie;

@Builder
public Review(String rating, String text, LocalDate date, User user, Movie movie) {
public Record(String rating, String text, LocalDate date, User user, Movie movie) {
this.rating = rating;
this.text = text;
this.date = date;
this.user = user;
this.movie = movie;
}

public void updateReview(String rating, String text, LocalDate date) {
public void updateRecord(String rating, String text, LocalDate date) {
this.rating = rating;
this.text = text;
this.date = date;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.mookive.mookive_backend.record.domain.repository;

import com.mookive.mookive_backend.record.domain.entity.Record;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

public interface RecordRepository extends JpaRepository<Record, Long> {

Optional<Record> findByUserIdAndMovieId(Long userId, Long movieId);;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.mookive.mookive_backend.record.domain.service;

import com.mookive.mookive_backend.record.domain.entity.Record;
import com.mookive.mookive_backend.record.domain.repository.RecordRepository;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.Optional;

@Service
@RequiredArgsConstructor
@Transactional
public class RecordQueryService {

private final RecordRepository recordRepository;

public Record findById(Long recordId) {
return recordRepository.findById(recordId)
.orElseThrow(() -> new IllegalArgumentException("Record not found"));
}

public Optional<Record> findByUserIdAndMovieId(Long userId, Long movieId) {
return recordRepository.findByUserIdAndMovieId(userId, movieId);
}

}
Loading

0 comments on commit 13ecd0c

Please sign in to comment.