From f7a47d7de0eaab8c45877659642397fadd2a5dda Mon Sep 17 00:00:00 2001 From: 17808 <1780814303@qq.com> Date: 星期四, 09 十一月 2023 10:44:44 +0800 Subject: [PATCH] 成绩统计后端 --- src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java | 172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 172 insertions(+), 0 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 new file mode 100644 index 0000000..47a43cc --- /dev/null +++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java @@ -0,0 +1,172 @@ +package com.mindskip.xzs.controller.admin; + +import com.github.pagehelper.PageHelper; +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.vo.ScoreTemplatesCountVO; +import com.mindskip.xzs.service.*; +import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.*; +import java.util.stream.Collectors; + +@RestController("AdminExamPaperGradeController") +@RequestMapping(value = "/api/admin/examPaperGrade") +public class ExamPaperGradeController extends BaseApiController { + + private final ExamPaperAnswerService examPaperAnswerService; + + private final SubjectService subjectService; + private final UserService userService; + private final ExamPaperSubjectService examPaperSubjectService; + + private final ScoreTemplatesUserCountService scoreTemplatesUserCountService; + + private final ExamPaperUserService examPaperUserService; + + private final UserDepartMentService userDepartMentService; + + @Autowired + public ExamPaperGradeController(ExamPaperAnswerService examPaperAnswerService, SubjectService subjectService, UserService userService, ExamPaperSubjectService examPaperSubjectService, ScoreTemplatesUserCountService scoreTemplatesUserCountService,ExamPaperUserService examPaperUserService,UserDepartMentService userDepartMentService) { + this.examPaperAnswerService = examPaperAnswerService; + this.subjectService = subjectService; + this.userService = userService; + this.examPaperSubjectService = examPaperSubjectService; + this.scoreTemplatesUserCountService = scoreTemplatesUserCountService; + this.examPaperUserService = examPaperUserService; + this.userDepartMentService = userDepartMentService; + } + + +// @RequestMapping(value = "/page", method = RequestMethod.POST) +// public RestResponse<PageInfo<ExamPaperAnswerPageResponseVM>> pageJudgeList(@RequestBody ExamPaperGradePageRequestVM grade) { +// PageInfo<ExamPaperAnswer> pageInfo = examPaperAnswerService.adminPageByGrade(grade); +// PageInfo<ExamPaperAnswerPageResponseVM> page = PageInfoHelper.copyMap(pageInfo, e -> { +// ExamPaperAnswerPageResponseVM vm = modelMapper.map(e, ExamPaperAnswerPageResponseVM.class); +// User user = userService.selectByIdName(e.getCreateUser(), grade.getUserName()); +// if (user == null) { +// return null; +// } +// ExamPaperAnswer examPaperAnswer = examPaperAnswerService.getById(vm.getId()); +// Integer[] ids = examPaperSubjectService.getByExamPaperId(examPaperAnswer.getExamPaperId()) +// .stream().map(ExamPaperSubject::getSubjectId).toArray(Integer[]::new); +// String name = ""; +// if (ids.length > 0) { +// name = subjectService.selectByIds(ids) +// .stream().map(Subject::getName).collect(Collectors.joining(",")); +// } +// Integer userId = examPaperUserService.getByPaperIdAndCreatUser(e.getExamPaperId(),e.getCreateUser()); +// if(userId == null){ +// return null; +// } +// vm.setCreateUser(e.getCreateUser()); +// vm.setUserId(userId); +// vm.setSubjectName(name); +// vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); +// vm.setUserName(user.getRealName()); +// return vm; +// }); +// List<ExamPaperAnswerPageResponseVM> list = page.getList(); +// List<ExamPaperAnswerPageResponseVM> filteredList = list.stream() +// .filter(exam -> exam != null) +// .collect(Collectors.toList()); +// ArrayList<ExamPaperAnswerPageResponseVM> list2 = new ArrayList<>(); +// Map<String, Long> collect = filteredList.stream().collect(Collectors.groupingBy(ExamPaperAnswerPageResponseVM::getPaperName, Collectors.counting())); +// filteredList.forEach(vm -> vm.setCounts(Math.toIntExact(collect.getOrDefault(vm.getPaperName(), 0L)))); +// Map<String, List<ExamPaperAnswerPageResponseVM>> collect1 = filteredList.stream().collect(Collectors.groupingBy(ExamPaperAnswerPageResponseVM::getUserName)); +// List<ExamPaperAnswerPageResponseVM> filteredList1 = new ArrayList<>(); +// Set<String> uniqueUserNames = new HashSet<>(); +// collect1.forEach((key, value) -> { +// value.forEach(item -> { +// item.setUserName(key); +// item.setCounts(value.size()); +// }); +// list2.addAll(value); +// }); +// for (ExamPaperAnswerPageResponseVM item : list2) { +// if (uniqueUserNames.add(item.getUserName())) { +// filteredList1.add(item); +// } +// } +// page.setList(filteredList1); +// return RestResponse.ok(page); +// } + + @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; + } + 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.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); + 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); + } + @RequestMapping(value = "/updates", method = RequestMethod.POST) + public void updateDepartment(){ + List<User> users = userService.getUsers(); + for (User user : users) { + Integer id = user.getId(); + Integer userLevel = user.getUserLevel(); + UserDepartment userDepartment = userDepartMentService.selectByUser(id); + if (userDepartment!=null){ + userDepartment.setDepartmentId(userLevel); + userDepartMentService.updateUserDepartMent(userDepartment); + } + } + } + + + +} -- Gitblit v1.8.0