test
parent
95989f88d3
commit
38793d70f1
|
|
@ -25,6 +25,9 @@ public class PaperQuestionVO {
|
|||
@ApiModelProperty("答案选项id,多个逗号隔开")
|
||||
private String answerQuestionOptionIds;
|
||||
|
||||
@ApiModelProperty("答案选项,多个逗号隔开")
|
||||
private String answer;
|
||||
|
||||
@ApiModelProperty("答案解析")
|
||||
private String analysis;
|
||||
|
||||
|
|
|
|||
|
|
@ -125,7 +125,6 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
|||
.eq(QuestionOptionDO::getDeleteEnum, DeleteEnum.FALSE.getCode()));
|
||||
|
||||
// 新增试卷(使用请求中的名称/总分/合格分数)
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
PaperDO target = new PaperDO();
|
||||
target.setPaperName(copyDTO.getPaperName().trim());
|
||||
target.setPaperTotalScore(copyDTO.getPaperTotalScore());
|
||||
|
|
@ -146,40 +145,28 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
|||
Long oldQuestionId = question.getId();
|
||||
Long newQuestionId = IdUtil.getSnowflakeNextId();
|
||||
question.setId(newQuestionId);
|
||||
question.setCreateTime(now);
|
||||
question.setUpdateTime(now);
|
||||
question.setVersion(0);
|
||||
InsertFieldDefaults.applyIgnoreOrgId(question);
|
||||
|
||||
List<QuestionOptionDO> options = allOptions.stream()
|
||||
.filter(option -> oldQuestionId.equals(option.getQuestionId()))
|
||||
.collect(Collectors.toList());
|
||||
for (QuestionOptionDO option : options) {
|
||||
Long oldOptionId = option.getId();
|
||||
option.setId(IdUtil.getSnowflakeNextId());
|
||||
option.setQuestionId(newQuestionId);
|
||||
option.setCreateTime(now);
|
||||
option.setUpdateTime(now);
|
||||
option.setVersion(0);
|
||||
if (StringUtils.hasText(question.getAnswerQuestionOptionIds())) {
|
||||
// 替换正确选项id引用
|
||||
String replaced = Arrays.stream(question.getAnswerQuestionOptionIds().split(","))
|
||||
.map(String::trim)
|
||||
.filter(StringUtils::hasText)
|
||||
.map(oldId -> oldId.equals(String.valueOf(oldOptionId))
|
||||
? String.valueOf(option.getId()) : oldId)
|
||||
.collect(Collectors.joining(","));
|
||||
question.setAnswerQuestionOptionIds(replaced);
|
||||
}
|
||||
InsertFieldDefaults.applyIgnoreOrgId(option);
|
||||
newOptions.add(option);
|
||||
}
|
||||
question.setAnswerQuestionOptionIds(newOptions.stream().filter(QuestionOptionDO::getIsCorrect)
|
||||
.map(it -> String.valueOf(it.getId())).collect(Collectors.joining(",")));
|
||||
question.setAnswer(newOptions.stream().filter(QuestionOptionDO::getIsCorrect)
|
||||
.map(QuestionOptionDO::getOptionKey).collect(Collectors.joining(",")));
|
||||
|
||||
PaperQuestionRelDO rel = new PaperQuestionRelDO();
|
||||
rel.setPaperId(target.getId());
|
||||
rel.setQuestionId(newQuestionId);
|
||||
rel.setQuestionNum(questionNumByQuestionId.get(oldQuestionId));
|
||||
rel.setCreateTime(now);
|
||||
rel.setUpdateTime(now);
|
||||
newRels.add(rel);
|
||||
InsertFieldDefaults.applyIgnoreOrgId(rel);
|
||||
}
|
||||
Db.saveBatch(questions);
|
||||
Db.saveBatch(newOptions);
|
||||
|
|
|
|||
Loading…
Reference in New Issue