From ccca8c65b3c76a9021a471a3667d61d965a4f2cb Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期六, 11 五月 2024 18:04:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/mindskip/xzs/controller/student/QuestionAnswerController.java |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

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 de62a9d..8e13452 100644
--- a/src/main/java/com/mindskip/xzs/controller/student/QuestionAnswerController.java
+++ b/src/main/java/com/mindskip/xzs/controller/student/QuestionAnswerController.java
@@ -2,26 +2,26 @@
 
 import com.mindskip.xzs.base.BaseApiController;
 import com.mindskip.xzs.base.RestResponse;
-import com.mindskip.xzs.domain.ExamPaperQuestionCustomerAnswer;
-import com.mindskip.xzs.domain.Subject;
-import com.mindskip.xzs.domain.TextContent;
+import com.mindskip.xzs.domain.*;
 import com.mindskip.xzs.domain.question.QuestionObject;
-import com.mindskip.xzs.service.ExamPaperQuestionCustomerAnswerService;
-import com.mindskip.xzs.service.QuestionService;
-import com.mindskip.xzs.service.SubjectService;
-import com.mindskip.xzs.service.TextContentService;
+import com.mindskip.xzs.service.*;
 import com.mindskip.xzs.utility.DateTimeUtil;
 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;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController("StudentQuestionAnswerController")
 @RequestMapping(value = "/api/student/question/answer")
@@ -31,13 +31,15 @@
     private final QuestionService questionService;
     private final TextContentService textContentService;
     private final SubjectService subjectService;
+    private final QuestionSubjectService questionSubjectService;
 
     @Autowired
-    public QuestionAnswerController(ExamPaperQuestionCustomerAnswerService examPaperQuestionCustomerAnswerService, QuestionService questionService, TextContentService textContentService, SubjectService subjectService) {
+    public QuestionAnswerController(ExamPaperQuestionCustomerAnswerService examPaperQuestionCustomerAnswerService, QuestionService questionService, TextContentService textContentService, SubjectService subjectService, QuestionSubjectService questionSubjectService) {
         this.examPaperQuestionCustomerAnswerService = examPaperQuestionCustomerAnswerService;
         this.questionService = questionService;
         this.textContentService = textContentService;
         this.subjectService = subjectService;
+        this.questionSubjectService = questionSubjectService;
     }
 
     @RequestMapping(value = "/page", method = RequestMethod.POST)
@@ -45,14 +47,21 @@
         model.setCreateUser(getCurrentUser().getId());
         PageInfo<ExamPaperQuestionCustomerAnswer> pageInfo = examPaperQuestionCustomerAnswerService.studentPage(model);
         PageInfo<QuestionPageStudentResponseVM> page = PageInfoHelper.copyMap(pageInfo, q -> {
-            Subject subject = subjectService.selectById(q.getSubjectId());
+//            Subject subject = subjectService.selectById(q.getSubjectId());
+            Integer[] ids = questionSubjectService.getQuestion(q.getQuestionId())
+                    .stream().map(QuestionSubject::getSubjectId).toArray(Integer[]::new);
+            String name = "";
+            if (ids.length > 0) {
+                name = subjectService.selectByIds(ids)
+                        .stream().map(Subject::getName).collect(Collectors.joining(","));
+            }
             QuestionPageStudentResponseVM vm = modelMapper.map(q, QuestionPageStudentResponseVM.class);
             vm.setCreateTime(DateTimeUtil.dateFormat(q.getCreateTime()));
             TextContent textContent = textContentService.selectById(q.getQuestionTextContentId());
             QuestionObject questionObject = JsonUtil.toJsonObject(textContent.getContent(), QuestionObject.class);
             String clearHtml = HtmlUtil.clear(questionObject.getTitleContent());
             vm.setShortTitle(clearHtml);
-            vm.setSubjectName(subject.getName());
+            vm.setSubjectName(name);
             return vm;
         });
         return RestResponse.ok(page);
@@ -60,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);

--
Gitblit v1.8.0