카페 도메인 - 변수 추가

private int cafeReviewScore;

 

리뷰 등록시 리뷰 점수 증가

@Transactional
public void saveCafeReview(CafeReviewRequestDto requestDto, Long cafeNumber, User securityUser) {
    User user = userRepoistory.getById(securityUser.getId());
    Cafe cafe = cafeRepository.findById(cafeNumber).orElseThrow(
            () -> new IllegalArgumentException(CAFE_NOT_FOUND.getMessage())
    );

    .. 생략 ..
    
    int newCafeReviewScore = cafe.getCafeReviewScore() + requestDto.getReviewRating();
    cafe.updateCafeReviewScore(newCafeReviewScore);

    cafeReviewRepository.save(cafeReview);
}

 

리뷰 삭제시 리뷰 점수 감소

public void removeCafeReviewByReviewId(Long id) {
    CafeReview reviewById = cafeReviewRepository.getById(id);
    Cafe cafe = reviewById.getCafe();
    int newCafeReviewScore = cafe.getCafeReviewScore() - cafeReviewRepository.getById(id).getCafeReviewRating();
    cafe.updateCafeReviewScore(newCafeReviewScore);
    cafeReviewRepository.deleteById(id);
}

 

 

페이지 데이터 호출시 : 리뷰점수 / 리뷰개수 -> 소수점 첫재짜리까지 표시

dto

if(cafe.getCafeReviewScore() == 0){
    cafeAvgStarRate = "0.0";
}else {
    DecimalFormat df = new DecimalFormat("0.0");
    cafeAvgStarRate = df.format((float) cafe.getCafeReviewScore() / (float) cafe.getCafeReviews().size());
}

+ Recent posts