From 49429bad1036c81c056faeadfa009c53ba777fad Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 07 五月 2024 18:02:11 +0800 Subject: [PATCH] feat:反馈保存、展示、处理、删除 --- src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 25 ++++++++++++++----------- 1 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java index 15957bc..7186bd1 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java @@ -18,10 +18,8 @@ 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; @@ -32,6 +30,7 @@ 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; @@ -128,6 +127,7 @@ examPaper.setCreateTime(now); examPaper.setCreateUser(user.getId()); examPaper.setDeleted(false); + examPaper.setUserIds(examPaperEditRequestVM.getMenuIds()); examPaperFromVM(examPaperEditRequestVM, examPaper, titleItemsVM); examPaperMapper.insertSelective(examPaper); @@ -150,10 +150,11 @@ } @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()); List<ExamPaperTitleItemObject> examPaperTitleItemObjects = JsonUtil.toJsonListObject(frameTextContent.getContent(), ExamPaperTitleItemObject.class); List<Integer> questionIds = examPaperTitleItemObjects.stream() @@ -170,11 +171,12 @@ 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)), @@ -182,7 +184,7 @@ // 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; @@ -358,6 +360,7 @@ int remainingScore = totalScore; for (int i = 0; i < quantity - 1; i++) { + // 濡傛灉棰樻暟閲忚秴杩囦簡棰樺簱鏁伴噺锛屾姤閿� if (i >= scoresMap.size()) { throw new QuestionException(); } -- Gitblit v1.8.0