| | |
| | | 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.context.WebContext; |
| | | import com.mindskip.xzs.domain.ExamPaperAnswer; |
| | | import com.mindskip.xzs.domain.User; |
| | | import com.mindskip.xzs.domain.UserDepartment; |
| | | import com.mindskip.xzs.repository.DepartmentMapper; |
| | | import com.mindskip.xzs.repository.ExamPaperAnswerMapper; |
| | | import com.mindskip.xzs.repository.UserDepartmentMapper; |
| | | import com.mindskip.xzs.repository.UserMapper; |
| | | import com.mindskip.xzs.service.*; |
| | | import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | 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; |
| | | import java.util.List; |
| | | |
| | | @RestController("AdminExamPaperGradeController") |
| | | @RequestMapping(value = "/api/admin/examPaperGrade") |
| | | @RequiredArgsConstructor |
| | | public class ExamPaperGradeController extends BaseApiController { |
| | | |
| | | private final ExamPaperAnswerService examPaperAnswerService; |
| | | |
| | | private final SubjectService subjectService; |
| | | private final UserService userService; |
| | | private final UserMapper userMapper; |
| | | private final ExamPaperSubjectService examPaperSubjectService; |
| | | |
| | | private final ScoreTemplatesUserCountService scoreTemplatesUserCountService; |
| | | |
| | | private final ExamPaperUserService examPaperUserService; |
| | | |
| | | private final UserDepartMentService userDepartMentService; |
| | | private final UserDepartmentMapper userDepartmentMapper; |
| | | private final ExamPaperAnswerMapper examPaperAnswerMapper; |
| | | private final WebContext webContext; |
| | | private final DepartmentMapper departmentMapper; |
| | | |
| | | @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) |
| | |
| | | // } |
| | | |
| | | @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); |
| | | public RestResponse<PageInfo<ExamPaperAnswer>> pageJudgeList(@RequestBody ExamPaperGradeQuery query) { |
| | | // 如果是部门管理员,需要做数据权限 |
| | | query.setDeptId(ObjectUtils.isNotEmpty(query.getDeptId()) ? query.getDeptId() : getAdminDeptIds()); |
| | | query.setFullTime(); |
| | | // 查询 |
| | | PageInfo<ExamPaperAnswer> info = PageHelper.startPage(query.getPageIndex(), query.getPageSize()).doSelectPageInfo(() -> |
| | | userMapper.getUserByDept(query)); |
| | | return RestResponse.ok(info); |
| | | } |
| | | |
| | | @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); |
| | | public RestResponse<PageInfo<ExamPaperAnswer>> selectSource(@RequestBody ExamPaperGradeQuery query) throws Exception { |
| | | return RestResponse.ok(examPaperAnswerService.getByCreatUser(query)); |
| | | |
| | | } |
| | | @RequestMapping(value = "/updates", method = RequestMethod.POST) |
| | | public void updateDepartment(){ |
| | | |
| | | @RequestMapping(value = "/updates", method = RequestMethod.GET) |
| | | 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); |
| | | } |
| | | UserDepartment userDepartment = new UserDepartment(); |
| | | userDepartment.setUserId(id); |
| | | userDepartment.setDepartmentId(userLevel); |
| | | userDepartMentService.insert(userDepartment); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |