|
@@ -12,7 +12,7 @@ import nju.seec.helper.enums.QuizState;
|
|
|
import nju.seec.helper.enums.UserType;
|
|
import nju.seec.helper.enums.UserType;
|
|
|
import nju.seec.helper.exception.HelperException;
|
|
import nju.seec.helper.exception.HelperException;
|
|
|
import nju.seec.helper.service.QuestionService;
|
|
import nju.seec.helper.service.QuestionService;
|
|
|
-import nju.seec.helper.util.BokUtil;
|
|
|
|
|
|
|
+import nju.seec.helper.api.BokApi;
|
|
|
import nju.seec.helper.vo.question.BaseQuestionVO;
|
|
import nju.seec.helper.vo.question.BaseQuestionVO;
|
|
|
import nju.seec.helper.vo.question.BokQuestion;
|
|
import nju.seec.helper.vo.question.BokQuestion;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -38,21 +38,21 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
private final UserDAO userDAO;
|
|
private final UserDAO userDAO;
|
|
|
private final QuestionRecordDAO questionRecordDAO;
|
|
private final QuestionRecordDAO questionRecordDAO;
|
|
|
|
|
|
|
|
- private final BokUtil bokUtil;
|
|
|
|
|
|
|
+ private final BokApi bokApi;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
public QuestionServiceImpl(QuizDAO quizDAO
|
|
public QuestionServiceImpl(QuizDAO quizDAO
|
|
|
, UserDAO userDAO
|
|
, UserDAO userDAO
|
|
|
- , QuestionRecordDAO questionRecordDAO, BokUtil bokUtil) {
|
|
|
|
|
|
|
+ , QuestionRecordDAO questionRecordDAO, BokApi bokApi) {
|
|
|
this.quizDAO = quizDAO;
|
|
this.quizDAO = quizDAO;
|
|
|
this.userDAO = userDAO;
|
|
this.userDAO = userDAO;
|
|
|
this.questionRecordDAO = questionRecordDAO;
|
|
this.questionRecordDAO = questionRecordDAO;
|
|
|
- this.bokUtil = bokUtil;
|
|
|
|
|
|
|
+ this.bokApi = bokApi;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Page<BaseQuestionVO> getQuestions(LoginUser user, String stem, Pageable pageable) {
|
|
public Page<BaseQuestionVO> getQuestions(LoginUser user, String stem, Pageable pageable) {
|
|
|
- return bokUtil.bokFindByStemLike(stem, pageable).map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true));
|
|
|
|
|
|
|
+ return bokApi.bokFindByStemLike(stem, pageable).map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Transactional(readOnly = true)
|
|
@Transactional(readOnly = true)
|
|
@@ -60,7 +60,7 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
public List<BaseQuestionVO> getQuestionsByQuiz(LoginUser user, Long quizId) {
|
|
public List<BaseQuestionVO> getQuestionsByQuiz(LoginUser user, Long quizId) {
|
|
|
Quiz quiz = quizDAO.findQuizById(quizId);
|
|
Quiz quiz = quizDAO.findQuizById(quizId);
|
|
|
List<String> questionIds = quiz.getQuestions();
|
|
List<String> questionIds = quiz.getQuestions();
|
|
|
- return bokUtil.bokFindByIdIn(questionIds)
|
|
|
|
|
|
|
+ return bokApi.bokFindByIdIn(questionIds)
|
|
|
.stream()
|
|
.stream()
|
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, quiz.getState() == QuizState.CLOSED || user.getType() == UserType.TEACHER))
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, quiz.getState() == QuizState.CLOSED || user.getType() == UserType.TEACHER))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
@@ -70,7 +70,7 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
@Override
|
|
@Override
|
|
|
public List<BaseQuestionVO> getQuestionsByQuiz(Quiz quiz) {
|
|
public List<BaseQuestionVO> getQuestionsByQuiz(Quiz quiz) {
|
|
|
List<String> questionIds = quiz.getQuestions();
|
|
List<String> questionIds = quiz.getQuestions();
|
|
|
- return bokUtil.bokFindByIdIn(questionIds)
|
|
|
|
|
|
|
+ return bokApi.bokFindByIdIn(questionIds)
|
|
|
.stream()
|
|
.stream()
|
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true))
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
@@ -78,7 +78,7 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public BaseQuestionVO getOneQuestion(LoginUser user, String questionId) {
|
|
public BaseQuestionVO getOneQuestion(LoginUser user, String questionId) {
|
|
|
- return BaseQuestionVO.convertBokQuestionToVO(bokUtil.bokFindById(questionId), true);
|
|
|
|
|
|
|
+ return BaseQuestionVO.convertBokQuestionToVO(bokApi.bokFindById(questionId), true);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -90,7 +90,7 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
questionId = UUID.randomUUID().toString().replaceAll("-", "");
|
|
questionId = UUID.randomUUID().toString().replaceAll("-", "");
|
|
|
} while (questionRecordDAO.existsByQuestionId(questionId));
|
|
} while (questionRecordDAO.existsByQuestionId(questionId));
|
|
|
|
|
|
|
|
- BokQuestion bokQuestion = bokUtil.createQuestion(questionId, baseQuestionDTO);
|
|
|
|
|
|
|
+ BokQuestion bokQuestion = bokApi.createQuestion(questionId, baseQuestionDTO);
|
|
|
questionRecordDAO.save(new QuestionRecord()
|
|
questionRecordDAO.save(new QuestionRecord()
|
|
|
.setTeacher(userDAO.findUserById(user.getId()))
|
|
.setTeacher(userDAO.findUserById(user.getId()))
|
|
|
.setQuestionId(bokQuestion.getId()));
|
|
.setQuestionId(bokQuestion.getId()));
|
|
@@ -102,7 +102,7 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
public BaseQuestionVO modifyQuestion(LoginUser user, String questionId, BaseQuestionDTO baseQuestionDTO) {
|
|
public BaseQuestionVO modifyQuestion(LoginUser user, String questionId, BaseQuestionDTO baseQuestionDTO) {
|
|
|
QuestionRecord questionRecord = questionRecordDAO.findByTeacherAndQuestionId(userDAO.findUserById(user.getId()), questionId)
|
|
QuestionRecord questionRecord = questionRecordDAO.findByTeacherAndQuestionId(userDAO.findUserById(user.getId()), questionId)
|
|
|
.orElseThrow(() -> HelperException.of(ExceptionType.FORBIDDEN, "您无权修改该问题"));
|
|
.orElseThrow(() -> HelperException.of(ExceptionType.FORBIDDEN, "您无权修改该问题"));
|
|
|
- BokQuestion bokQuestion = bokUtil.modifyQuestion(questionId, baseQuestionDTO);
|
|
|
|
|
|
|
+ BokQuestion bokQuestion = bokApi.modifyQuestion(questionId, baseQuestionDTO);
|
|
|
questionRecordDAO.save(questionRecord);
|
|
questionRecordDAO.save(questionRecord);
|
|
|
return BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true);
|
|
return BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true);
|
|
|
}
|
|
}
|
|
@@ -112,7 +112,7 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
public void deleteQuestion(LoginUser user, String questionId) {
|
|
public void deleteQuestion(LoginUser user, String questionId) {
|
|
|
QuestionRecord questionRecord = questionRecordDAO.findByTeacherAndQuestionId(userDAO.findUserById(user.getId()), questionId)
|
|
QuestionRecord questionRecord = questionRecordDAO.findByTeacherAndQuestionId(userDAO.findUserById(user.getId()), questionId)
|
|
|
.orElseThrow(() -> HelperException.of(ExceptionType.FORBIDDEN, "您无权删除该问题"));
|
|
.orElseThrow(() -> HelperException.of(ExceptionType.FORBIDDEN, "您无权删除该问题"));
|
|
|
- bokUtil.deleteQuestion(questionId);
|
|
|
|
|
|
|
+ bokApi.deleteQuestion(questionId);
|
|
|
questionRecordDAO.delete(questionRecord);
|
|
questionRecordDAO.delete(questionRecord);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -122,7 +122,7 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
Page<String> questionIdPage = questionRecordDAO.findQuestionIdsByTeacher(userDAO.findUserById(user.getId()), pageable);
|
|
Page<String> questionIdPage = questionRecordDAO.findQuestionIdsByTeacher(userDAO.findUserById(user.getId()), pageable);
|
|
|
|
|
|
|
|
return new PageImpl<>(
|
|
return new PageImpl<>(
|
|
|
- bokUtil.bokFindByIdIn(questionIdPage.getContent())
|
|
|
|
|
|
|
+ bokApi.bokFindByIdIn(questionIdPage.getContent())
|
|
|
.stream()
|
|
.stream()
|
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true))
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true))
|
|
|
.collect(Collectors.toList())
|
|
.collect(Collectors.toList())
|