|
|
@@ -1,54 +0,0 @@
|
|
|
-package nju.seec.helper.aspect.event;
|
|
|
-
|
|
|
-import com.google.common.collect.Lists;
|
|
|
-import nju.seec.helper.api.bok.RecordApi;
|
|
|
-import nju.seec.helper.api.bok.dto.RecordDTO;
|
|
|
-import nju.seec.helper.api.dataanalysis.ExerciseApi;
|
|
|
-import nju.seec.helper.api.dataanalysis.dto.ExerciseRecordDTO;
|
|
|
-import nju.seec.helper.aspect.auth.LoginUser;
|
|
|
-import nju.seec.helper.dto.quiz.QuizStudentAnswerDTO;
|
|
|
-import nju.seec.helper.vo.quiz.QuizStudentAnswerVO;
|
|
|
-import org.aspectj.lang.annotation.AfterReturning;
|
|
|
-import org.aspectj.lang.annotation.Aspect;
|
|
|
-import org.springframework.core.annotation.Order;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-/**
|
|
|
- * @author cst
|
|
|
- */
|
|
|
-@Aspect
|
|
|
-@Component
|
|
|
-@Order(2)
|
|
|
-public class ExerciseRecordAspect {
|
|
|
- private final ExerciseApi exerciseApi;
|
|
|
- private final RecordApi recordApi;
|
|
|
-
|
|
|
- public ExerciseRecordAspect(ExerciseApi exerciseApi, RecordApi recordApi) {
|
|
|
- this.exerciseApi = exerciseApi;
|
|
|
- this.recordApi = recordApi;
|
|
|
- }
|
|
|
-
|
|
|
- @AfterReturning(value = "@annotation(exerciseRecord) && args(user,..,quizStudentAnswerDTO)", returning = "quizStudentAnswerVO", argNames = "exerciseRecord,user,quizStudentAnswerDTO,quizStudentAnswerVO")
|
|
|
- public void reportExerciseRecordEvent(ExerciseRecord exerciseRecord, LoginUser user, QuizStudentAnswerDTO quizStudentAnswerDTO, QuizStudentAnswerVO quizStudentAnswerVO) {
|
|
|
- String userId = String.valueOf(user.getPid());
|
|
|
- Map<String, QuizStudentAnswerVO.QuestionStudentAnswerInfo> questionStudentAnswerInfoMap = quizStudentAnswerVO.getAnswers();
|
|
|
- int size = quizStudentAnswerDTO.getRecords().size();
|
|
|
- List<ExerciseRecordDTO> exerciseRecords = Lists.newArrayListWithExpectedSize(size);
|
|
|
- List<RecordDTO> records = Lists.newArrayListWithExpectedSize(size);
|
|
|
-
|
|
|
- quizStudentAnswerDTO
|
|
|
- .getRecords()
|
|
|
- .forEach((key, value) -> {
|
|
|
- QuizStudentAnswerVO.QuestionStudentAnswerInfo studentAnswerInfo = questionStudentAnswerInfoMap.get(key);
|
|
|
- Boolean pass = studentAnswerInfo.getCorrect();
|
|
|
- Object answer = studentAnswerInfo.getAnswer();
|
|
|
- exerciseRecords.add(exerciseApi.createExerciseRecordDTO(userId, key, value.getStartAt(), value.getEndAt(), pass));
|
|
|
- records.add(recordApi.createRecordDTO(userId, key, answer, pass, value.getStartAt(), value.getEndAt()));
|
|
|
- });
|
|
|
- exerciseApi.reportExercise(exerciseRecords);
|
|
|
- recordApi.reportUserRecord(records);
|
|
|
- }
|
|
|
-}
|