17808
2023-11-09 0c29b611124679e564f2e5bd63f10f8c8ac0ba81
成绩统计后端
5个文件已修改
130 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperAnswerMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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(){
src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
@@ -37,4 +37,5 @@
    List<ExamPaperAnswer> getByScorePaperIdAndUserId(@Param("scoreTemplatesUserCounts")List<ScoreTemplatesUserCount> scoreTemplatesUserCounts);
    List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO);
}
src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java
@@ -57,9 +57,9 @@
    List<ExamPaperAnswer> getByExamPaperIdAndUserId(List<ExamTemplatesUserCount> examTemplatesUserCount);
    List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade);
    PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade);
    List<ExamPaperAnswer> getByScorePaperIdAndUserId(List<ScoreTemplatesUserCount> scoreTemplatesUserCounts);
    List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO);
    PageInfo<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO);
}
src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java
@@ -296,8 +296,9 @@
    }
    @Override
    public List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade) {
        return examPaperAnswerMapper.adminPageByGrade(grade);
    public PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade) {
        return PageHelper.startPage(grade.getPageIndex(), grade.getPageSize(), "id desc").doSelectPageInfo(() ->
                examPaperAnswerMapper.adminPageByGrade(grade));
    }
    @Override
@@ -306,7 +307,8 @@
    }
    @Override
    public List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO) {
        return examPaperAnswerMapper.getByCreatUser(scoreTemplatesCountVO);
    public PageInfo<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO) {
        return PageHelper.startPage(scoreTemplatesCountVO.getPageIndex(), scoreTemplatesCountVO.getPageSize(), "id desc").doSelectPageInfo(() ->
                examPaperAnswerMapper.getByCreatUser(scoreTemplatesCountVO));
    }
}
src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -339,4 +339,5 @@
      from t_exam_paper_answer where create_user = #{createUser} and create_time between '2023-01-01'and '2023-12-31'
    </select>
</mapper>