From c50e176c4a6b9331d2d1c0520bafb18f54f0dee6 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 08 三月 2024 17:35:10 +0800
Subject: [PATCH] 部门增加管理员

---
 src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java |   73 ++++++++++++++++++++++++++----------
 1 files changed, 53 insertions(+), 20 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 30cdbcc..b9c60e0 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
@@ -4,19 +4,21 @@
 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.domain.vo.ExamVO;
-import com.mindskip.xzs.service.QuestionService;
-import com.mindskip.xzs.service.TextContentService;
+import com.mindskip.xzs.repository.DepartmentMapper;
+import com.mindskip.xzs.repository.SubjectMapper;
+import com.mindskip.xzs.service.*;
 import com.mindskip.xzs.utility.*;
 import com.mindskip.xzs.utility.convert.QuestionClassConvert;
 import com.mindskip.xzs.utility.excel.ExcelUtils;
+import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM;
 import com.mindskip.xzs.viewmodel.admin.question.*;
 import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -34,14 +36,23 @@
     private final QuestionService questionService;
     private final TextContentService textContentService;
 
+    private final SubjectMapper subjectMapper;
+
+    private final DepartmentMapper departmentMapper;
+
+    private final QuestionSubjectService questionSubjectService;
+
     @Autowired
-    public QuestionController(QuestionService questionService, TextContentService textContentService) {
+    public QuestionController(QuestionService questionService, TextContentService textContentService, SubjectMapper subjectMapper, DepartmentMapper departmentMapper, QuestionSubjectService questionSubjectService) {
         this.questionService = questionService;
         this.textContentService = textContentService;
+        this.subjectMapper = subjectMapper;
+        this.departmentMapper = departmentMapper;
+        this.questionSubjectService = questionSubjectService;
     }
 
     @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);
@@ -51,6 +62,12 @@
             QuestionObject questionObject = JsonUtil.toJsonObject(textContent.getContent(), QuestionObject.class);
             String clearHtml = HtmlUtil.clear(questionObject.getTitleContent());
             vm.setShortTitle(clearHtml);
+            vm.setQuestionSubjects(questionSubjectService.getQuestion(vm.getId()).stream().map(e -> {
+                SubjectPageRequestVM subjectPageRequestVM = new SubjectPageRequestVM();
+                subjectPageRequestVM.setId(e.getSubjectId());
+                e.setSubName(subjectMapper.page(subjectPageRequestVM).get(0).getName());
+                return e;
+            }).collect(Collectors.toList()));
             return vm;
         });
         return RestResponse.ok(page);
@@ -81,10 +98,7 @@
 
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
     public RestResponse delete(@PathVariable Integer id) {
-        Question question = questionService.selectById(id);
-        question.setDeleted(true);
-        questionService.updateByIdFilter(question);
-        return RestResponse.ok();
+        return RestResponse.ok(questionService.remove(id));
     }
 
     private RestResponse validQuestionEditRequestVM(QuestionEditRequestVM model) {
@@ -109,8 +123,14 @@
     }
 
     @PostMapping("/import")
-    public void importUser(@RequestPart("file") MultipartFile file) throws Exception {
-        List<QuestionEditVO> questionEditVOS = ExcelUtils.readMultipartFile(file, QuestionEditVO.class);
+    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.getSbNames()).getId());
+//                    e.setGradeLevel(departmentMapper.getName(e.getDepartment()).getId());
+                    return e;
+                }).collect(Collectors.toList());
 
         List<QuestionEditRequestVM> list = QuestionClassConvert.INSTANCE.QuestionEditVOListToQuestionEditRequestVMList(questionEditVOS);
 
@@ -127,25 +147,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