From 0c29b611124679e564f2e5bd63f10f8c8ac0ba81 Mon Sep 17 00:00:00 2001
From: 17808 <1780814303@qq.com>
Date: 星期四, 09 十一月 2023 12:09:22 +0800
Subject: [PATCH] 成绩统计后端

---
 src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java |  114 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 67 insertions(+), 47 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java
index 47a43cc..f955916 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java
@@ -4,8 +4,11 @@
 import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.base.BaseApiController;
 import com.mindskip.xzs.base.RestResponse;
-import com.mindskip.xzs.domain.*;
+import com.mindskip.xzs.domain.ExamPaperAnswer;
+import com.mindskip.xzs.domain.User;
+import com.mindskip.xzs.domain.UserDepartment;
 import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO;
+import com.mindskip.xzs.repository.ExamPaperAnswerMapper;
 import com.mindskip.xzs.service.*;
 import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,8 +17,8 @@
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.ArrayList;
+import java.util.List;
 
 @RestController("AdminExamPaperGradeController")
 @RequestMapping(value = "/api/admin/examPaperGrade")
@@ -33,8 +36,10 @@
 
     private final UserDepartMentService userDepartMentService;
 
+    private final ExamPaperAnswerMapper examPaperAnswerMapper;
+
     @Autowired
-    public ExamPaperGradeController(ExamPaperAnswerService examPaperAnswerService, SubjectService subjectService, UserService userService, ExamPaperSubjectService examPaperSubjectService, ScoreTemplatesUserCountService scoreTemplatesUserCountService,ExamPaperUserService examPaperUserService,UserDepartMentService userDepartMentService) {
+    public ExamPaperGradeController(ExamPaperAnswerService examPaperAnswerService, SubjectService subjectService, UserService userService, ExamPaperSubjectService examPaperSubjectService, ScoreTemplatesUserCountService scoreTemplatesUserCountService, ExamPaperUserService examPaperUserService, UserDepartMentService userDepartMentService, ExamPaperAnswerMapper examPaperAnswerMapper) {
         this.examPaperAnswerService = examPaperAnswerService;
         this.subjectService = subjectService;
         this.userService = userService;
@@ -42,6 +47,7 @@
         this.scoreTemplatesUserCountService = scoreTemplatesUserCountService;
         this.examPaperUserService = examPaperUserService;
         this.userDepartMentService = userDepartMentService;
+        this.examPaperAnswerMapper = examPaperAnswerMapper;
     }
 
 
@@ -101,57 +107,71 @@
 
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     public RestResponse<PageInfo<ExamPaperAnswer>> pageJudgeList(@RequestBody ExamPaperGradePageRequestVM grade) {
-        List<ExamPaperAnswer> list = examPaperAnswerService.adminPageByGrade(grade);
-        for (ExamPaperAnswer e : list) {
-            User user = userService.selectByIdName(e.getCreateUser(), grade.getUserName());
-            if (user==null){
-                return null;
+        List<ExamPaperAnswer> filteredList9 = new ArrayList<>();
+        PageInfo<User> info = PageHelper.startPage(grade.getPageIndex(), grade.getPageSize(), "id desc").doSelectPageInfo(() ->
+                userService.getUsers());
+        for (User user : info.getList()) {
+            if(user.getRealName().equals("绠$悊鍛�")){
+                continue;
             }
-            ExamPaperAnswer examPaperAnswer = examPaperAnswerService.getById(e.getId());
-            Integer[] ids = examPaperSubjectService.getByExamPaperId(examPaperAnswer.getExamPaperId()).stream().map(ExamPaperSubject::getSubjectId).toArray(Integer[]::new);
-            String names = "";
-            if (ids.length > 0) {
-                names = subjectService.selectByIds(ids)
-                        .stream().map(Subject::getName).collect(Collectors.joining(","));
-            }
-            Integer userId = examPaperUserService.getByPaperIdAndCreatUser(e.getExamPaperId(), e.getCreateUser());
-            if(userId == null){
-                return null;
-            }
-            e.setUserName(user.getRealName());
+            ExamPaperAnswer answer = new ExamPaperAnswer();
+            answer.setCreateUser(user.getId());
+            answer.setUserName(user.getRealName());
+            ScoreTemplatesCountVO vo = new ScoreTemplatesCountVO();
+            vo.setCreateUser(user.getId());
+            List<ExamPaperAnswer> byCreatUser = examPaperAnswerMapper.getByCreatUser(vo);
+            answer.setCounts(byCreatUser.size());
+            filteredList9.add(answer);
         }
-        List<ExamPaperAnswer> collect = list.stream()
-                .filter(exam -> exam != null)
-                .collect(Collectors.toList());
-        ArrayList<ExamPaperAnswer> list2 = new ArrayList<>();
-        Map<String, Long> collect1 = collect.stream().collect(Collectors.groupingBy(ExamPaperAnswer::getPaperName, Collectors.counting()));
-        collect.forEach(t->t.setCounts(Math.toIntExact(collect1.getOrDefault(t.getPaperName(),0L))));
-        Map<String, List<ExamPaperAnswer>> collect2 = collect.stream().collect(Collectors.groupingBy(ExamPaperAnswer::getUserName));
-        List<ExamPaperAnswer> filteredList1 = new ArrayList<>();
-        Set<String> uniqueUserNames = new HashSet<>();
-        collect2.forEach((key, value) -> {
-            value.forEach(item -> {
-                item.setUserName(key);
-                item.setCounts(value.size());
-            });
-            list2.addAll(value);
-        });
-        for (ExamPaperAnswer item : list2) {
-            if (uniqueUserNames.add(item.getUserName())) {
-                filteredList1.add(item);
-            }
-        }
+//        PageInfo<ExamPaperAnswer> list = examPaperAnswerService.adminPageByGrade(grade);
+//        for (ExamPaperAnswer e : list.getList()) {
+//            User user = userService.selectByIdName(e.getCreateUser(), grade.getUserName());
+//            if (user==null){
+//                return null;
+//            }
+//            ExamPaperAnswer examPaperAnswer = examPaperAnswerService.getById(e.getId());
+//            Integer[] ids = examPaperSubjectService.getByExamPaperId(examPaperAnswer.getExamPaperId()).stream().map(ExamPaperSubject::getSubjectId).toArray(Integer[]::new);
+//            String names = "";
+//            if (ids.length > 0) {
+//                names = subjectService.selectByIds(ids)
+//                        .stream().map(Subject::getName).collect(Collectors.joining(","));
+//            }
+//            Integer userId = examPaperUserService.getByPaperIdAndCreatUser(e.getExamPaperId(), e.getCreateUser());
+//            if(userId == null){
+//                return null;
+//            }
+//            e.setUserName(user.getRealName());
+//        }
+//        List<ExamPaperAnswer> collect = list.getList().stream()
+//                .filter(exam -> exam != null)
+//                .collect(Collectors.toList());
+//        ArrayList<ExamPaperAnswer> list2 = new ArrayList<>();
+//        Map<String, Long> collect1 = collect.stream().collect(Collectors.groupingBy(ExamPaperAnswer::getPaperName, Collectors.counting()));
+//        collect.forEach(t->t.setCounts(Math.toIntExact(collect1.getOrDefault(t.getPaperName(),0L))));
+//        Map<String, List<ExamPaperAnswer>> collect2 = collect.stream().collect(Collectors.groupingBy(ExamPaperAnswer::getUserName));
+//        List<ExamPaperAnswer> filteredList1 = new ArrayList<>();
+//        Set<String> uniqueUserNames = new HashSet<>();
+//        collect2.forEach((key, value) -> {
+//            value.forEach(item -> {
+//                item.setUserName(key);
+//                item.setCounts(value.size());
+//            });
+//            list2.addAll(value);
+//        });
+//        for (ExamPaperAnswer item : list2) {
+//            if (uniqueUserNames.add(item.getUserName())) {
+//                filteredList1.add(item);
+//            }
+//        }
         PageHelper.startPage(grade.getPageIndex(), grade.getPageSize());
-        PageInfo<ExamPaperAnswer> pageInfoPageInfo = new PageInfo<>(filteredList1);
+        PageInfo<ExamPaperAnswer> pageInfoPageInfo = new PageInfo<>(filteredList9);
         return RestResponse.ok(pageInfoPageInfo);
     }
 
     @RequestMapping(value = "/details", method = RequestMethod.POST)
     public RestResponse<PageInfo<ExamPaperAnswer>> selectSource(@RequestBody ScoreTemplatesCountVO scoreTemplatesCountVO) throws Exception {
-        PageHelper.startPage(scoreTemplatesCountVO.getPageIndex(), scoreTemplatesCountVO.getPageSize());
-        List<ExamPaperAnswer> byCreatUser = examPaperAnswerService.getByCreatUser(scoreTemplatesCountVO);
-        PageInfo<ExamPaperAnswer> pageInfoPageInfo = new PageInfo<>(byCreatUser);
-        return RestResponse.ok(pageInfoPageInfo);
+      return RestResponse.ok(examPaperAnswerService.getByCreatUser(scoreTemplatesCountVO));
+
     }
     @RequestMapping(value = "/updates", method = RequestMethod.POST)
     public void updateDepartment(){

--
Gitblit v1.8.0