Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat/12 ✨ 유저 종합점수 계산 로직 추가 #54

Merged
merged 1 commit into from
Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/main/java/cmc/peerna/domain/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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;}
}
3 changes: 2 additions & 1 deletion src/main/java/cmc/peerna/domain/enums/PeerGrade.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public enum PeerGrade {
GOOD(70),
AVERAGE(56),
BELOW_AVERAGE(42),
POOR(28);
POOR(28),
WORST(14);
private final int score;
}
2 changes: 2 additions & 0 deletions src/main/java/cmc/peerna/service/MemberService.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ public interface MemberService {
void saveMemberBasicInfo(Member member, MemberRequestDto.basicInfoDTO request);

Member findById(Long memberId);

void updateTotalScore(Member member);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<PeerGradeResult> peerGradeResultList = peerGradeResultRepository.findAllByTarget(member);
//
// }
@Override
@Transactional
public void updateTotalScore(Member member) {
Integer totalScore = 0;
List<PeerGradeResult> 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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<Long> getcolorAnswerIdList(Member member, List<Long> selfTestAnswerIdList) {
Expand Down Expand Up @@ -95,7 +93,6 @@ public RootResponseDto.MypageDto getMyPageDto(Member member) {
List<TestResponseDto.totalEvaluation> top3TotalEvaluation = getTop3TotalEvaluation(member);

List<PeerGradeResult> peerGradeResultList = peerGradeResultRepository.findAllByTarget(member);
int totalScore = memberCalculator.getTotalScore(peerGradeResultList);

List<PeerFeedback> peerFeedbackList = peerFeedbackRepository.findTop3ByTargetOrderByCreatedAtDesc(member);

Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ public void savePeerGradeResult(Member writer, Member target, PeerGrade peerGrad
.nonMemberUuid(uuid.toString())
.build()
);

}

@Override
Expand Down
14 changes: 0 additions & 14 deletions src/main/java/cmc/peerna/utils/MemberCalculator.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ public ResponseDto<TestResponseDto.peerTestIdResponseDto> 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());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public static class MemberSimpleInfoDto{
private Part part;
private Job job;

private Long totalScore;
private Integer totalScore;
private String oneLiner;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public static class MypageDto{
private List<TestResponseDto.totalEvaluation> top3Evaluation;

// 종합점수
private int totalScore;
private Integer totalScore;

// 유저 피드백 최신 3개
List<String> peerFeedbackList;
Expand Down
Loading