| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package nju.seec.helper.service.impl;
- import com.google.common.collect.Lists;
- import nju.seec.helper.api.dataanalysis.dto.EventDTO;
- import nju.seec.helper.api.dataanalysis.EventApi;
- import nju.seec.helper.dao.*;
- import nju.seec.helper.entity.*;
- import nju.seec.helper.enums.UserRole;
- import nju.seec.helper.service.EventService;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.time.LocalDateTime;
- import java.util.List;
- import java.util.Objects;
- /**
- * @author cst
- */
- @Service
- public class EventServiceImpl implements EventService {
- private final CourseDAO courseDAO;
- private final ChooseDAO chooseDAO;
- private final UserDAO userDAO;
- private final CommentDAO commentDAO;
- private final QuizStudentAnswerDAO quizStudentAnswerDAO;
- private final EventApi eventApi;
- public EventServiceImpl(CourseDAO courseDAO, ChooseDAO chooseDAO, UserDAO userDAO, CommentDAO commentDAO, QuizStudentAnswerDAO quizStudentAnswerDAO, EventApi eventApi) {
- this.courseDAO = courseDAO;
- this.chooseDAO = chooseDAO;
- this.userDAO = userDAO;
- this.commentDAO = commentDAO;
- this.quizStudentAnswerDAO = quizStudentAnswerDAO;
- this.eventApi = eventApi;
- }
- @Transactional(readOnly = true)
- @Override
- public List<EventDTO> getAllEvents() {
- List<EventDTO> eventDTOS = Lists.newArrayList();
- List<Course> courses = courseDAO.findAll();
- courses.forEach(course -> {
- List<Choose> chooses = chooseDAO.findByCourseId(course.getId());
- chooses.forEach(
- choose -> {
- User student = userDAO.findUserById(choose.getStudentId());
- if (student.getPid() != null) {
- eventDTOS.add(eventApi.createParticipateClassEventDTO(String.valueOf(Objects.requireNonNull(student).getPid()), LocalDateTime.now(), course));
- }
- }
- );
- });
- List<Comment> comments = commentDAO.findAll();
- comments.forEach(comment -> {
- User user = comment.getUser();
- if (user.getPid() != null && user.getRole() == UserRole.STUDENT) {
- eventDTOS.add(eventApi.createInitPostEventDTO(String.valueOf(user.getPid()), comment.getCreateAt(), comment.getTitle()));
- }
- });
- List<QuizStudentAnswer> quizStudentAnswers = quizStudentAnswerDAO.findAll();
- quizStudentAnswers.forEach(quizStudentAnswer -> {
- User student = quizStudentAnswer.getStudent();
- if (student.getPid() != null) {
- Quiz quiz = quizStudentAnswer.getQuiz();
- eventDTOS.add(eventApi.createCompleteQuizEventDTO(String.valueOf(student.getPid()), quizStudentAnswer.getSubmitAt(), quiz));
- }
- });
- return eventDTOS;
- }
- }
|