diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/PaperController.java b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/PaperController.java index 013cfdf7..12cd819b 100644 --- a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/PaperController.java +++ b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/PaperController.java @@ -12,7 +12,6 @@ import org.qinan.cedu.service.PaperService; import org.qinan.cedu.service.QuestionService; import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -56,11 +55,16 @@ public class PaperController { return SingleResponse.success(); } - @ApiOperation("新建试卷-导入试题") @PostMapping("/import") - public PaperImportVO importQuestions(@Validated PaperImportDTO paperImportDTO) { - return paperService.importQuestions(paperImportDTO); + public SingleResponse importQuestions(@Validated PaperImportDTO paperImportDTO) { + return SingleResponse.success(paperService.importQuestions(paperImportDTO)); + } + + @ApiOperation("新建试卷-导入试题-模板") + @GetMapping("/import/template") + public SingleResponse importQuestionsTemplate() { + return SingleResponse.success(paperService.importQuestionsTemplate()); } @ApiOperation("试卷试题分页查询") diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/service/PaperService.java b/safety-cedu-service/src/main/java/org/qinan/cedu/service/PaperService.java index 1311c4c4..964bd7e4 100644 --- a/safety-cedu-service/src/main/java/org/qinan/cedu/service/PaperService.java +++ b/safety-cedu-service/src/main/java/org/qinan/cedu/service/PaperService.java @@ -80,4 +80,13 @@ public interface PaperService extends IService { * @return 导入结果(成功条数+异常明细) */ PaperImportVO importQuestions(PaperImportDTO importDTO); + + /** + * importQuestionsTemplate + * + * @return String + */ + String importQuestionsTemplate(); + + } diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/PaperServiceImpl.java b/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/PaperServiceImpl.java index e8b1b649..c7811fa2 100644 --- a/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/PaperServiceImpl.java +++ b/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/PaperServiceImpl.java @@ -28,7 +28,7 @@ import org.qinan.cedu.model.vo.PaperPageVO; import org.qinan.cedu.service.PaperService; import org.qinan.cedu.service.support.QuestionExcelImporter; import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -36,7 +36,6 @@ import org.springframework.util.StringUtils; import java.time.LocalDateTime; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -52,9 +51,11 @@ public class PaperServiceImpl extends ServiceImpl implemen private final PaperQuestionRelMapper paperQuestionRelMapper; private final QuestionOptionMapper questionOptionMapper; private final QuestionExcelImporter questionExcelImporter; + private final PaperConvertor paperConvertor; + + @Value("${template.paper.importUrl:}") + private String paperImportUrl; - @Autowired - private PaperConvertor paperConvertor; @Override public IPage pageQuery(PaperPageQueryDTO query) { @@ -150,15 +151,18 @@ public class PaperServiceImpl extends ServiceImpl implemen List options = allOptions.stream() .filter(option -> oldQuestionId.equals(option.getQuestionId())) .collect(Collectors.toList()); + + List newQueOptions = new ArrayList<>(); for (QuestionOptionDO option : options) { option.setId(IdUtil.getSnowflakeNextId()); option.setQuestionId(newQuestionId); InsertFieldDefaults.applyIgnoreOrgId(option); + newQueOptions.add(option); newOptions.add(option); } - question.setAnswerQuestionOptionIds(newOptions.stream().filter(QuestionOptionDO::getIsCorrect) + question.setAnswerQuestionOptionIds(newQueOptions.stream().filter(QuestionOptionDO::getIsCorrect) .map(it -> String.valueOf(it.getId())).collect(Collectors.joining(","))); - question.setAnswer(newOptions.stream().filter(QuestionOptionDO::getIsCorrect) + question.setAnswer(newQueOptions.stream().filter(QuestionOptionDO::getIsCorrect) .map(QuestionOptionDO::getOptionKey).collect(Collectors.joining(","))); PaperQuestionRelDO rel = new PaperQuestionRelDO(); @@ -257,4 +261,9 @@ public class PaperServiceImpl extends ServiceImpl implemen Db.saveBatch(rels); return new PaperImportVO(questions.size(), parseResult.getErrors()); } + + @Override + public String importQuestionsTemplate() { + return paperImportUrl; + } } diff --git a/safety-cedu-service/src/main/resources/mapper/QuestionMapper.xml b/safety-cedu-service/src/main/resources/mapper/QuestionMapper.xml index 5d50cea6..0e7ad226 100644 --- a/safety-cedu-service/src/main/resources/mapper/QuestionMapper.xml +++ b/safety-cedu-service/src/main/resources/mapper/QuestionMapper.xml @@ -4,20 +4,20 @@