| | |
| | | package com.ycl.jxkg.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.jxkg.domain.enums.general.StatusEnum; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.domain.entity.Question; |
| | | import com.ycl.jxkg.domain.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.enums.QuestionTypeEnum; |
| | | import com.ycl.jxkg.enums.general.StatusEnum; |
| | | import com.ycl.jxkg.domain.other.KeyValue; |
| | | import com.ycl.jxkg.domain.question.QuestionItemObject; |
| | | import com.ycl.jxkg.domain.question.QuestionObject; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO; |
| | | import com.ycl.jxkg.mapper.QuestionMapper; |
| | | import com.ycl.jxkg.service.QuestionService; |
| | | import com.ycl.jxkg.service.SubjectService; |
| | | import com.ycl.jxkg.service.TextContentService; |
| | | import com.ycl.jxkg.utils.DateTimeUtil; |
| | | import com.ycl.jxkg.utils.JsonUtil; |
| | | import com.ycl.jxkg.utils.ExamUtil; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionEditItemVO; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionEditRequestVO; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO; |
| | | import com.ycl.jxkg.mapper.QuestionMapper; |
| | | import com.ycl.jxkg.service.QuestionService; |
| | | import com.ycl.jxkg.utils.DateTimeUtil; |
| | | import com.ycl.jxkg.utils.ExamUtil; |
| | | import com.ycl.jxkg.utils.HtmlUtil; |
| | | import com.ycl.jxkg.utils.JsonUtil; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | |
| | | public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> implements QuestionService { |
| | | |
| | | private final QuestionMapper questionMapper; |
| | | private final TextContentService textContentService; |
| | | private final SubjectService subjectService; |
| | | |
| | | |
| | | @Override |
| | | public PageInfo<QuestionResponseVO> page(QuestionPageRequestVO requestVM) { |
| | | return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() -> |
| | | return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "create_time desc").doSelectPageInfo(() -> |
| | | questionMapper.page(requestVM) |
| | | ); |
| | | } |
| | |
| | | question.setDifficult(model.getDifficult()); |
| | | question.setContent(questionObject); |
| | | question.setCreateUser(userId); |
| | | question.setTitle(HtmlUtil.clear(model.getTitle())); |
| | | question.setAudioFile(model.getAudioFile()); |
| | | question.setOriginalFile(model.getOriginalFile()); |
| | | questionMapper.insert(question); |
| | | return question; |
| | | } |
| | |
| | | //题干、解析、选项等 更新 |
| | | String questionObject = setQuestionInfoFromVM(model); |
| | | question.setContent(questionObject); |
| | | question.setTitle(HtmlUtil.clear(model.getTitle())); |
| | | question.setAudioFile(model.getAudioFile()); |
| | | question.setOriginalFile(model.getOriginalFile()); |
| | | questionMapper.updateById(question); |
| | | return question; |
| | | } |
| | |
| | | switch (questionTypeEnum) { |
| | | case SingleChoice: |
| | | case TrueFalse: |
| | | case Audio: |
| | | questionEditRequestVO.setCorrect(question.getCorrect()); |
| | | break; |
| | | case MultipleChoice: |
| | |
| | | questionEditRequestVO.setCorrectArray(correctContent); |
| | | break; |
| | | case ShortAnswer: |
| | | case Calculate: |
| | | case Analysis: |
| | | questionEditRequestVO.setCorrect(questionObject.getCorrect()); |
| | | break; |
| | | default: |
| | |
| | | List<QuestionEditItemVO> editItems = questionObject.getQuestionItemObjects().stream().map(o -> { |
| | | QuestionEditItemVO questionEditItemVO = new QuestionEditItemVO(); |
| | | BeanUtils.copyProperties(o, questionEditItemVO); |
| | | if (o.getScore() != null) { |
| | | questionEditItemVO.setScore(ExamUtil.scoreToVM(o.getScore())); |
| | | } |
| | | return questionEditItemVO; |
| | | }).collect(Collectors.toList()); |
| | | questionEditRequestVO.setItems(editItems); |
| | |
| | | item.setPrefix(i.getPrefix()); |
| | | item.setContent(i.getContent()); |
| | | item.setItemUuid(i.getItemUuid()); |
| | | item.setScore(ExamUtil.scoreFromVM(i.getScore())); |
| | | return item; |
| | | } |
| | | ).collect(Collectors.toList()); |
| | |
| | | }).collect(Collectors.toList()); |
| | | } |
| | | |
| | | @Override |
| | | public Boolean updateStatus(QuestionResponseVO question) { |
| | | return new LambdaUpdateChainWrapper<>(questionMapper) |
| | | .set(Question::getStatus, question.getStatus()) |
| | | .eq(Question::getId, question.getId()) |
| | | .update(); |
| | | } |
| | | |
| | | } |