From 03f1e635215bdefd1b649a10675278567b5b8800 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 15 三月 2024 11:01:18 +0800 Subject: [PATCH] 试卷不返回答案,空指针修复 --- src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperController.java | 6 src/main/java/com/mindskip/xzs/service/QuestionService.java | 5 src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperReadVO.java | 11 + src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java | 8 src/main/java/com/mindskip/xzs/controller/student/QuestionAnswerController.java | 8 src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java | 9 src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditRequestVM.java | 4 src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionAnswerVO.java | 14 ++ src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java | 12 - src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 23 ++- src/main/java/com/mindskip/xzs/service/ExamPaperService.java | 3 src/main/java/com/mindskip/xzs/viewmodel/admin/question/ExamQuestionVO.java | 48 ++++++++ src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java | 51 ++++---- src/main/java/com/mindskip/xzs/domain/enums/QuestionTypeEnum.java | 12 - src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java | 5 src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java | 5 src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVO.java | 52 ++++++++ src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperTitleItemVO.java | 19 +++ src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperAnswerController.java | 8 19 files changed, 225 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java index f07bf1c..3a9c4f1 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java +++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java @@ -13,6 +13,7 @@ import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.utility.excel.ExcelUtils; +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; import com.mindskip.xzs.viewmodel.admin.exam.ExamResponseVM; @@ -77,7 +78,7 @@ @RequestMapping(value = "/edit", method = RequestMethod.POST) - public RestResponse<ExamPaperEditRequestVM> edit(@RequestBody @Valid ExamPaperEditRequestVM model) throws Exception { + public RestResponse<ExamPaperEditRequestVO> edit(@RequestBody @Valid ExamPaperEditRequestVM model) throws Exception { Object[] obj = Arrays.stream(model.getUserIds()).sorted().distinct().toArray(); Integer[] userIds = new Integer[obj.length]; for(int i = 0;i<obj.length;i++) { @@ -85,13 +86,13 @@ } model.setUserIds(userIds); ExamPaper examPaper = examPaperService.savePaperFromVM(model, getCurrentUser()); - ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId()); + ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId()); return RestResponse.ok(newVM); } @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) - public RestResponse<ExamPaperEditRequestVM> select(@PathVariable Integer id) { - ExamPaperEditRequestVM vm = examPaperService.examPaperToVM(id); + public RestResponse<ExamPaperEditRequestVO> select(@PathVariable Integer id) { + ExamPaperEditRequestVO vm = examPaperService.examPaperToVM(id); return RestResponse.ok(vm); } diff --git a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java index b9c60e0..dec03bc 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java +++ b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java @@ -90,9 +90,8 @@ } @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) - public RestResponse<QuestionEditRequestVM> select(@PathVariable Integer id) { - QuestionEditRequestVM newVM = questionService.getQuestionEditRequestVM(id); - return RestResponse.ok(newVM); + public RestResponse<ExamQuestionVO> select(@PathVariable Integer id) { + return RestResponse.ok(questionService.getQuestionEditRequestVM(id)); } diff --git a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java index 32717f9..3fb94ec 100644 --- a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java +++ b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java @@ -11,7 +11,9 @@ import com.mindskip.xzs.utility.ExamUtil; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperReadVM; +import com.mindskip.xzs.viewmodel.student.exam.ExamPaperReadVO; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM; @@ -123,10 +125,10 @@ } @RequestMapping(value = "/read/{id}", method = RequestMethod.POST) - public RestResponse<ExamPaperReadVM> read(@PathVariable Integer id) { + public RestResponse<ExamPaperReadVO> read(@PathVariable Integer id) { ExamPaperAnswer examPaperAnswer = examPaperAnswerService.selectById(id); - ExamPaperReadVM vm = new ExamPaperReadVM(); - ExamPaperEditRequestVM paper = examPaperService.examPaperToVM(examPaperAnswer.getExamPaperId()); + ExamPaperReadVO vm = new ExamPaperReadVO(); + ExamPaperEditRequestVO paper = examPaperService.examPaperToVM(examPaperAnswer.getExamPaperId()); ExamPaperSubmitVM answer = examPaperAnswerService.examPaperAnswerToVM(examPaperAnswer.getId()); vm.setPaper(paper); vm.setAnswer(answer); diff --git a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java index 35210ad..7dd6d8f 100644 --- a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java +++ b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java @@ -13,6 +13,7 @@ import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageResponseVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageVM; import com.github.pagehelper.PageInfo; @@ -46,9 +47,8 @@ @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) - public RestResponse<ExamPaperEditRequestVM> select(@PathVariable Integer id) { - ExamPaperEditRequestVM vm = examPaperService.examPaperToVM(id); - return RestResponse.ok(vm); + public RestResponse<ExamPaperEditRequestVO> select(@PathVariable Integer id) { + return RestResponse.ok(examPaperService.examPaperToVM(id)); } @@ -85,7 +85,7 @@ } @RequestMapping(value = "/edit", method = RequestMethod.POST) - public RestResponse<ExamPaperEditRequestVM> edit(@RequestBody @Valid ExamPaperEditRequestVM model) throws Exception { + public RestResponse<ExamPaperEditRequestVO> edit(@RequestBody @Valid ExamPaperEditRequestVM model) throws Exception { ExamPaperUser examPaperUser = new ExamPaperUser(); User user = getCurrentUser(); model.setDepartmentIds(new Integer[0]); @@ -97,8 +97,6 @@ examPaperUser.setDeleted("0"); examPaperUserService.add(examPaperUser); - - ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId()); - return RestResponse.ok(newVM); + return RestResponse.ok(examPaperService.examPaperToVM(examPaper.getId())); } } diff --git a/src/main/java/com/mindskip/xzs/controller/student/QuestionAnswerController.java b/src/main/java/com/mindskip/xzs/controller/student/QuestionAnswerController.java index a703e38..8e13452 100644 --- a/src/main/java/com/mindskip/xzs/controller/student/QuestionAnswerController.java +++ b/src/main/java/com/mindskip/xzs/controller/student/QuestionAnswerController.java @@ -9,9 +9,11 @@ import com.mindskip.xzs.utility.HtmlUtil; import com.mindskip.xzs.utility.JsonUtil; import com.mindskip.xzs.utility.PageInfoHelper; +import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO; import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitItemVM; import com.mindskip.xzs.viewmodel.student.question.answer.QuestionAnswerVM; +import com.mindskip.xzs.viewmodel.student.question.answer.QuestionAnswerVO; import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentRequestVM; import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM; import com.github.pagehelper.PageInfo; @@ -67,11 +69,11 @@ @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) - public RestResponse<QuestionAnswerVM> select(@PathVariable Integer id) { - QuestionAnswerVM vm = new QuestionAnswerVM(); + public RestResponse<QuestionAnswerVO> select(@PathVariable Integer id) { + QuestionAnswerVO vm = new QuestionAnswerVO(); ExamPaperQuestionCustomerAnswer examPaperQuestionCustomerAnswer = examPaperQuestionCustomerAnswerService.selectById(id); ExamPaperSubmitItemVM questionAnswerVM = examPaperQuestionCustomerAnswerService.examPaperQuestionCustomerAnswerToVM(examPaperQuestionCustomerAnswer); - QuestionEditRequestVM questionVM = questionService.getQuestionEditRequestVM(examPaperQuestionCustomerAnswer.getQuestionId()); + ExamQuestionVO questionVM = questionService.getQuestionEditRequestVM(examPaperQuestionCustomerAnswer.getQuestionId()); vm.setQuestionVM(questionVM); vm.setQuestionAnswerVM(questionAnswerVM); return RestResponse.ok(vm); diff --git a/src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperAnswerController.java b/src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperAnswerController.java index f1b747e..38e7f22 100644 --- a/src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperAnswerController.java +++ b/src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperAnswerController.java @@ -13,6 +13,8 @@ import com.mindskip.xzs.utility.ExamUtil; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; +import com.mindskip.xzs.viewmodel.student.exam.ExamPaperReadVO; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM; import com.github.pagehelper.PageInfo; @@ -123,10 +125,10 @@ @PostMapping(value = "/read/{id}") - public RestResponse<ExamPaperReadVM> read(@PathVariable Integer id) { - ExamPaperReadVM vm = new ExamPaperReadVM(); + public RestResponse<ExamPaperReadVO> read(@PathVariable Integer id) { + ExamPaperReadVO vm = new ExamPaperReadVO(); ExamPaperAnswer examPaperAnswer = examPaperAnswerService.selectById(id); - ExamPaperEditRequestVM paper = examPaperService.examPaperToVM(examPaperAnswer.getExamPaperId()); + ExamPaperEditRequestVO paper = examPaperService.examPaperToVM(examPaperAnswer.getExamPaperId()); ExamPaperSubmitVM answer = examPaperAnswerService.examPaperAnswerToVM(examPaperAnswer.getId()); vm.setPaper(paper); vm.setAnswer(answer); diff --git a/src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperController.java b/src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperController.java index 37f7df0..969ae02 100644 --- a/src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperController.java +++ b/src/main/java/com/mindskip/xzs/controller/wx/student/ExamPaperController.java @@ -9,6 +9,7 @@ import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageResponseVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageVM; import com.github.pagehelper.PageInfo; @@ -35,9 +36,8 @@ @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) - public RestResponse<ExamPaperEditRequestVM> select(@PathVariable Integer id) { - ExamPaperEditRequestVM vm = examPaperService.examPaperToVM(id); - return RestResponse.ok(vm); + public RestResponse<ExamPaperEditRequestVO> select(@PathVariable Integer id) { + return RestResponse.ok(examPaperService.examPaperToVM(id)); } diff --git a/src/main/java/com/mindskip/xzs/domain/enums/QuestionTypeEnum.java b/src/main/java/com/mindskip/xzs/domain/enums/QuestionTypeEnum.java index 7605048..2b21e84 100644 --- a/src/main/java/com/mindskip/xzs/domain/enums/QuestionTypeEnum.java +++ b/src/main/java/com/mindskip/xzs/domain/enums/QuestionTypeEnum.java @@ -12,8 +12,8 @@ GapFilling(4, "濉┖棰�"), ShortAnswer(5, "绠�绛旈"); - int code; - String name; + public final Integer code; + public final String name; QuestionTypeEnum(int code, String name) { this.code = code; @@ -61,16 +61,8 @@ return code; } - public void setCode(int code) { - this.code = code; - } - public String getName() { return name; - } - - public void setName(String name) { - this.name = name; } diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java index 4eef7e7..3fd1186 100644 --- a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java +++ b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java @@ -4,6 +4,7 @@ import com.mindskip.xzs.domain.User; import com.mindskip.xzs.domain.vo.PaperExcelVO; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM; import com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter; import com.mindskip.xzs.viewmodel.student.dashboard.PaperInfo; @@ -23,7 +24,7 @@ ExamPaper savePaperFromVM(ExamPaperEditRequestVM examPaperEditRequestVM, User user) throws Exception; - ExamPaperEditRequestVM examPaperToVM(Integer id); + ExamPaperEditRequestVO examPaperToVM(Integer id); List<PaperInfo> indexPaper(PaperFilter paperFilter); diff --git a/src/main/java/com/mindskip/xzs/service/QuestionService.java b/src/main/java/com/mindskip/xzs/service/QuestionService.java index 1446c12..ec59eaa 100644 --- a/src/main/java/com/mindskip/xzs/service/QuestionService.java +++ b/src/main/java/com/mindskip/xzs/service/QuestionService.java @@ -1,6 +1,7 @@ package com.mindskip.xzs.service; import com.mindskip.xzs.domain.Question; +import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO; import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM; import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM; import com.github.pagehelper.PageInfo; @@ -16,9 +17,9 @@ Question updateFullQuestion(QuestionEditRequestVM model); - QuestionEditRequestVM getQuestionEditRequestVM(Integer questionId); + ExamQuestionVO getQuestionEditRequestVM(Integer questionId); - QuestionEditRequestVM getQuestionEditRequestVM(Question question); + ExamQuestionVO getQuestionEditRequestVM(Question question); Integer selectAllCount(); 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 9d80ead..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; @@ -151,9 +150,9 @@ } @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()); @@ -172,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)), @@ -184,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; @@ -360,6 +360,7 @@ int remainingScore = totalScore; for (int i = 0; i < quantity - 1; i++) { + // 濡傛灉棰樻暟閲忚秴杩囦簡棰樺簱鏁伴噺锛屾姤閿� if (i >= scoresMap.size()) { throw new QuestionException(); } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java index d2ebc94..1c2a337 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java @@ -11,6 +11,7 @@ import com.mindskip.xzs.service.ExamTemplatesUserCountService; import com.mindskip.xzs.utility.convert.ExamTemplatesClassConvert; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperTitleItemVM; import com.mindskip.xzs.viewmodel.admin.exam.QuestionTypeVM; import lombok.extern.slf4j.Slf4j; @@ -147,7 +148,7 @@ vm.setType("1"); vm.setId(null); ExamPaper examPaper = examPaperService.savePaperFromVM(vm, user); - ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId()); + ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId()); count.setExamPaperId(examPaper.getId()); count.setUserId(user.getId()); examTemplatesUserCountService.add(count); @@ -166,7 +167,7 @@ vm.setType("1"); vm.setId(null); ExamPaper examPaper = examPaperService.savePaperFromVM(vm, user); - ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId()); + ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId()); // count.setExamPaperId(examPaper.getId()); // count.setUserId(user.getId()); // examTemplatesUserCountService.add(count); diff --git a/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java index 245f919..98e5ac6 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java @@ -19,6 +19,7 @@ import com.mindskip.xzs.utility.ModelMapperSingle; import com.mindskip.xzs.utility.ExamUtil; import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM; +import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO; import com.mindskip.xzs.viewmodel.admin.question.QuestionEditItemVM; import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM; import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM; @@ -132,7 +133,7 @@ } @Override - public QuestionEditRequestVM getQuestionEditRequestVM(Integer questionId) { + public ExamQuestionVO getQuestionEditRequestVM(Integer questionId) { //棰樼洰鏄犲皠 Question question = questionMapper.selectByPrimaryKey(questionId); List<QuestionSubject> list = questionSubjectService.getQuestion(questionId).stream().map(e->{ @@ -141,41 +142,41 @@ e.setSubName(subjectMapper.page(subject).get(0).getName()); return e; }).collect(Collectors.toList()); - QuestionEditRequestVM questionEditRequestVM = getQuestionEditRequestVM(question); + ExamQuestionVO questionEditRequestVM = getQuestionEditRequestVM(question); questionEditRequestVM.setQuestionSubjects(list); return questionEditRequestVM; } @Override - public QuestionEditRequestVM getQuestionEditRequestVM(Question question) { + public ExamQuestionVO getQuestionEditRequestVM(Question question) { //棰樼洰鏄犲皠 TextContent questionInfoTextContent = textContentService.selectById(question.getInfoTextContentId()); QuestionObject questionObject = JsonUtil.toJsonObject(questionInfoTextContent.getContent(), QuestionObject.class); - QuestionEditRequestVM questionEditRequestVM = modelMapper.map(question, QuestionEditRequestVM.class); + ExamQuestionVO questionEditRequestVM = modelMapper.map(question, ExamQuestionVO.class); questionEditRequestVM.setTitle(questionObject.getTitleContent()); //绛旀 - QuestionTypeEnum questionTypeEnum = QuestionTypeEnum.fromCode(question.getQuestionType()); - switch (questionTypeEnum) { - case SingleChoice: - case TrueFalse: - questionEditRequestVM.setCorrect(question.getCorrect()); - break; - case MultipleChoice: - questionEditRequestVM.setCorrectArray(ExamUtil.contentToArray(question.getCorrect())); - break; - case GapFilling: - List<String> correctContent = questionObject.getQuestionItemObjects().stream().map(d -> d.getContent()).collect(Collectors.toList()); - questionEditRequestVM.setCorrectArray(correctContent); - break; - case ShortAnswer: - questionEditRequestVM.setCorrect(questionObject.getCorrect()); - break; - default: - break; - } - questionEditRequestVM.setScore(ExamUtil.scoreToVM(question.getScore())); - questionEditRequestVM.setAnalyze(questionObject.getAnalyze()); +// QuestionTypeEnum questionTypeEnum = QuestionTypeEnum.fromCode(question.getQuestionType()); +// switch (questionTypeEnum) { +// case SingleChoice: +// case TrueFalse: +// questionEditRequestVM.setCorrect(question.getCorrect()); +// break; +// case MultipleChoice: +// questionEditRequestVM.setCorrectArray(ExamUtil.contentToArray(question.getCorrect())); +// break; +// case GapFilling: +// List<String> correctContent = questionObject.getQuestionItemObjects().stream().map(d -> d.getContent()).collect(Collectors.toList()); +// questionEditRequestVM.setCorrectArray(correctContent); +// break; +// case ShortAnswer: +// questionEditRequestVM.setCorrect(questionObject.getCorrect()); +// break; +// default: +// break; +// } +// questionEditRequestVM.setScore(ExamUtil.scoreToVM(question.getScore())); +// questionEditRequestVM.setAnalyze(questionObject.getAnalyze()); //棰樼洰椤规槧灏� diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVO.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVO.java new file mode 100644 index 0000000..460d271 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVO.java @@ -0,0 +1,52 @@ +package com.mindskip.xzs.viewmodel.admin.exam; + + +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.List; +import java.util.Map; + +@Data +public class ExamPaperEditRequestVO { + private Integer id; +// @NotNull + private Integer level; +// @NotNull + private Integer[] subjectId; + private Integer paperType; + private String name; + private Integer suggestTime; + + /** + * 鍙戝竷璇曞嵎閮ㄩ棬 + */ + private Integer deptId; + + private List<String> limitDateTime; + + private List<ExamPaperTitleItemVO> titleItems; + + private String score; + + //閮ㄩ棬ids + private Integer[] departmentIds; + + private Integer[] userIds; + + private Map<Integer,Integer> subjectSource; + + //闅忔満璇曞嵎鍚勪釜鏍囩棰樺瀷鏁伴噺 + private List<QuestionTypeVM> questionTypeVMS; + + private Integer aggregateSource; + + private Integer[][] userId; + private String type; + private String status; + private String menuIds; + +} diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperTitleItemVO.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperTitleItemVO.java new file mode 100644 index 0000000..5581747 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperTitleItemVO.java @@ -0,0 +1,19 @@ +package com.mindskip.xzs.viewmodel.admin.exam; + +import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO; +import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import java.util.List; + +@Data +public class ExamPaperTitleItemVO { + + private String name; + + // @Size(min = 1,message = "璇锋坊鍔犻鐩�") + private List<ExamQuestionVO> questionItems; +} + diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/question/ExamQuestionVO.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/question/ExamQuestionVO.java new file mode 100644 index 0000000..8e0b895 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/question/ExamQuestionVO.java @@ -0,0 +1,48 @@ +package com.mindskip.xzs.viewmodel.admin.question; + +import com.mindskip.xzs.domain.QuestionSubject; +import lombok.Data; +import java.util.List; + +/** + * @author锛歺p + * @date锛�2024/3/15 10:35 + */ +@Data +public class ExamQuestionVO { + + private Integer id; + + /** + * 棰樼洰绫诲瀷 + */ + private Integer questionType; + + /** + * 璇剧洰 + */ + private Integer subjectId; + + /** + * 棰樺共 + */ + private String title; + + private String sbNames; + + private List<QuestionSubject> questionSubjects; + + //绛旀 + private List<QuestionEditItemVM> items; + + private Integer itemOrder; + + private String department; + + + private String a; + private String b; + private String c; + private String d; + +} diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditRequestVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditRequestVM.java index 55a2600..9ab912f 100644 --- a/src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditRequestVM.java +++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditRequestVM.java @@ -47,6 +47,8 @@ private String department; + private List<QuestionSubject> questionSubjects; + private String a; private String b; @@ -61,7 +63,7 @@ this.department = department; } - private List<QuestionSubject> questionSubjects; + public List<QuestionSubject> getQuestionSubjects() { return questionSubjects; diff --git a/src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperReadVO.java b/src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperReadVO.java new file mode 100644 index 0000000..c68d990 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperReadVO.java @@ -0,0 +1,11 @@ +package com.mindskip.xzs.viewmodel.student.exam; + +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; +import lombok.Data; + +@Data +public class ExamPaperReadVO { + private ExamPaperEditRequestVO paper; + private ExamPaperSubmitVM answer; + +} diff --git a/src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionAnswerVO.java b/src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionAnswerVO.java new file mode 100644 index 0000000..bbe9b12 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionAnswerVO.java @@ -0,0 +1,14 @@ +package com.mindskip.xzs.viewmodel.student.question.answer; + +import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO; +import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitItemVM; +import lombok.Data; + +@Data +public class QuestionAnswerVO { + + private ExamQuestionVO questionVM; + + private ExamPaperSubmitItemVM questionAnswerVM; + +} -- Gitblit v1.8.0