Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
HyominAn0401 committed Dec 28, 2024
2 parents a7bc12c + 3d1df6e commit 9ad036f
Showing 1 changed file with 47 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import site.examready2025.quiz.domain.quiz.entity.Quiz;
import site.examready2025.quiz.domain.quiz.repository.QuizRepository;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
Expand All @@ -33,36 +35,60 @@ public List<ChoiceResponseDto> getChoicesByQuiz(Long quizId){
}

public void addChoices(Long quizId, List<ChoiceRequestDto> choiceRequestDtos){
Quiz quiz = quizRepository.findById(quizId).orElseThrow(()-> new IllegalArgumentException("해당 퀴즈를 찾을 수 없습니다. 퀴즈id : "+quizId));

Quiz quiz = quizRepository.findById(quizId).orElseThrow(()-> new IllegalArgumentException("해당 퀴즈를 찾을 수 없습니다. 퀴즈 id : "+quizId));
for(ChoiceRequestDto dto : choiceRequestDtos){
//Quiz quiz = quizRepository.findById(dto.getQuizId()).orElseThrow(()-> new IllegalArgumentException("해당 퀴즈를 찾을 수 없습니다. 퀴즈 id: "+dto.getQuizId()));
Question question = questionRepository.findById(dto.getQuestionId()).orElseThrow(()-> new IllegalArgumentException("해당 질문을 찾을 수 없습니다. questionId: "+dto.getQuestionId()));

Question question = questionRepository.findById(dto.getQuestionId())
.orElseThrow(()-> new IllegalArgumentException("해당 질문을 찾을 수 없습니다. 질문 Id : "+dto.getQuestionId()));
List<Choice> choices = new ArrayList<>();

// 정답
Choice correct = Choice.builder()
.question(question)
.quiz(quiz)
.answer(dto.getCorrectAnswer())
.isCorrect(true)
.build();
choiceRepository.save(correct);
choices.add(Choice.builder().question(question)
.quiz(quiz).answer(dto.getCorrectAnswer()).isCorrect(true).build());

// 오답
for(String wrongAnswers : dto.getWrongAnswers()){
Choice wrong = Choice.builder()
.quiz(quiz)
.question(question)
.answer(wrongAnswers)
.isCorrect(false)
.build();
choiceRepository.save(wrong);
for(String wrongAnswer : dto.getWrongAnswers()){
choices.add(Choice.builder().quiz(quiz).question(question).answer(wrongAnswer).isCorrect(false).build());
}

Collections.shuffle(choices);

for(Choice choice : choices){
choiceRepository.save(choice);
}
}
}

// 선택지 저장 및 DB 저장
// public void addChoices(Long quizId, List<ChoiceRequestDto> choiceRequestDtos){
//
// Quiz quiz = quizRepository.findById(quizId).orElseThrow(()-> new IllegalArgumentException("해당 퀴즈를 찾을 수 없습니다. 퀴즈 id : "+quizId));
// for(ChoiceRequestDto dto : choiceRequestDtos){
// //Quiz quiz = quizRepository.findById(dto.getQuizId()).orElseThrow(()-> new IllegalArgumentException("해당 퀴즈를 찾을 수 없습니다. 퀴즈 id: "+dto.getQuizId()));
//
// Question question = questionRepository.findById(dto.getQuestionId())
// .orElseThrow(()-> new IllegalArgumentException("해당 질문을 찾을 수 없습니다. 질문 Id : "+dto.getQuestionId()));
//
// // 정답
// Choice correct = Choice.builder()
// .question(question)
// .quiz(quiz)
// .answer(dto.getCorrectAnswer())
// .isCorrect(true)
// .build();
// choiceRepository.save(correct);
//
// // 오답
// for(String wrongAnswers : dto.getWrongAnswers()){
// Choice wrong = Choice.builder()
// .quiz(quiz)
// .question(question)
// .answer(wrongAnswers)
// .isCorrect(false)
// .build();
// choiceRepository.save(wrong);
// }
// }
// }

// 보기 데이터 반환
public List<ChoicesWithQuestionDto> getChoicesWithQuestion(Long quizId){
List<Choice> choices = choiceRepository.findByQuizId(quizId);
Expand Down

0 comments on commit 9ad036f

Please sign in to comment.