| | |
| | | package com.ots.project.exam.listener; |
| | | |
| | | import com.ots.common.enums.ExamPaperTypeEnum; |
| | | import com.ots.common.enums.QuestionTypeEnum; |
| | | import com.ots.project.exam.domain.ExamPaperAnswer; |
| | |
| | | import org.springframework.context.ApplicationListener; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | |
| | | /** |
| | | * @author OTS |
| | | */ |
| | | @Component |
| | | @AllArgsConstructor |
| | | public class CalculateExamPaperAnswerListener implements ApplicationListener<CalculateExamPaperAnswerCompleteEvent> { |
| | | |
| | | @Autowired |
| | | private ExamPaperAnswerService examPaperAnswerService; |
| | | |
| | | @Autowired |
| | | private ExamPaperQuestionCustomerAnswerService examPaperQuestionCustomerAnswerService; |
| | | |
| | | @Autowired |
| | | private ITTextContentService textContentService; |
| | | |
| | | @Autowired |
| | | private TaskExamCustomerAnswerService examCustomerAnswerService; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void onApplicationEvent(CalculateExamPaperAnswerCompleteEvent calculateExamPaperAnswerCompleteEvent) { |
| | | Date now = new Date(); |
| | | |
| | | ExamPaperAnswerInfo examPaperAnswerInfo = (ExamPaperAnswerInfo) calculateExamPaperAnswerCompleteEvent.getSource(); |
| | | TExamPaper examPaper = examPaperAnswerInfo.getExamPaper(); |
| | | ExamPaperAnswer examPaperAnswer = examPaperAnswerInfo.getExamPaperAnswer(); |
| | | List<ExamPaperQuestionCustomerAnswer> examPaperQuestionCustomerAnswers = examPaperAnswerInfo.getExamPaperQuestionCustomerAnswers(); |
| | | |
| | | examPaperAnswerService.insertByFilter(examPaperAnswer); |
| | | examPaperQuestionCustomerAnswers.stream().filter(a -> QuestionTypeEnum.needSaveTextContent(a.getQuestionType())).forEach(d -> { |
| | | TTextContent textContent = new TTextContent(d.getAnswer(), now); |
| | |
| | | d.setExamPaperAnswerId(examPaperAnswer.getId()); |
| | | }); |
| | | examPaperQuestionCustomerAnswerService.insertList(examPaperQuestionCustomerAnswers); |
| | | |
| | | switch (ExamPaperTypeEnum.fromCode(examPaper.getPaperType().intValue())) { |
| | | case Task: { |
| | | examCustomerAnswerService.insertOrUpdate(examPaper, examPaperAnswer, now); |