test
parent
1abec00b36
commit
8833a1d575
|
|
@ -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<PaperImportVO> importQuestions(@Validated PaperImportDTO paperImportDTO) {
|
||||
return SingleResponse.success(paperService.importQuestions(paperImportDTO));
|
||||
}
|
||||
|
||||
@ApiOperation("新建试卷-导入试题-模板")
|
||||
@GetMapping("/import/template")
|
||||
public SingleResponse<String> importQuestionsTemplate() {
|
||||
return SingleResponse.success(paperService.importQuestionsTemplate());
|
||||
}
|
||||
|
||||
@ApiOperation("试卷试题分页查询")
|
||||
|
|
|
|||
|
|
@ -80,4 +80,13 @@ public interface PaperService extends IService<PaperDO> {
|
|||
* @return 导入结果(成功条数+异常明细)
|
||||
*/
|
||||
PaperImportVO importQuestions(PaperImportDTO importDTO);
|
||||
|
||||
/**
|
||||
* importQuestionsTemplate
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
String importQuestionsTemplate();
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<PaperMapper, PaperDO> 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<PaperPageVO> pageQuery(PaperPageQueryDTO query) {
|
||||
|
|
@ -150,15 +151,18 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
|||
List<QuestionOptionDO> options = allOptions.stream()
|
||||
.filter(option -> oldQuestionId.equals(option.getQuestionId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<QuestionOptionDO> 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<PaperMapper, PaperDO> implemen
|
|||
Db.saveBatch(rels);
|
||||
return new PaperImportVO(questions.size(), parseResult.getErrors());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String importQuestionsTemplate() {
|
||||
return paperImportUrl;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,20 +4,20 @@
|
|||
|
||||
<select id="pagePaperQuestions" resultType="org.qinan.cedu.model.vo.PaperQuestionVO">
|
||||
SELECT q.id, q.title, q.score, q.answer_question_option_ids, q.analysis
|
||||
, q.question_type, q.tag_type, pqr.question_num
|
||||
, cm.courseware_name
|
||||
, q.question_type, q.tag_type, pqr.question_num,q.answer
|
||||
, cm.courseware_name
|
||||
FROM paper_question_rel pqr
|
||||
JOIN question q ON pqr.question_id = q.id
|
||||
LEFT JOIN courseware_management cm ON cm.id = q.courseware_management_id
|
||||
WHERE pqr.paper_id = #{query.paperId}
|
||||
AND pqr.delete_enum = 0
|
||||
AND q.delete_enum = 0
|
||||
AND pqr.delete_enum = 0
|
||||
AND q.delete_enum = 0
|
||||
<if test="query.title != null and query.title != ''">
|
||||
AND q.title LIKE CONCAT('%', #{query.title}, '%')
|
||||
</if>
|
||||
<if test="query.questionType != null and query.questionType != ''">
|
||||
AND q.question_type = #{query.questionType}
|
||||
</if>
|
||||
ORDER BY pqr.question_num ASC
|
||||
ORDER BY pqr.question_num ASC
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue