|
|
@@ -7,6 +7,8 @@ import nju.seec.helper.sys.dataanalysis.model.Event;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
@@ -52,4 +54,27 @@ public class EventServiceImpl implements EventService {
|
|
|
.flatMap(eventStream -> eventStream)
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
+
|
|
|
+ @Transactional(readOnly = true)
|
|
|
+ @Override
|
|
|
+ public List<Event> getAllEventsByDate(String start, String end) {
|
|
|
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ LocalDateTime startTime = LocalDateTime.parse(start, dtf);
|
|
|
+ LocalDateTime endTime = LocalDateTime.parse(end, dtf);
|
|
|
+ return Stream.of(
|
|
|
+ courseDAO.findAll()
|
|
|
+ .stream()
|
|
|
+ .flatMap(course -> chooseDAO.findByCourseIdAndDate(course.getId(),startTime,endTime)
|
|
|
+ .stream()
|
|
|
+ .map(choose -> eventApi.createParticipateClassEventDTO(String.valueOf(userDAO.findUserById(choose.getStudentId()).getPid()), choose.getChooseAt(), course)))
|
|
|
+ , commentDAO.findByCreateAtBetween(startTime,endTime)
|
|
|
+ .stream()
|
|
|
+ .map(comment -> eventApi.createInitPostEventDTO(String.valueOf(comment.getUser().getPid()), comment.getCreateAt(), comment.getTitle()))
|
|
|
+ , quizStudentAnswerDAO.findBetweenTime(startTime,endTime)
|
|
|
+ .stream()
|
|
|
+ .map(quizStudentAnswer -> eventApi.createCompleteQuizEventDTO(String.valueOf(quizStudentAnswer.getStudent().getPid()), quizStudentAnswer.getSubmitAt(), quizStudentAnswer.getQuiz()))
|
|
|
+ )
|
|
|
+ .flatMap(eventStream -> eventStream)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|