From 72a2734ff3042b7734ea345eab33b79c9d117c56 Mon Sep 17 00:00:00 2001 From: kimdongmin Date: Wed, 7 Feb 2024 02:39:34 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20=EC=97=AC=ED=96=89=20=ED=9B=84?= =?UTF-8?q?=EA=B8=B0=20=EB=A6=AC=EB=B7=B0=20=ED=8F=89=EC=A0=90=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=8B=9C,=20=EC=9D=B4=EC=A0=84=20=EC=A0=90=EC=88=98?= =?UTF-8?q?=EB=A5=BC=20=EB=BA=80=20=EB=92=A4=20=EB=8B=A4=EC=8B=9C=20?= =?UTF-8?q?=ED=8F=89=EC=A0=90=20=EA=B3=84=EC=82=B0=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TripRecordReviewService.java | 4 +-- .../domain/triprecord/entity/TripRecord.java | 34 ++++++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/haejwo/tripcometrue/domain/review/triprecordreview/service/TripRecordReviewService.java b/src/main/java/com/haejwo/tripcometrue/domain/review/triprecordreview/service/TripRecordReviewService.java index 58f8a462..4a602cf3 100644 --- a/src/main/java/com/haejwo/tripcometrue/domain/review/triprecordreview/service/TripRecordReviewService.java +++ b/src/main/java/com/haejwo/tripcometrue/domain/review/triprecordreview/service/TripRecordReviewService.java @@ -104,8 +104,8 @@ public void modifyTripRecordReview( validateRightMemberAccess(loginMember, tripRecordReview); isContentAlreadyRegistered(tripRecordReview); - TripRecord tripRecord = getTripRecordById(tripRecordReview.getTripRecord().getId()); - tripRecord.calculateAverageRating(requestDto.ratingScore()); + TripRecord tripRecord = tripRecordReview.getTripRecord(); + tripRecord.updateAverageRating(requestDto.ratingScore(), tripRecordReview); tripRecordReview.update(requestDto, loginMember); } diff --git a/src/main/java/com/haejwo/tripcometrue/domain/triprecord/entity/TripRecord.java b/src/main/java/com/haejwo/tripcometrue/domain/triprecord/entity/TripRecord.java index 46ece44a..31518644 100644 --- a/src/main/java/com/haejwo/tripcometrue/domain/triprecord/entity/TripRecord.java +++ b/src/main/java/com/haejwo/tripcometrue/domain/triprecord/entity/TripRecord.java @@ -67,11 +67,11 @@ public class TripRecord extends BaseTimeEntity { @Builder private TripRecord(Long id, String title, String content, ExpenseRangeType expenseRangeType, - String countries, LocalDate tripStartDay, LocalDate tripEndDay, Integer totalDays, - Double averageRating, Integer viewCount, Integer storeCount, Integer reviewCount, - Integer commentCount, List tripRecordSchedules, - List tripRecordTags, List tripRecordImages, - List tripRecordStores, Member member) { + String countries, LocalDate tripStartDay, LocalDate tripEndDay, Integer totalDays, + Double averageRating, Integer viewCount, Integer storeCount, Integer reviewCount, + Integer commentCount, List tripRecordSchedules, + List tripRecordTags, List tripRecordImages, + List tripRecordStores, Member member) { this.id = id; this.title = title; this.content = content; @@ -98,12 +98,12 @@ public void update(TripRecordRequestDto requestDto) { this.expenseRangeType = requestDto.expenseRangeType(); this.tripStartDay = requestDto.tripStartDay(); this.tripEndDay = requestDto.tripEndDay(); - this.totalDays = (int)ChronoUnit.DAYS.between(this.tripStartDay, this.tripEndDay)+1; + this.totalDays = (int) ChronoUnit.DAYS.between(this.tripStartDay, this.tripEndDay) + 1; this.countries = requestDto.countries(); } public void incrementViewCount() { - if(this.viewCount == null) { + if (this.viewCount == null) { this.viewCount = 1; } else { this.viewCount++; @@ -111,7 +111,7 @@ public void incrementViewCount() { } public void incrementStoreCount() { - if(this.storeCount == null) { + if (this.storeCount == null) { this.storeCount = 1; } else { this.storeCount++; @@ -119,13 +119,13 @@ public void incrementStoreCount() { } public void decrementStoreCount() { - if(this.storeCount > 0) { + if (this.storeCount > 0) { this.storeCount--; } } public void incrementReviewCount() { - if(this.reviewCount == null) { + if (this.reviewCount == null) { this.reviewCount = 1; } else { this.reviewCount++; @@ -133,7 +133,7 @@ public void incrementReviewCount() { } public void incrementCommentCount() { - if(this.commentCount == null) { + if (this.commentCount == null) { this.commentCount = 1; } else { this.commentCount++; @@ -150,6 +150,16 @@ public void calculateAverageRating(double ratingScore) { } } + public void updateAverageRating(double newRatingScore, TripRecordReview tripRecordReview) { + double totalRating = averageRating * tripRecordReviews.size(); + double previousRatingScore = tripRecordReview.getRatingScore(); + + totalRating -= previousRatingScore; + totalRating += newRatingScore; + + averageRating = totalRating / tripRecordReviews.size(); + } + public void decreaseCommentCount(int count) { this.commentCount -= count; } @@ -172,6 +182,6 @@ private int calculateTotalDays() { if (this.tripStartDay == null || this.tripEndDay == null) { return 0; } - return (int) ChronoUnit.DAYS.between(this.tripStartDay, this.tripEndDay)+1; + return (int) ChronoUnit.DAYS.between(this.tripStartDay, this.tripEndDay) + 1; } }