| | |
| | | import com.mindskip.xzs.utility.JsonUtil; |
| | | import com.mindskip.xzs.utility.ModelMapperSingle; |
| | | import com.mindskip.xzs.utility.ExamUtil; |
| | | import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; |
| | | import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM; |
| | | import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperTitleItemVM; |
| | | import com.mindskip.xzs.viewmodel.admin.exam.QuestionTypeVM; |
| | | import com.mindskip.xzs.viewmodel.admin.exam.*; |
| | | import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO; |
| | | import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM; |
| | | import com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter; |
| | | import com.mindskip.xzs.viewmodel.student.dashboard.PaperInfo; |
| | |
| | | import com.mindskip.xzs.domain.Question; |
| | | import com.mindskip.xzs.domain.User; |
| | | import org.modelmapper.ModelMapper; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public ExamPaperEditRequestVM examPaperToVM(Integer id) { |
| | | public ExamPaperEditRequestVO examPaperToVM(Integer id) { |
| | | ExamPaper examPaper = examPaperMapper.selectByPrimaryKey(id); |
| | | ExamPaperEditRequestVM vm = modelMapper.map(examPaper, ExamPaperEditRequestVM.class); |
| | | ExamPaperEditRequestVO vm = modelMapper.map(examPaper, ExamPaperEditRequestVO.class); |
| | | vm.setLevel(examPaper.getGradeLevel()); |
| | | vm.setMenuIds(examPaper.getUserIds()); |
| | | TextContent frameTextContent = textContentService.selectById(examPaper.getFrameTextContentId()); |
| | |
| | | Integer order = 0; |
| | | Set<Integer> generatedNumbers = new HashSet<>(); |
| | | Random random = new Random(); |
| | | List<ExamPaperTitleItemVM> examPaperTitleItemVMS = examPaperTitleItemObjects.stream().map(t -> { |
| | | ExamPaperTitleItemVM tTitleVM = modelMapper.map(t, ExamPaperTitleItemVM.class); |
| | | List<QuestionEditRequestVM> questionItemsVM = t.getQuestionItems().stream().map(i -> { |
| | | List<ExamPaperTitleItemVO> examPaperTitleItemVMS = examPaperTitleItemObjects.stream().map(t -> { |
| | | ExamPaperTitleItemVO tTitleVM = new ExamPaperTitleItemVO(); |
| | | BeanUtils.copyProperties(t, tTitleVM); |
| | | List<ExamQuestionVO> questionItemsVM = t.getQuestionItems().stream().map(i -> { |
| | | Question question = questions.stream().filter(q -> q.getId().equals(i.getId())).findFirst().get(); |
| | | QuestionEditRequestVM questionEditRequestVM = questionService.getQuestionEditRequestVM(question); |
| | | ExamQuestionVO questionEditRequestVM = questionService.getQuestionEditRequestVM(question); |
| | | questionEditRequestVM.setTitle("(" + QuestionTypeEnum.fromCode(questionEditRequestVM.getQuestionType()).getName() + ") " + questionEditRequestVM.getTitle()); |
| | | questionEditRequestVM.setItemOrder(generateRandomNumber(questionEditRequestVM.getQuestionType() == 1 ? 0 : ((questionEditRequestVM.getQuestionType() == 2 ? singleChoice : multipleChoice + singleChoice)), |
| | | questionEditRequestVM.getQuestionType() == 1 ? singleChoice : ((questionEditRequestVM.getQuestionType() == 2 ? multipleChoice + singleChoice : trueFalse + multipleChoice + singleChoice)), |
| | |
| | | // questionEditRequestVM.setItemOrder(getRandomNumber(t.getQuestionItems().size() - 1, generatedNumbers, random)); |
| | | |
| | | return questionEditRequestVM; |
| | | }).sorted(Comparator.comparing(QuestionEditRequestVM::getItemOrder)) |
| | | }).sorted(Comparator.comparing(ExamQuestionVO::getItemOrder)) |
| | | .collect(Collectors.toList()); |
| | | tTitleVM.setQuestionItems(questionItemsVM); |
| | | return tTitleVM; |
| | |
| | | int remainingScore = totalScore; |
| | | |
| | | for (int i = 0; i < quantity - 1; i++) { |
| | | // 如果题数量超过了题库数量,报错 |
| | | if (i >= scoresMap.size()) { |
| | | throw new QuestionException(); |
| | | } |