StatisticServiceImpl.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package com.moekr.moocoder.logic.service.impl;
  2. import com.moekr.moocoder.data.dao.*;
  3. import com.moekr.moocoder.logic.service.StatisticService;
  4. import com.moekr.moocoder.logic.vo.StatisticVO;
  5. import com.moekr.moocoder.util.enums.ProblemType;
  6. import com.moekr.moocoder.util.enums.UserRole;
  7. import org.springframework.stereotype.Service;
  8. @Service
  9. public class StatisticServiceImpl implements StatisticService {
  10. private final UserDAO userDAO;
  11. private final ExamDAO examDAO;
  12. private final ResultDAO resultDAO;
  13. private final RecordDAO recordDAO;
  14. private final ProblemDAO problemDAO;
  15. public StatisticServiceImpl(UserDAO userDAO, ExamDAO examDAO, ResultDAO resultDAO, RecordDAO recordDAO, ProblemDAO problemDAO) {
  16. this.userDAO = userDAO;
  17. this.examDAO = examDAO;
  18. this.resultDAO = resultDAO;
  19. this.recordDAO = recordDAO;
  20. this.problemDAO = problemDAO;
  21. }
  22. @Override
  23. public StatisticVO statistic() {
  24. StatisticVO statistic = new StatisticVO();
  25. statistic.setStudentCount(userDAO.countByRole(UserRole.STUDENT));
  26. statistic.setTeacherCount(userDAO.countByRole(UserRole.TEACHER));
  27. statistic.setExaminationCount((int) examDAO.count());
  28. statistic.setResultCount((int) resultDAO.count());
  29. statistic.setRecordCount((int) recordDAO.count());
  30. statistic.setJavaProblemCount(problemDAO.countByType(ProblemType.JAVA));
  31. statistic.setPythonProblemCount(problemDAO.countByType(ProblemType.PYTHON));
  32. return statistic;
  33. }
  34. }