|
@@ -2,13 +2,20 @@ package com.qmth.teachcloud.mark.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
|
+import com.qmth.teachcloud.common.entity.MarkQuestion;
|
|
|
|
+import com.qmth.teachcloud.common.enums.ObjectivePolicy;
|
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkPaper;
|
|
import com.qmth.teachcloud.mark.entity.MarkQuestionAnswer;
|
|
import com.qmth.teachcloud.mark.entity.MarkQuestionAnswer;
|
|
import com.qmth.teachcloud.mark.mapper.MarkQuestionAnswerMapper;
|
|
import com.qmth.teachcloud.mark.mapper.MarkQuestionAnswerMapper;
|
|
|
|
+import com.qmth.teachcloud.mark.service.MarkPaperService;
|
|
import com.qmth.teachcloud.mark.service.MarkQuestionAnswerService;
|
|
import com.qmth.teachcloud.mark.service.MarkQuestionAnswerService;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.teachcloud.mark.service.MarkQuestionService;
|
|
import com.qmth.teachcloud.mark.service.MarkQuestionService;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -22,6 +29,9 @@ import java.util.List;
|
|
@Service
|
|
@Service
|
|
public class MarkQuestionAnswerServiceImpl extends ServiceImpl<MarkQuestionAnswerMapper, MarkQuestionAnswer> implements MarkQuestionAnswerService {
|
|
public class MarkQuestionAnswerServiceImpl extends ServiceImpl<MarkQuestionAnswerMapper, MarkQuestionAnswer> implements MarkQuestionAnswerService {
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private MarkPaperService markPaperService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void deleteByExamIdAndPaperNumberAndMainNumberAndSubNumber(Long examId, String paperNumber, Integer mainNumber, Integer subNumber) {
|
|
public void deleteByExamIdAndPaperNumberAndMainNumberAndSubNumber(Long examId, String paperNumber, Integer mainNumber, Integer subNumber) {
|
|
UpdateWrapper<MarkQuestionAnswer> updateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<MarkQuestionAnswer> updateWrapper = new UpdateWrapper<>();
|
|
@@ -57,4 +67,33 @@ public class MarkQuestionAnswerServiceImpl extends ServiceImpl<MarkQuestionAnswe
|
|
.eq(MarkQuestionAnswer::getPaperNumber, paperNumber);
|
|
.eq(MarkQuestionAnswer::getPaperNumber, paperNumber);
|
|
return this.count(queryWrapper);
|
|
return this.count(queryWrapper);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void deleteByExamIdAndPaperNumber(Long examId, String paperNumber) {
|
|
|
|
+ UpdateWrapper<MarkQuestionAnswer> updateWrapper = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper.lambda().eq(MarkQuestionAnswer::getExamId, examId)
|
|
|
|
+ .eq(MarkQuestionAnswer::getPaperNumber, paperNumber);
|
|
|
|
+ this.remove(updateWrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void saveByMarkQuestion(Long examId, String paperNumber, List<MarkQuestion> markQuestions) {
|
|
|
|
+ MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
|
+ List<MarkQuestionAnswer> markQuestionAnswers = new ArrayList<>();
|
|
|
|
+ for (String paperType : markPaper.getPaperTypeList()) {
|
|
|
|
+ List<MarkQuestionAnswer> markQuestionAnswerList = this.listByExamIdAndPaperNumberAndPaperType(examId, paperNumber, paperType);
|
|
|
|
+ for (MarkQuestion markQuestion : markQuestions) {
|
|
|
|
+ if (!markQuestion.getObjective()) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ MarkQuestionAnswer questionAnswer = markQuestionAnswerList.stream().filter(m -> m.getMainNumber() != null && m.getMainNumber().equals(markQuestion.getMainNumber()) && m.getSubNumber().equals(markQuestion.getSubNumber())).
|
|
|
|
+ findFirst().orElse(null);
|
|
|
|
+ if (questionAnswer == null) {
|
|
|
|
+ MarkQuestionAnswer markQuestionAnswer = new MarkQuestionAnswer(examId, paperNumber, paperType, markQuestion.getMainNumber(), markQuestion.getSubNumber());
|
|
|
|
+ markQuestionAnswers.add(markQuestionAnswer);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.saveBatch(markQuestionAnswers);
|
|
|
|
+ }
|
|
}
|
|
}
|