|
@@ -1,7 +1,7 @@
|
|
|
package nju.seec.helper.service.impl;
|
|
package nju.seec.helper.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
-import nju.seec.helper.api.bok.BokQuestionApi;
|
|
|
|
|
|
|
+import nju.seec.helper.api.bok.QuestionApi;
|
|
|
import nju.seec.helper.aspect.auth.LoginUser;
|
|
import nju.seec.helper.aspect.auth.LoginUser;
|
|
|
import nju.seec.helper.dao.QuestionRecordDAO;
|
|
import nju.seec.helper.dao.QuestionRecordDAO;
|
|
|
import nju.seec.helper.dao.QuizDAO;
|
|
import nju.seec.helper.dao.QuizDAO;
|
|
@@ -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 BokQuestionApi bokQuestionApi;
|
|
|
|
|
|
|
+ private final QuestionApi questionApi;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
public QuestionServiceImpl(QuizDAO quizDAO
|
|
public QuestionServiceImpl(QuizDAO quizDAO
|
|
|
, UserDAO userDAO
|
|
, UserDAO userDAO
|
|
|
- , QuestionRecordDAO questionRecordDAO, BokQuestionApi bokQuestionApi) {
|
|
|
|
|
|
|
+ , QuestionRecordDAO questionRecordDAO, QuestionApi questionApi) {
|
|
|
this.quizDAO = quizDAO;
|
|
this.quizDAO = quizDAO;
|
|
|
this.userDAO = userDAO;
|
|
this.userDAO = userDAO;
|
|
|
this.questionRecordDAO = questionRecordDAO;
|
|
this.questionRecordDAO = questionRecordDAO;
|
|
|
- this.bokQuestionApi = bokQuestionApi;
|
|
|
|
|
|
|
+ this.questionApi = questionApi;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Page<BaseQuestionVO> getQuestions(LoginUser user, String stem, Pageable pageable) {
|
|
public Page<BaseQuestionVO> getQuestions(LoginUser user, String stem, Pageable pageable) {
|
|
|
- return bokQuestionApi.bokFindByStemLike(stem, pageable).map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true));
|
|
|
|
|
|
|
+ return questionApi.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 bokQuestionApi.bokFindByIdIn(questionIds)
|
|
|
|
|
|
|
+ return questionApi.bokFindByIdIn(questionIds)
|
|
|
.stream()
|
|
.stream()
|
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, quiz.getState() == QuizState.CLOSED || user.getRole() == UserRole.TEACHER))
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, quiz.getState() == QuizState.CLOSED || user.getRole() == UserRole.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 bokQuestionApi.bokFindByIdIn(questionIds)
|
|
|
|
|
|
|
+ return questionApi.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(bokQuestionApi.bokFindById(questionId), true);
|
|
|
|
|
|
|
+ return BaseQuestionVO.convertBokQuestionToVO(questionApi.bokFindById(questionId), true);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -90,7 +90,7 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
questionId = IdUtil.fastSimpleUUID();
|
|
questionId = IdUtil.fastSimpleUUID();
|
|
|
} while (questionRecordDAO.existsByQuestionId(questionId));
|
|
} while (questionRecordDAO.existsByQuestionId(questionId));
|
|
|
|
|
|
|
|
- BokQuestionVO bokQuestionVO = bokQuestionApi.createQuestion(questionId, baseQuestionDTO);
|
|
|
|
|
|
|
+ BokQuestionVO bokQuestionVO = questionApi.createQuestion(questionId, baseQuestionDTO);
|
|
|
questionRecordDAO.save(new QuestionRecord()
|
|
questionRecordDAO.save(new QuestionRecord()
|
|
|
.setTeacher(userDAO.findUserById(user.getId()))
|
|
.setTeacher(userDAO.findUserById(user.getId()))
|
|
|
.setQuestionId(bokQuestionVO.getId()));
|
|
.setQuestionId(bokQuestionVO.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, "您无权修改该问题"));
|
|
|
- BokQuestionVO bokQuestionVO = bokQuestionApi.modifyQuestion(questionId, baseQuestionDTO);
|
|
|
|
|
|
|
+ BokQuestionVO bokQuestionVO = questionApi.modifyQuestion(questionId, baseQuestionDTO);
|
|
|
questionRecordDAO.save(questionRecord);
|
|
questionRecordDAO.save(questionRecord);
|
|
|
return BaseQuestionVO.convertBokQuestionToVO(bokQuestionVO, true);
|
|
return BaseQuestionVO.convertBokQuestionToVO(bokQuestionVO, 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, "您无权删除该问题"));
|
|
|
- bokQuestionApi.deleteQuestion(questionId);
|
|
|
|
|
|
|
+ questionApi.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<>(
|
|
|
- bokQuestionApi.bokFindByIdIn(questionIdPage.getContent())
|
|
|
|
|
|
|
+ questionApi.bokFindByIdIn(questionIdPage.getContent())
|
|
|
.stream()
|
|
.stream()
|
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true))
|
|
.map(bokQuestion -> BaseQuestionVO.convertBokQuestionToVO(bokQuestion, true))
|
|
|
.collect(Collectors.toList())
|
|
.collect(Collectors.toList())
|
|
@@ -139,6 +139,6 @@ public class QuestionServiceImpl implements QuestionService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void starQuestion(LoginUser user, String questionId) {
|
|
public void starQuestion(LoginUser user, String questionId) {
|
|
|
- bokQuestionApi.starQuestion(String.valueOf(user.getId()), questionId);
|
|
|
|
|
|
|
+ questionApi.starQuestion(String.valueOf(user.getId()), questionId);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|