Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/QRAB-EWHA/Backend
Browse files Browse the repository at this point in the history
  • Loading branch information
yunjin-21 committed Nov 4, 2024
2 parents 3d236d6 + 1bd0ecd commit bcaf8cd
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 4 deletions.
3 changes: 2 additions & 1 deletion src/main/java/QRAB/QRAB/quiz/domain/QuizSet.java
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ public float getAccuracyRate() {
}

public void setAccuracyRate(float accuracyRate) {
this.accuracyRate = accuracyRate;
// 소수점 넷째 자리까지 반올림
this.accuracyRate = Math.round(accuracyRate * 10000) / 10000.0f;
}

public List<Quiz> getQuizzes() {
Expand Down
17 changes: 16 additions & 1 deletion src/main/java/QRAB/QRAB/quiz/dto/QuizGradingResponseDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import java.time.LocalDateTime;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;

@Getter
@Setter
public class QuizGradingResponseDTO {
Expand All @@ -25,11 +27,24 @@ public static class QuizResultDetailDTO {
private List<String> choices;
private int selectedAnswer;
private int correctAnswer;
private boolean isCorrect;
private String explanation;
private boolean isCorrect;

public void setIsCorrect(boolean isCorrect) {
this.isCorrect = isCorrect;
}
//Jackson이 correct로 직렬화하는 것 방지
@JsonProperty("isCorrect")
public boolean isCorrect() {
return isCorrect;
}

public Boolean getCorrect() {
return isCorrect;
}

public void setCorrect(Boolean isCorrect) {
this.isCorrect = isCorrect;
}
}
}
6 changes: 4 additions & 2 deletions src/main/java/QRAB/QRAB/quiz/service/QuizSolvingService.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ public QuizGradingResponseDTO evaluateQuizSet(Long quizSetId, QuizGradingRequest
// 총 질문 수와 점수 계산
int totalQuestions = request.getAnswers().size();
int score = (int) ((double) correctCount / totalQuestions * 100);
float accuracyRate = (float) correctCount / totalQuestions;

// QuizResult 엔티티 저장
QuizResult quizResult = new QuizResult();
Expand All @@ -101,10 +102,11 @@ public QuizGradingResponseDTO evaluateQuizSet(Long quizSetId, QuizGradingRequest
quizResult.setTakenAt(LocalDateTime.now());
quizResultRepository.save(quizResult);

// QuizSet 상태 업데이트
// QuizSet 업데이트
quizSet.setStatus("solved");
quizSet.setAccuracyRate(accuracyRate);
quizSetRepository.save(quizSet);

// 각 QuizAnswer에 quizResult 설정 후 저장
for (QuizGradingRequestDTO.AnswerDTO answer : request.getAnswers()) {
Quiz quiz = quizRepository.findById(answer.getQuizId())
Expand Down

0 comments on commit bcaf8cd

Please sign in to comment.