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/admin/QuestionController.java |   44 +++++++++++++++++++++++++++++---------------
 1 files changed, 29 insertions(+), 15 deletions(-)

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 a7e40d9..dec03bc 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
@@ -4,7 +4,9 @@
 import com.mindskip.xzs.base.RestResponse;
 import com.mindskip.xzs.base.SystemCode;
 import com.mindskip.xzs.domain.Question;
+import com.mindskip.xzs.domain.Subject;
 import com.mindskip.xzs.domain.TextContent;
+import com.mindskip.xzs.domain.enums.QuestionSourceEnum;
 import com.mindskip.xzs.domain.enums.QuestionTypeEnum;
 import com.mindskip.xzs.domain.question.QuestionObject;
 import com.mindskip.xzs.repository.DepartmentMapper;
@@ -50,7 +52,7 @@
     }
 
     @RequestMapping(value = "/page", method = RequestMethod.POST)
-    public RestResponse<PageInfo<QuestionResponseVM>> pageList(@RequestBody QuestionPageRequestVM model) {
+    public RestResponse<PageInfo<QuestionResponseVM>> pageList(@RequestBody @Valid QuestionPageRequestVM model) {
         PageInfo<Question> pageInfo = questionService.page(model);
         PageInfo<QuestionResponseVM> page = PageInfoHelper.copyMap(pageInfo, q -> {
             QuestionResponseVM vm = modelMapper.map(q, QuestionResponseVM.class);
@@ -88,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));
     }
 
 
@@ -121,12 +122,12 @@
     }
 
     @PostMapping("/import")
-    public void importUser(@RequestPart("file") MultipartFile file) throws Exception {
+    public RestResponse importUser(@RequestPart("file") MultipartFile file) throws Exception {
         List<QuestionEditVO> questionEditVOS = ExcelUtils.readMultipartFile(file, QuestionEditVO.class)
                 .stream().map(e -> {
                     e.setQuestionType(QuestionTypeEnum.get(e.getType()));
-                    e.setSubjectId(subjectMapper.getName(e.getSubjectName()).getId());
-                    e.setGradeLevel(departmentMapper.getName(e.getDepartment()).getId());
+//                    e.setSubjectId(subjectMapper.getName(e.getSbNames()).getId());
+//                    e.setGradeLevel(departmentMapper.getName(e.getDepartment()).getId());
                     return e;
                 }).collect(Collectors.toList());
 
@@ -145,25 +146,38 @@
             questionEditItemVM.setPrefix("B");
             questionEditItemVM.setContent(vm.getB());
             questionEditItemVMS.add(questionEditItemVM);
-            questionEditItemVM = new QuestionEditItemVM();
-            questionEditItemVM.setPrefix("C");
-            questionEditItemVM.setContent(vm.getC());
-            questionEditItemVMS.add(questionEditItemVM);
-            questionEditItemVM = new QuestionEditItemVM();
-            questionEditItemVM.setPrefix("D");
-            questionEditItemVM.setContent(vm.getD());
-            questionEditItemVMS.add(questionEditItemVM);
+            if(!"".equals(vm.getC()) && vm.getC()!=null){
+                questionEditItemVM = new QuestionEditItemVM();
+                questionEditItemVM.setPrefix("C");
+                questionEditItemVM.setContent(vm.getC());
+                questionEditItemVMS.add(questionEditItemVM);
+            }
+            if(!"".equals(vm.getD()) && vm.getD()!=null){
+                questionEditItemVM = new QuestionEditItemVM();
+                questionEditItemVM.setPrefix("D");
+                questionEditItemVM.setContent(vm.getD());
+                questionEditItemVMS.add(questionEditItemVM);
+            }
             vm.setItems(questionEditItemVMS);
             List<String> str = Arrays.asList(vm.getCorrect().split(","));
 
+            List<Subject> subjectList = subjectMapper.getNames(vm.getSbNames().split(","));
+
+            Integer[] arr =subjectList.stream()
+                    .map(Subject::getId).toArray(Integer[]::new);
+
+            vm.setSubjectIds(arr);
             //澶氶��
             if (str.size() > 1) {
                 vm.setCorrectArray(str);
                 vm.setCorrect(null);
             }
+            vm.setScore(QuestionSourceEnum.fromType(vm.getQuestionType()).toString());
+            vm.setDifficult(4);
 
             questionService.insertFullQuestion(vm, getCurrentUser().getId());
             questionEditItemVMS.clear();
         }
+        return RestResponse.ok();
     }
 }

--
Gitblit v1.8.0