diff --git a/src/main/java/cmc/peerna/domain/Member.java b/src/main/java/cmc/peerna/domain/Member.java index ae87751..f37dd6a 100644 --- a/src/main/java/cmc/peerna/domain/Member.java +++ b/src/main/java/cmc/peerna/domain/Member.java @@ -37,7 +37,8 @@ public class Member extends BaseEntity { @Enumerated(EnumType.STRING) private Part part; - private Long totalScore; + @ColumnDefault("0") + private Integer totalScore; private String socialId; @@ -65,4 +66,6 @@ public void setBasicInfo(MemberRequestDto.basicInfoDTO request) { public void setTestType(TestType selfTestType) { this.selfTestType=selfTestType; } + + public void updateTotalScore(Integer totalScore){ this.totalScore=totalScore;} } diff --git a/src/main/java/cmc/peerna/domain/enums/PeerGrade.java b/src/main/java/cmc/peerna/domain/enums/PeerGrade.java index 14e9250..c52a194 100644 --- a/src/main/java/cmc/peerna/domain/enums/PeerGrade.java +++ b/src/main/java/cmc/peerna/domain/enums/PeerGrade.java @@ -11,6 +11,7 @@ public enum PeerGrade { GOOD(70), AVERAGE(56), BELOW_AVERAGE(42), - POOR(28); + POOR(28), + WORST(14); private final int score; } diff --git a/src/main/java/cmc/peerna/service/MemberService.java b/src/main/java/cmc/peerna/service/MemberService.java index 85bb38d..d4d7e91 100644 --- a/src/main/java/cmc/peerna/service/MemberService.java +++ b/src/main/java/cmc/peerna/service/MemberService.java @@ -13,4 +13,6 @@ public interface MemberService { void saveMemberBasicInfo(Member member, MemberRequestDto.basicInfoDTO request); Member findById(Long memberId); + + void updateTotalScore(Member member); } diff --git a/src/main/java/cmc/peerna/service/serviceImpl/MemberServiceImpl.java b/src/main/java/cmc/peerna/service/serviceImpl/MemberServiceImpl.java index 4df3763..7e1abda 100644 --- a/src/main/java/cmc/peerna/service/serviceImpl/MemberServiceImpl.java +++ b/src/main/java/cmc/peerna/service/serviceImpl/MemberServiceImpl.java @@ -81,8 +81,20 @@ public Member findById(Long memberId) { return memberRepository.findById(memberId).orElseThrow(() -> new MemberException(ResponseStatus.MEMBER_NOT_FOUND)); } -// public Long updateTotalScore(Member member) { -// List peerGradeResultList = peerGradeResultRepository.findAllByTarget(member); -// -// } + @Override + @Transactional + public void updateTotalScore(Member member) { + Integer totalScore = 0; + List peerGradeResultList = peerGradeResultRepository.findAllByTarget(member); + if (peerGradeResultList.size() < 3) { + return; + } + int scoreSum=0; + for (PeerGradeResult peerGradeResult : peerGradeResultList) { + scoreSum += peerGradeResult.getPeerGrade().getScore(); + } + totalScore = scoreSum / peerGradeResultList.size(); + if(totalScore>100) totalScore=100; + member.updateTotalScore(totalScore); + } } diff --git a/src/main/java/cmc/peerna/service/serviceImpl/RootServiceImpl.java b/src/main/java/cmc/peerna/service/serviceImpl/RootServiceImpl.java index 4af4b97..c4f92f6 100644 --- a/src/main/java/cmc/peerna/service/serviceImpl/RootServiceImpl.java +++ b/src/main/java/cmc/peerna/service/serviceImpl/RootServiceImpl.java @@ -8,7 +8,6 @@ import cmc.peerna.domain.enums.TestType; import cmc.peerna.repository.*; import cmc.peerna.service.RootService; -import cmc.peerna.utils.MemberCalculator; import cmc.peerna.utils.TestResultCalculator; import cmc.peerna.web.dto.responseDto.MemberResponseDto; import cmc.peerna.web.dto.responseDto.RootResponseDto; @@ -32,7 +31,6 @@ public class RootServiceImpl implements RootService { private final PeerGradeResultRepository peerGradeResultRepository; private final PeerTestRepository peerTestRepository; private final TestResultCalculator testResultCalculator; - private final MemberCalculator memberCalculator; @Override public List getcolorAnswerIdList(Member member, List selfTestAnswerIdList) { @@ -95,7 +93,6 @@ public RootResponseDto.MypageDto getMyPageDto(Member member) { List top3TotalEvaluation = getTop3TotalEvaluation(member); List peerGradeResultList = peerGradeResultRepository.findAllByTarget(member); - int totalScore = memberCalculator.getTotalScore(peerGradeResultList); List peerFeedbackList = peerFeedbackRepository.findTop3ByTargetOrderByCreatedAtDesc(member); @@ -110,7 +107,7 @@ public RootResponseDto.MypageDto getMyPageDto(Member member) { .selfTestCardList(selfTestCardList) .peerCardList(peerCardList) .top3Evaluation(top3TotalEvaluation) - .totalScore(totalScore) + .totalScore(member.getTotalScore()) .peerFeedbackList(TestConverter.peerFeedbackListToStringList(peerFeedbackList)) .selfTestAnswerIdList(selfTestAnswerIdList) .colorAnswerIdList(colorAnswerIdList) diff --git a/src/main/java/cmc/peerna/service/serviceImpl/TestServiceImpl.java b/src/main/java/cmc/peerna/service/serviceImpl/TestServiceImpl.java index dac4604..e0f0a3a 100644 --- a/src/main/java/cmc/peerna/service/serviceImpl/TestServiceImpl.java +++ b/src/main/java/cmc/peerna/service/serviceImpl/TestServiceImpl.java @@ -156,6 +156,7 @@ public void savePeerGradeResult(Member writer, Member target, PeerGrade peerGrad .nonMemberUuid(uuid.toString()) .build() ); + } @Override diff --git a/src/main/java/cmc/peerna/utils/MemberCalculator.java b/src/main/java/cmc/peerna/utils/MemberCalculator.java deleted file mode 100644 index 1beedc6..0000000 --- a/src/main/java/cmc/peerna/utils/MemberCalculator.java +++ /dev/null @@ -1,14 +0,0 @@ -package cmc.peerna.utils; - -import cmc.peerna.domain.PeerGradeResult; -import org.springframework.stereotype.Component; - -import java.util.List; - -@Component -public class MemberCalculator { - public int getTotalScore(List peerGradeResultList) { - // 기획 확정 후 구현 - return 0; - } -} diff --git a/src/main/java/cmc/peerna/web/controller/TestController.java b/src/main/java/cmc/peerna/web/controller/TestController.java index 3bdc1a4..67fbc16 100644 --- a/src/main/java/cmc/peerna/web/controller/TestController.java +++ b/src/main/java/cmc/peerna/web/controller/TestController.java @@ -98,6 +98,7 @@ public ResponseDto savePeerTest(@RequestP // Member writer = Member.builder() // .id(0L).build(); testService.savePeerTest(null, memberService.findById(targetId), requestDto); + memberService.updateTotalScore(memberService.findById(targetId)); return ResponseDto.of(TestResponseDto.peerTestIdResponseDto.builder() .peerTestId(targetId).build()); } diff --git a/src/main/java/cmc/peerna/web/dto/responseDto/MemberResponseDto.java b/src/main/java/cmc/peerna/web/dto/responseDto/MemberResponseDto.java index 1842cab..d17234d 100644 --- a/src/main/java/cmc/peerna/web/dto/responseDto/MemberResponseDto.java +++ b/src/main/java/cmc/peerna/web/dto/responseDto/MemberResponseDto.java @@ -39,7 +39,7 @@ public static class MemberSimpleInfoDto{ private Part part; private Job job; - private Long totalScore; + private Integer totalScore; private String oneLiner; } diff --git a/src/main/java/cmc/peerna/web/dto/responseDto/RootResponseDto.java b/src/main/java/cmc/peerna/web/dto/responseDto/RootResponseDto.java index 26a9b05..0f22106 100644 --- a/src/main/java/cmc/peerna/web/dto/responseDto/RootResponseDto.java +++ b/src/main/java/cmc/peerna/web/dto/responseDto/RootResponseDto.java @@ -27,7 +27,7 @@ public static class MypageDto{ private List top3Evaluation; // 종합점수 - private int totalScore; + private Integer totalScore; // 유저 피드백 최신 3개 List peerFeedbackList;