Skip to content

Commit

Permalink
Merge pull request #37 from MARKETFUBY/feat/help
Browse files Browse the repository at this point in the history
[차소연] 도움돼요 목록 조회 구현
  • Loading branch information
Soyeon-Cha authored Nov 26, 2023
2 parents b053915 + 2ecbe6f commit e30000f
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 1 deletion.
10 changes: 10 additions & 0 deletions src/main/java/MARKETFUBY/Product/controller/ProductController.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import MARKETFUBY.Member.service.MemberService;
import MARKETFUBY.Product.domain.Product;
import MARKETFUBY.Product.dto.*;
import MARKETFUBY.Review.service.ReviewService;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;

Expand All @@ -15,6 +16,7 @@
public class ProductController {
private final ProductService productService;
private final MemberService memberService;
private final ReviewService reviewService;

@GetMapping(value = "/main")
@ResponseStatus(value = HttpStatus.OK)
Expand Down Expand Up @@ -84,4 +86,12 @@ public LikeProductListResponseDto getLikeProductList(@RequestParam Long memberId
LikeProductListResponseDto likeProductListDto = productService.getLikeProductListDto(member);
return likeProductListDto;
}

@GetMapping("mypage/reviewhelp/list")
@ResponseStatus(value = HttpStatus.OK)
public HelpReviewListResponseDto getHelpReviewList(@RequestParam Long memberId){
Member member = memberService.findMemberById(memberId);
HelpReviewListResponseDto helpReviewListDto = reviewService.getHelpReviewListDto(member);
return helpReviewListDto;
}
}
29 changes: 29 additions & 0 deletions src/main/java/MARKETFUBY/Product/dto/HelpReviewDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package MARKETFUBY.Product.dto;

import MARKETFUBY.Review.domain.Review;
import lombok.*;

import java.time.LocalDate;

@Getter
@Setter
@Builder
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class HelpReviewDto {
private String name;
private String level;
private String brand;
private String title;
private String content;
private LocalDate date;

public static HelpReviewDto from(Review review){
return HelpReviewDto.builder()
.name(review.getWriter().getName())
.level(review.getWriter().getLevel())
.brand(review.getProduct().getTitle())
.content(review.getContent())
.date(review.getCreatedAt().toLocalDate())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package MARKETFUBY.Product.dto;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

@Getter
@Setter
public class HelpReviewListResponseDto {
private Integer helpReviewsNum;
private List<HelpReviewDto> helpReviews;

@Builder
public HelpReviewListResponseDto(Integer helpReviewsNum, List<HelpReviewDto> helpReviews){
this.helpReviewsNum = helpReviewsNum;
this.helpReviews = helpReviews;
}
}
26 changes: 25 additions & 1 deletion src/main/java/MARKETFUBY/Review/service/ReviewService.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
import java.util.ArrayList;
import java.util.List;

import MARKETFUBY.Product.dto.HelpReviewDto;
import MARKETFUBY.Product.dto.HelpReviewListResponseDto;
import MARKETFUBY.ReviewHelp.domain.ReviewHelp;
import MARKETFUBY.ReviewHelp.repository.ReviewHelpRepository;
import org.springframework.stereotype.Service;

import MARKETFUBY.Member.domain.Member;
Expand All @@ -29,6 +33,7 @@ public class ReviewService {
private final ReviewRepository reviewRepository;
private final ReviewImageRepository reviewImageRepository;
private final MemberService memberService;
private final ReviewHelpRepository reviewHelpRepository;

public ReviewResponseDto getReviewList(){
ReviewResponseDto reviewResponseDto=new ReviewResponseDto();
Expand Down Expand Up @@ -83,11 +88,30 @@ public void update(Long reviewId, ReviewRequestDto reviewRequestDto){
reviewRepository.save(review);
}

public HelpReviewListResponseDto getHelpReviewListDto(Member member){
List<HelpReviewDto> helpReviewDtos = findHelpReviewsByMember(member);
Integer helpReviewsNum = helpReviewDtos.size();
return new HelpReviewListResponseDto(helpReviewsNum, helpReviewDtos);
}
public List<HelpReviewDto> findHelpReviewsByMember(Member member){
List<ReviewHelp> reviewHelpList = reviewHelpRepository.findAllByMember(member);
List<Review> helpReviews = new ArrayList<>();
List<HelpReviewDto> helpReviewDtos = new ArrayList<>();
reviewHelpList.forEach(reviewHelp -> {
Review review = reviewHelp.getReview();
helpReviews.add(review);
});
helpReviews.forEach(review -> {
HelpReviewDto helpReviewDto = HelpReviewDto.from(review);
helpReviewDtos.add(helpReviewDto);
});
return helpReviewDtos;
}

// 도움돼요에서 사용
@Transactional(readOnly = true)
public Review findReviewById(Long reviewId){
return reviewRepository.findById(reviewId)
.orElseThrow(()->new EntityNotFoundException("해당 리뷰가 존재하지 않습니다."));
}

}
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
package MARKETFUBY.ReviewHelp.repository;

import MARKETFUBY.Like.domain.Like;
import MARKETFUBY.Member.domain.Member;
import MARKETFUBY.Review.domain.Review;
import MARKETFUBY.ReviewHelp.domain.ReviewHelp;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface ReviewHelpRepository extends JpaRepository<ReviewHelp, Long> {
boolean existsByMemberAndReview(Member member, Review review);
Optional<ReviewHelp> findByMemberAndReview(Member member, Review review);
List<ReviewHelp> findAllByMember(Member member);
}

0 comments on commit e30000f

Please sign in to comment.