From ccfc11f040691d7359a773ec0f1e4165fffc7783 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 03 十二月 2024 10:40:17 +0800
Subject: [PATCH] 题目导入:题干重复会更新题目信息、答案去掉字符串空格;在线学习文件非必穿
---
src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java | 2
src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java | 88 ++++++++++++++++++++++++++++++++++++++++++-
src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java | 4 +
3 files changed, 89 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
index 56dbf2f..babd07a 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
@@ -306,12 +306,14 @@
// 淇濆瓨棰樼洰淇℃伅
// 璁剧疆棰樺瀷
question.setQuestionType(QuestionTypeEnum.get(excelQuestion.getQuestionType()));
+ // 绛旀鍘绘帀绌烘牸
+ String rightAnswer = excelQuestion.getCorrect().replaceAll("\\s", "");
// 绛旀(澶氶�夐渶瑕佺敤,鍒嗗壊淇濆瓨瀛楃涓插埌鏁版嵁搴�)
- String[] corrects = excelQuestion.getCorrect().split(SPLIT);
+ String[] corrects = rightAnswer.split(SPLIT);
if (corrects.length > 1) {
question.setCorrect(Arrays.asList(corrects).stream().collect(Collectors.joining(",")));
} else {
- question.setCorrect(excelQuestion.getCorrect());
+ question.setCorrect(rightAnswer);
}
// 闅惧害
@@ -364,6 +366,8 @@
questionSubjectService.saves(questionSubjectsList);
}
} else {
+ question.setId(questionId);
+ this.updateQuestion(question, excelQuestion);
List<String> subjectNames = Arrays.asList(excelQuestion.getSubjectName().split(SPLIT));
List<Subject> subjects = subjectNames.stream().map(name -> {
// 鍒ゆ柇璇剧洰鏄惁瀛樺湪浜庢暟鎹簱锛屽鏋滀笉瀛樺湪鍒欒嚜鍔ㄦ柊澧炶鐩�
@@ -379,7 +383,7 @@
// 鏋勫缓璇剧洰-棰樼洰淇℃伅
questionSubjectsList = subjects.stream()
.filter(subject -> {
- // 鍘婚噸棰樼洰锛氶骞�+璇剧洰鐩稿悓鎵嶇畻鍚屼竴棰�
+ // 鍘婚噸棰樼洰锛氶骞�+璇剧洰鐩稿悓鎵嶇畻鍚屼竴棰�(棰樺共鐩稿悓锛氫絾鏈夋柊澧炵殑璇剧洰鏃舵墠鍋氫繚瀛�)
List<QuestionSubjectVO> lists = questionService.countQuestionByTitleAndSubject(excelQuestion.getTitle(), subject.getId());
return 0 == lists.size();
})
@@ -403,6 +407,84 @@
return RestResponse.ok();
}
+ /**
+ * 瀵煎叆鏃讹紝濡傛灉棰樺共閲嶅锛岄偅涔堟洿鏂伴鐩俊鎭紙璇ユ柟娉曚笉浼氭洿鏂伴鐩殑棰樺簱淇℃伅锛�
+ *
+ * @param question
+ * @param excelQuestion
+ */
+ private void updateQuestion(Question question, QuestionImportVO excelQuestion) {
+ Question question1 = questionService.selectById(question.getId());
+ // 璇ラ鐨勯�夐」
+ List<QuestionItemObject> options = new ArrayList<>(4);
+ // 閫夐」鍐呭
+ QuestionItemObject optionA = new QuestionItemObject();
+ optionA.setPrefix("A");
+ optionA.setContent(excelQuestion.getOptionA());
+ options.add(optionA);
+
+ QuestionItemObject optionB = new QuestionItemObject();
+ optionB.setPrefix("B");
+ optionB.setContent(excelQuestion.getOptionB());
+ options.add(optionB);
+
+ if (StringUtils.isNotBlank(excelQuestion.getOptionC())) {
+ QuestionItemObject optionC = new QuestionItemObject();
+ optionC.setPrefix("C");
+ optionC.setContent(excelQuestion.getOptionC());
+ options.add(optionC);
+ }
+ if (StringUtils.isNotBlank(excelQuestion.getOptionD())) {
+ QuestionItemObject optionD = new QuestionItemObject();
+ optionD.setPrefix("D");
+ optionD.setContent(excelQuestion.getOptionD());
+ options.add(optionD);
+ }
+
+ // 鏇存柊棰樼洰鍐呭
+ QuestionObject questionObject = new QuestionObject();
+ questionObject.setQuestionItemObjects(options);
+ questionObject.setAnalyze(excelQuestion.getAnalyze());
+ questionObject.setTitleContent(excelQuestion.getTitle());
+ questionObject.setCorrect(excelQuestion.getCorrect());
+
+ TextContent textContent = new TextContent();
+ textContent.setContent(JSON.toJSONString(questionObject));
+ textContent.setCreateTime(new Date());
+ textContent.setId(question1.getInfoTextContentId());
+ textContentService.updateByIdFilter(textContent);
+
+ // 淇濆瓨棰樼洰淇℃伅
+ // 璁剧疆棰樺瀷
+ question.setQuestionType(QuestionTypeEnum.get(excelQuestion.getQuestionType()));
+ // 绛旀鍘绘帀绌烘牸
+ String rightAnswer = excelQuestion.getCorrect().replaceAll("\\s", "");
+ // 绛旀(澶氶�夐渶瑕佺敤,鍒嗗壊淇濆瓨瀛楃涓插埌鏁版嵁搴�)
+ String[] corrects = rightAnswer.split(SPLIT);
+ if (corrects.length > 1) {
+ question.setCorrect(Arrays.asList(corrects).stream().collect(Collectors.joining(",")));
+ } else {
+ question.setCorrect(rightAnswer);
+ }
+
+ // 闅惧害
+ question.setDifficult(excelQuestion.getDifficult());
+ // 鍒嗘暟
+ if (StringUtils.isBlank(excelQuestion.getScore())) {
+ question.setScore(ExamUtil.scoreFromVM(QuestionSourceEnum.fromType(question.getQuestionType()) + ""));
+ } else {
+ question.setScore(ExamUtil.scoreFromVM(String.valueOf(excelQuestion.getScore())));
+ }
+ // 鍒涘缓浜�
+ question.setCreateUser(1);
+ question.setStatus(QuestionStatusEnum.OK.getCode());
+ question.setCreateTime(new Date());
+ question.setDeleted(Boolean.FALSE);
+// question.setInfoTextContentId(textContent.getId());
+ questionService.updateByIdFilter(question);
+
+ }
+
// @PostMapping("/import")
// public RestResponse importQuestion(@RequestPart("file") MultipartFile file) throws Exception {
// List<QuestionEditVO> questionEditVOS = ExcelUtils.readMultipartFile(file, QuestionEditVO.class)
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java b/src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java
index 53eb944..5f6dff4 100644
--- a/src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java
+++ b/src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java
@@ -26,7 +26,7 @@
private String contentType;
/** 鏂囦欢鍦板潃 */
- @NotNull(message = "璇蜂笂浼犳枃浠�")
+// @NotNull(message = "璇蜂笂浼犳枃浠�")
private UploadFile contentUrl;
private String contentUrlString;
diff --git a/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
index 7cb8fb0..7dbf200 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
@@ -36,7 +36,9 @@
public RestResponse add(OnlineStudyVO form) {
OnlineStudy onlineStudy = new OnlineStudy();
BeanUtils.copyProperties(form, onlineStudy);
- onlineStudy.setContentUrl(JSON.toJSONString(form.getContentUrl()));
+ if (Objects.nonNull(form.getContentUrl())) {
+ onlineStudy.setContentUrl(JSON.toJSONString(form.getContentUrl()));
+ }
if (! CollectionUtils.isEmpty(form.getAttachment())) {
onlineStudy.setAttachment(JSON.toJSONString(form.getAttachment()));
}
--
Gitblit v1.8.0