From 77be36cc9077b09186e69440f3204f9e623c335a Mon Sep 17 00:00:00 2001
From: qirong <2032486488@qq.com>
Date: 星期一, 26 六月 2023 15:52:24 +0800
Subject: [PATCH] 试卷题目顺序打乱

---
 src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java |   52 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 48 insertions(+), 4 deletions(-)

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 9ec1659..0ca9dc8 100644
--- a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java
+++ b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java
@@ -3,8 +3,13 @@
 import com.mindskip.xzs.base.BaseApiController;
 import com.mindskip.xzs.base.RestResponse;
 import com.mindskip.xzs.domain.ExamPaper;
+import com.mindskip.xzs.domain.ExamPaperDepartment;
+import com.mindskip.xzs.domain.ExamPaperUser;
+import com.mindskip.xzs.domain.User;
 import com.mindskip.xzs.service.ExamPaperAnswerService;
+import com.mindskip.xzs.service.ExamPaperDepartmentService;
 import com.mindskip.xzs.service.ExamPaperService;
+import com.mindskip.xzs.service.ExamPaperUserService;
 import com.mindskip.xzs.utility.DateTimeUtil;
 import com.mindskip.xzs.utility.PageInfoHelper;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
@@ -16,6 +21,9 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController("StudentExamPaperController")
 @RequestMapping(value = "/api/student/exam/paper")
@@ -24,12 +32,16 @@
     private final ExamPaperService examPaperService;
     private final ExamPaperAnswerService examPaperAnswerService;
     private final ApplicationEventPublisher eventPublisher;
+    private final ExamPaperUserService examPaperUserService;
+    private final ExamPaperDepartmentService examPaperDepartmentService;
 
     @Autowired
-    public ExamPaperController(ExamPaperService examPaperService, ExamPaperAnswerService examPaperAnswerService, ApplicationEventPublisher eventPublisher) {
+    public ExamPaperController(ExamPaperService examPaperService, ExamPaperAnswerService examPaperAnswerService, ApplicationEventPublisher eventPublisher, ExamPaperUserService examPaperUserService, ExamPaperDepartmentService examPaperDepartmentService) {
         this.examPaperService = examPaperService;
         this.examPaperAnswerService = examPaperAnswerService;
         this.eventPublisher = eventPublisher;
+        this.examPaperUserService = examPaperUserService;
+        this.examPaperDepartmentService = examPaperDepartmentService;
     }
 
 
@@ -43,11 +55,43 @@
     @RequestMapping(value = "/pageList", method = RequestMethod.POST)
     public RestResponse<PageInfo<ExamPaperPageResponseVM>> pageList(@RequestBody @Valid ExamPaperPageVM model) {
         PageInfo<ExamPaper> pageInfo = examPaperService.studentPage(model);
+        User user = getCurrentUser();
         PageInfo<ExamPaperPageResponseVM> page = PageInfoHelper.copyMap(pageInfo, e -> {
-            ExamPaperPageResponseVM vm = modelMapper.map(e, ExamPaperPageResponseVM.class);
-            vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
-            return vm;
+            Integer[] ids = examPaperDepartmentService.getByExamPaperId(e.getId())
+                    .stream().map(ExamPaperDepartment::getDepartmentId).toArray(Integer[]::new);
+            if (Arrays.asList(ids).contains(user.getUserLevel())) {
+                ExamPaperPageResponseVM vm = modelMapper.map(e, ExamPaperPageResponseVM.class);
+                vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
+                return vm;
+            }
+            return null;
         });
+        Integer[] userIds = examPaperUserService.getByUserId(user.getId())
+                .stream().map(ExamPaperUser::getExamPaperId).toArray(Integer[]::new);
+
+        if (userIds.length > 0) {
+            List<ExamPaper> papers = examPaperService.gets(userIds);
+            pageInfo.getList().addAll(papers);
+        }
+        page.setList(page.getList().stream().filter(e -> e != null).collect(Collectors.toList()));
         return RestResponse.ok(page);
     }
+
+    @RequestMapping(value = "/edit", method = RequestMethod.POST)
+    public RestResponse<ExamPaperEditRequestVM> edit(@RequestBody @Valid ExamPaperEditRequestVM model) throws Exception {
+        ExamPaperUser examPaperUser = new ExamPaperUser();
+        User user = getCurrentUser();
+        model.setDepartmentIds(new Integer[0]);
+        model.setPaperType(7);
+        ExamPaper examPaper = examPaperService.savePaperFromVM(model, getCurrentUser());
+
+        examPaperUser.setExamPaperId(examPaper.getId());
+        examPaperUser.setUserId(user.getId());
+        examPaperUser.setDeleted("0");
+        examPaperUserService.add(examPaperUser);
+
+
+        ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId());
+        return RestResponse.ok(newVM);
+    }
 }

--
Gitblit v1.8.0