|
|
@@ -3,10 +3,7 @@ package nju.seec.helper.service.impl;
|
|
|
import com.google.common.collect.ImmutableMap;
|
|
|
import com.google.common.collect.ImmutableSet;
|
|
|
import nju.seec.helper.aspect.auth.LoginUser;
|
|
|
-import nju.seec.helper.dao.ChooseDAO;
|
|
|
-import nju.seec.helper.dao.QuizDAO;
|
|
|
-import nju.seec.helper.dao.QuizStudentAnswerDAO;
|
|
|
-import nju.seec.helper.dao.SlideDAO;
|
|
|
+import nju.seec.helper.dao.*;
|
|
|
import nju.seec.helper.dto.quiz.QuizDTO;
|
|
|
import nju.seec.helper.entity.Course;
|
|
|
import nju.seec.helper.entity.Quiz;
|
|
|
@@ -39,15 +36,17 @@ public class QuizServiceImpl implements QuizService {
|
|
|
private final QuizDAO quizDAO;
|
|
|
private final QuizStudentAnswerDAO quizStudentAnswerDAO;
|
|
|
private final ChooseDAO chooseDAO;
|
|
|
+ private final UserDAO userDAO;
|
|
|
|
|
|
private final MessageService messageService;
|
|
|
|
|
|
@Autowired
|
|
|
- public QuizServiceImpl(SlideDAO slideDAO, QuizDAO quizDAO, QuizStudentAnswerDAO quizStudentAnswerDAO, ChooseDAO chooseDAO, MessageService messageService) {
|
|
|
+ public QuizServiceImpl(SlideDAO slideDAO, QuizDAO quizDAO, QuizStudentAnswerDAO quizStudentAnswerDAO, ChooseDAO chooseDAO, UserDAO userDAO, MessageService messageService) {
|
|
|
this.slideDAO = slideDAO;
|
|
|
this.quizDAO = quizDAO;
|
|
|
this.quizStudentAnswerDAO = quizStudentAnswerDAO;
|
|
|
this.chooseDAO = chooseDAO;
|
|
|
+ this.userDAO = userDAO;
|
|
|
this.messageService = messageService;
|
|
|
}
|
|
|
|
|
|
@@ -159,6 +158,12 @@ public class QuizServiceImpl implements QuizService {
|
|
|
return quizDAO.findBySlideAndStateNotInAndNameContains(slideDAO.findSlideById(slideId), STATES_NOT_GET_BY_STUDENT_SET, key, pageable).map(QuizVO::new);
|
|
|
}
|
|
|
|
|
|
+ @Transactional(readOnly = true)
|
|
|
+ @Override
|
|
|
+ public Page<QuizVO> teacherGetQuizzesByState(LoginUser user, QuizState state, String key, Pageable pageable) {
|
|
|
+ return quizDAO.findByTeacherAndStateAndNameContains(userDAO.findUserById(user.getId()), state, key, pageable).map(QuizVO::new);
|
|
|
+ }
|
|
|
+
|
|
|
@Transactional(readOnly = true)
|
|
|
@Override
|
|
|
public Page<QuizVO> studentGetQuizzesByState(LoginUser user, QuizState state, String key, Pageable pageable) {
|