Skip to content

Commit

Permalink
fix: merge 컨플릭트 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
humpose committed Nov 11, 2024
2 parents 42257bb + d2d97da commit 491241b
Show file tree
Hide file tree
Showing 19 changed files with 508 additions and 165 deletions.
17 changes: 7 additions & 10 deletions src/main/java/jeje/work/aeatbe/controller/ReviewController.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import java.util.List;
import jeje.work.aeatbe.annotation.LoginUser;
import jeje.work.aeatbe.dto.review.ReviewDTO;
import jeje.work.aeatbe.dto.review.ReviewRequestDTO;
import jeje.work.aeatbe.dto.review.ReviewResponseDTO;
import jeje.work.aeatbe.dto.user.LoginUserInfo;
import jeje.work.aeatbe.service.ReviewService;
import org.springframework.http.HttpStatus;
Expand Down Expand Up @@ -39,10 +41,10 @@ public ReviewController(ReviewService reviewService) {
*
*/
@GetMapping
public ResponseEntity<List<ReviewDTO>> getReviews(
public ResponseEntity<List<ReviewResponseDTO>> getReviews(
@RequestParam(required = true) Long productId) {

List<ReviewDTO> reviews = reviewService.getReviews(productId);
List<ReviewResponseDTO> reviews = reviewService.getReviews(productId);
return ResponseEntity.ok(reviews);
}

Expand All @@ -52,12 +54,10 @@ public ResponseEntity<List<ReviewDTO>> getReviews(
*
* @param loginUserInfo userId
* @return 특정 유저에 관한 리뷰 리스트
*
* @todo: kakaoId -> userId로 수정 필요
*/
@GetMapping("/my")
public ResponseEntity<?> getReivewsByUser(@LoginUser LoginUserInfo loginUserInfo) {
List<ReviewDTO> review = reviewService.getReviewsByUser(loginUserInfo.userId());
List<ReviewResponseDTO> review = reviewService.getReviewsByUser(loginUserInfo.userId());

return ResponseEntity.ok(review);
}
Expand All @@ -69,10 +69,9 @@ public ResponseEntity<?> getReivewsByUser(@LoginUser LoginUserInfo loginUserInfo
* @param reviewDTO 리뷰 DTO
* @param loginUserInfo the user id
* @return 201 created 응답 코드
* @todo: kakaoId -> userId로 수정 필요
*/
@PostMapping
public ResponseEntity<?> postReviews(@RequestBody ReviewDTO reviewDTO,
public ResponseEntity<?> postReviews(@RequestBody ReviewRequestDTO reviewDTO,
@LoginUser LoginUserInfo loginUserInfo) {
reviewService.createReview(reviewDTO, loginUserInfo.userId());
return ResponseEntity.status(HttpStatus.CREATED).build();
Expand All @@ -86,11 +85,10 @@ public ResponseEntity<?> postReviews(@RequestBody ReviewDTO reviewDTO,
* @param reviewDTO 리뷰 DTO
* @param loginUserInfo the user id
* @return 200 ok 응답 코드
* @todo: kakaoId -> userId로 수정 필요
*/
@PatchMapping("/{id}")
public ResponseEntity<?> updateReviews(@PathVariable Long id,
@RequestBody ReviewDTO reviewDTO,
@RequestBody ReviewRequestDTO reviewDTO,
@LoginUser LoginUserInfo loginUserInfo) {
reviewService.updateReviews(id, reviewDTO, loginUserInfo.userId());
return ResponseEntity.ok().build();
Expand All @@ -102,7 +100,6 @@ public ResponseEntity<?> updateReviews(@PathVariable Long id,
* @param id 리뷰 id
* @param loginUserInfo the user id
* @return 204 응답 코드 반환
* @todo: kakaoId -> userId로 수정 필요
*/
@DeleteMapping("/{id}")
public ResponseEntity<?> deleteReviews(@PathVariable Long id,
Expand Down
16 changes: 8 additions & 8 deletions src/main/java/jeje/work/aeatbe/dto/review/ReviewDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
import lombok.Builder;

@Builder
public record ReviewDTO(Long id,
int rate,
String content,
UserDTO user,
Long productId,

@Nullable
String productImgUrl) {
public record ReviewDTO(
Long id,
Long rate,
String content,
Long userId,
Long productId,

@Nullable
String productImgUrl) {
}
11 changes: 11 additions & 0 deletions src/main/java/jeje/work/aeatbe/dto/review/ReviewRequestDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package jeje.work.aeatbe.dto.review;

import lombok.Builder;

@Builder
public record ReviewRequestDTO(
Long rate,
String content,
Long productId
) {
}
15 changes: 15 additions & 0 deletions src/main/java/jeje/work/aeatbe/dto/review/ReviewResponseDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package jeje.work.aeatbe.dto.review;

import jeje.work.aeatbe.dto.user.UserInfoResponseDTO;
import lombok.Builder;

@Builder
public record ReviewResponseDTO(
Long id,
Long rate,
String content,
UserInfoResponseDTO user,
Long productId,
String productImgUrl
) {
}
12 changes: 9 additions & 3 deletions src/main/java/jeje/work/aeatbe/entity/Product.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ public class Product extends BaseEntity{
@Lob
private String nutritionalInfo;

@Column(name = "product_image_url", length = 255)
@Column(name = "product_image_url", columnDefinition = "TEXT")
private String productImageUrl;

@Column(name = "meta_image_url", length = 255)
@Column(name = "meta_image_url", columnDefinition = "TEXT")
private String metaImageUrl;

@Column(name = "type_name", length = 200)
Expand All @@ -50,8 +50,9 @@ public class Product extends BaseEntity{
@Lob
private String ingredients;

@Builder.Default
@Column(nullable = false, columnDefinition = "BIGINT DEFAULT 99990000")
private Long price;
private Long price = 99990000L;

@Column(name = "promotion_tag")
private String tag;
Expand All @@ -67,4 +68,9 @@ public class Product extends BaseEntity{
@Builder.Default
@OneToMany(mappedBy = "product", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Review> reviews = new ArrayList<>();

@PrePersist
private void prePersist() {
this.price = 99990000L;
}
}
27 changes: 12 additions & 15 deletions src/main/java/jeje/work/aeatbe/entity/Review.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,11 @@
package jeje.work.aeatbe.entity;

import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import jakarta.persistence.*;
import lombok.*;

@Entity
@Getter
@Builder
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Table(
Expand All @@ -31,7 +20,9 @@ public class Review extends BaseEntity{
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private int rate;
@Builder.Default
@Column(columnDefinition = "BIGINT DEFAULT 0", nullable = false)
private Long rate = 0L;

@Lob
private String content;
Expand All @@ -44,4 +35,10 @@ public class Review extends BaseEntity{
@JoinColumn(name = "product_id", nullable = false)
private Product product;

@PrePersist
private void prePersist() {
if (this.rate == null) {
this.rate = 0L;
}
}
}
19 changes: 15 additions & 4 deletions src/main/java/jeje/work/aeatbe/entity/User.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
package jeje.work.aeatbe.entity;

import jakarta.persistence.*;
import java.util.List;
import lombok.*;
import org.springframework.context.annotation.Profile;

import java.util.List;

@Entity
@Table(name = "users")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class User extends BaseEntity{
@EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = false)
public class User extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@EqualsAndHashCode.Include
private Long id;

@Column(name = "kakao_id", nullable = false, unique = true)
Expand Down Expand Up @@ -73,7 +77,6 @@ public void addAllergy(AllergyCategory allergyCategory) {
this.allergies.add(userAllergy);
}


public void addFreeFrom(FreeFromCategory freeFromCategory) {
UserFreeFrom userFreeFrom = UserFreeFrom.builder()
.user(this)
Expand All @@ -82,5 +85,13 @@ public void addFreeFrom(FreeFromCategory freeFromCategory) {
this.freeFroms.add(userFreeFrom);
}


/**
* 테스트용 메소드
* @param id id를 설정할 값
*/
@Profile("test")
@Deprecated(forRemoval = true)
public void setId(Long id) {
this.id = id;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,8 @@
@RestControllerAdvice
public class GlobalExceptionHandler {

@ExceptionHandler(UserNotFoundException.class)
public ResponseEntity userNotFoundException(UserNotFoundException e){
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
}

@ExceptionHandler(ColumnNotFoundException.class)
public ResponseEntity columnNotFoundException(ColumnNotFoundException e){
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
}

@ExceptionHandler(ArticleLikeNotFoundException.class)
public ResponseEntity articleLikeNotFoundException(ArticleLikeNotFoundException e){
@ExceptionHandler(NotFoundException.class)
public ResponseEntity NotFoundException(NotFoundException e){
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
}

Expand All @@ -33,16 +23,8 @@ public ResponseEntity illegalStateException(IllegalStateException e) {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(e.getMessage());
}

@ExceptionHandler(WishlistNotFoundException.class)
public ResponseEntity wishlistNotFoundException(WishlistNotFoundException e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
}

@ExceptionHandler(TokenExpException.class)
public ResponseEntity tokenExpException(TokenExpException e) {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(e.getMessage());
}



}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package jeje.work.aeatbe.exception;

public class ReviewNotFoundException extends RuntimeException {
public ReviewNotFoundException(String message) {
super(message);
}
}
35 changes: 35 additions & 0 deletions src/main/java/jeje/work/aeatbe/mapper/Review/ReviewMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package jeje.work.aeatbe.mapper.Review;

import jeje.work.aeatbe.dto.review.ReviewDTO;
import jeje.work.aeatbe.entity.Product;
import jeje.work.aeatbe.entity.Review;
import jeje.work.aeatbe.entity.User;
import org.springframework.stereotype.Component;

@Component
public class ReviewMapper {
public ReviewDTO toDTO(Review review) {
return ReviewDTO.builder()
.id(review.getId())
.rate(review.getRate())
.content(review.getContent())
.userId(review.getUser().getId())
.productId(review.getProduct().getId())
.productImgUrl(review.getProduct().getProductImageUrl())
.build();
}

public Review toEntity(ReviewDTO reviewDTO, User user, Product product, boolean idRequired) {
return Review.builder()
.id(idRequired ? reviewDTO.id() : null)
.rate(reviewDTO.rate())
.content(reviewDTO.content())
.user(user)
.product(product)
.build();
}

public Review toEntity(ReviewDTO reviewDTO, User user, Product product) {
return toEntity(reviewDTO, user, product, false);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package jeje.work.aeatbe.mapper.Review;

import jeje.work.aeatbe.dto.review.ReviewDTO;
import jeje.work.aeatbe.dto.review.ReviewRequestDTO;
import org.springframework.stereotype.Component;

@Component
public class ReviewRequestMapper {
public ReviewDTO toDTO(ReviewRequestDTO reviewRequestDTO) {
return ReviewDTO.builder()
.rate(reviewRequestDTO.rate())
.content(reviewRequestDTO.content())
.productId(reviewRequestDTO.productId())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package jeje.work.aeatbe.mapper.Review;

import jeje.work.aeatbe.dto.review.ReviewDTO;
import jeje.work.aeatbe.dto.review.ReviewResponseDTO;
import jeje.work.aeatbe.dto.user.UserInfoResponseDTO;
import org.springframework.stereotype.Component;

@Component
public class ReviewResponseMapper {
public ReviewResponseDTO toDTO(ReviewDTO reviewDTO, UserInfoResponseDTO userInfoResponseDTO) {
return ReviewResponseDTO.builder()
.id(reviewDTO.id())
.rate(reviewDTO.rate())
.content(reviewDTO.content())
.user(userInfoResponseDTO)
.productId(reviewDTO.productId())
.productImgUrl(reviewDTO.productImgUrl())
.build();
}
}
6 changes: 3 additions & 3 deletions src/main/java/jeje/work/aeatbe/service/ProductService.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@ public class ProductService {
private final ProductResponseMapper productResponseMapper;
private final ProductAllergyService productAllergyService;
private final ProductFreeFromService productFreeFromService;
private final ReviewService reviewService;
private final ReviewRatingService reviewRatingService;
private final AllergyCategoryService allergyCategoryService;
private final FreeFromCategoryService freeFromCategoryService;


public ProductResponseDTO getProductResponseDTO(ProductDTO productDTO) {
return productResponseMapper.toEntity(
productDTO,
reviewService.getAverageRating(productDTO.id()),
reviewRatingService.getAverageRating(productDTO.id()),
productFreeFromService.getFreeFromTags(productDTO.id()),
productAllergyService.getAllergyTags(productDTO.id()),
true
Expand Down Expand Up @@ -260,7 +260,7 @@ private List<ProductResponseDTO> mapToResponseDTO(List<Product> products) {
return products.stream()
.map(product -> productResponseMapper.toEntity(
productMapper.toDTO(product),
reviewService.getAverageRating(product.getId()),
reviewRatingService.getAverageRating(product.getId()),
productFreeFromService.getFreeFromTags(product.getId()),
productAllergyService.getAllergyTags(product.getId()),
true
Expand Down
Loading

0 comments on commit 491241b

Please sign in to comment.