package nju.seec.helper.service.impl; import com.fasterxml.jackson.core.JsonProcessingException; import nju.seec.helper.dto.LoginUser; import nju.seec.helper.service.QuestionService; import nju.seec.helper.util.BOKUtil; import nju.seec.helper.util.JsonUtils; import nju.seec.helper.util.RestRequestUtil; import nju.seec.helper.util.enums.ExceptionType; import nju.seec.helper.util.enums.QuestionKindState; import nju.seec.helper.util.exception.HelperException; import nju.seec.helper.vo.quiz.ChoiceQuestionVO; import nju.seec.helper.vo.quiz.QuestionVO; import nju.seec.helper.vo.quiz.TrueOrFalseQuestionVO; import org.omg.CORBA.portable.UnknownException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Service public class QuestionServiceImpl implements QuestionService { @Autowired private BOKUtil bokUtil; @Override public Page getQuestionList(LoginUser user, String stem, Pageable pageable) throws JsonProcessingException { List Questions = new ArrayList(); Map page = new HashMap(); bokUtil.BokFindByStemLike(stem, Questions,page,pageable); Page ret =new PageImpl(Questions,pageable,Long.valueOf((Integer)page.get("totalElements"))); return ret; } @Override public QuestionVO getQuestion(String questionId) { return bokUtil.BokFindById(questionId); } @Override public QuestionVO newQuestion(QuestionVO newQuestion) { try { return bokUtil.PostNewQuestion(newQuestion); } catch (JsonProcessingException e) { throw HelperException.of(ExceptionType.ERROR,"请求BOK题库数据错误:"+e.getMessage()); } } @Override public QuestionVO updateQuestion(QuestionVO newQuestion) { try { return bokUtil.PutQuestion(newQuestion); } catch (JsonProcessingException e) { throw HelperException.of(ExceptionType.ERROR,"请求BOK题库数据错误:"+e.getMessage()); } } @Override public void deleteQuestion(String questionId) { bokUtil.deleteQuestion(questionId); } }