dev-tmp1
luotaiqian 2026-08-18 17:54:53 +08:00
parent 23fa4f5963
commit 38c3cf0a01
5 changed files with 29 additions and 17 deletions

View File

@ -3,13 +3,13 @@ package org.qinan.cedu.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.qinan.cedu.model.dto.PaperCopyDTO; import lombok.RequiredArgsConstructor;
import org.qinan.cedu.model.dto.PaperImportDTO; import org.qinan.cedu.model.dto.*;
import org.qinan.cedu.model.dto.PaperPageQueryDTO;
import org.qinan.cedu.model.dto.PaperUpdateDTO;
import org.qinan.cedu.model.vo.PaperImportVO; import org.qinan.cedu.model.vo.PaperImportVO;
import org.qinan.cedu.model.vo.PaperPageVO; import org.qinan.cedu.model.vo.PaperPageVO;
import org.qinan.cedu.model.vo.PaperQuestionVO;
import org.qinan.cedu.service.PaperService; 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.PageResponse;
import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.SingleResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -21,11 +21,12 @@ import org.springframework.web.bind.annotation.*;
*/ */
@Api(tags = "试卷管理") @Api(tags = "试卷管理")
@RestController @RestController
@RequiredArgsConstructor
@RequestMapping("/safetyEval/paper") @RequestMapping("/safetyEval/paper")
public class PaperController { public class PaperController {
@Autowired private final PaperService paperService;
private PaperService paperService; private final QuestionService questionService;
@ApiOperation("分页查询试卷") @ApiOperation("分页查询试卷")
@GetMapping("/page") @GetMapping("/page")
@ -35,7 +36,7 @@ public class PaperController {
} }
@ApiOperation("修改试卷基本信息") @ApiOperation("修改试卷基本信息")
@PutMapping @PutMapping("/update/basic")
public SingleResponse<Void> update(@Validated @RequestBody PaperUpdateDTO updateDTO) { public SingleResponse<Void> update(@Validated @RequestBody PaperUpdateDTO updateDTO) {
paperService.updatePaper(updateDTO); paperService.updatePaper(updateDTO);
return SingleResponse.success(); return SingleResponse.success();
@ -61,4 +62,11 @@ public class PaperController {
public PaperImportVO importQuestions(@Validated PaperImportDTO paperImportDTO) { public PaperImportVO importQuestions(@Validated PaperImportDTO paperImportDTO) {
return paperService.importQuestions(paperImportDTO); return paperService.importQuestions(paperImportDTO);
} }
@ApiOperation("试卷试题分页查询")
@GetMapping("/paper/question/page")
public PageResponse<PaperQuestionVO> page(@Validated PaperQuestionPageQueryDTO query) {
IPage<PaperQuestionVO> page = questionService.pagePaperQuestions(query);
return PageResponse.of(page.getRecords(), page.getTotal());
}
} }

View File

@ -2,6 +2,7 @@ package org.qinan.cedu.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.qinan.cedu.model.dto.PaperQuestionDeleteDTO; import org.qinan.cedu.model.dto.PaperQuestionDeleteDTO;
import org.qinan.cedu.model.dto.PaperQuestionSaveDTO; import org.qinan.cedu.model.dto.PaperQuestionSaveDTO;
import org.qinan.cedu.service.PaperQuestionRelService; import org.qinan.cedu.service.PaperQuestionRelService;
@ -18,11 +19,11 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@Api(tags = "试卷试题管理") @Api(tags = "试卷试题管理")
@RestController @RestController
@RequiredArgsConstructor
@RequestMapping("/safetyEval/paperQuestionRel") @RequestMapping("/safetyEval/paperQuestionRel")
public class PaperQuestionRelController { public class PaperQuestionRelController {
@Autowired private final PaperQuestionRelService paperQuestionRelService;
private PaperQuestionRelService paperQuestionRelService;
@ApiOperation("新增试卷试题(习题)") @ApiOperation("新增试卷试题(习题)")
@PostMapping("/save") @PostMapping("/save")

View File

@ -3,6 +3,7 @@ package org.qinan.cedu.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.qinan.cedu.model.dto.PaperQuestionPageQueryDTO; import org.qinan.cedu.model.dto.PaperQuestionPageQueryDTO;
import org.qinan.cedu.model.dto.QuestionUpdateDTO; import org.qinan.cedu.model.dto.QuestionUpdateDTO;
import org.qinan.cedu.model.vo.PaperQuestionVO; import org.qinan.cedu.model.vo.PaperQuestionVO;
@ -23,10 +24,10 @@ import org.springframework.web.bind.annotation.RestController;
@Api(tags = "试题管理") @Api(tags = "试题管理")
@RestController @RestController
@RequestMapping("/safetyEval/question") @RequestMapping("/safetyEval/question")
@RequiredArgsConstructor
public class QuestionController { public class QuestionController {
@Autowired private final QuestionService questionService;
private QuestionService questionService;
@ApiOperation("编辑习题") @ApiOperation("编辑习题")
@PostMapping("/modify") @PostMapping("/modify")
@ -35,10 +36,4 @@ public class QuestionController {
return SingleResponse.success(); return SingleResponse.success();
} }
@ApiOperation("试卷试题分页查询")
@GetMapping("/page")
public PageResponse<PaperQuestionVO> page(@Validated PaperQuestionPageQueryDTO query) {
IPage<PaperQuestionVO> page = questionService.pagePaperQuestions(query);
return PageResponse.of(page.getRecords(), page.getTotal());
}
} }

View File

@ -27,6 +27,9 @@ public class PaperPageVO {
@ApiModelProperty("合格分数") @ApiModelProperty("合格分数")
private BigDecimal paperPassScore; private BigDecimal paperPassScore;
@ApiModelProperty("试卷状态 normal 正常")
private String status;
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime; private LocalDateTime createTime;

View File

@ -299,7 +299,10 @@ public class QuestionExcelImporter {
} }
QuestionDO questionDO = buildChoiceQuestion(row, questionType, answerLetters, coursewareManagementId); QuestionDO questionDO = buildChoiceQuestion(row, questionType, answerLetters, coursewareManagementId);
questionDO.setQuestionNum(rowIndex - HEAD_ROW_NUMBER);
List<QuestionOptionDO> questionOptionDOS = buildOptions(questionDO.getId(), options, answerLetters); List<QuestionOptionDO> questionOptionDOS = buildOptions(questionDO.getId(), options, answerLetters);
questionDO.setAnswerQuestionOptionIds(joinCorrectOptionIds(questionOptionDOS));
parseResult.getQuestions().add(questionDO); parseResult.getQuestions().add(questionDO);
parseResult.getOptions().addAll(questionOptionDOS); parseResult.getOptions().addAll(questionOptionDOS);
} }
@ -377,6 +380,8 @@ public class QuestionExcelImporter {
question.setAnalysis(row.getAnalysis().trim()); question.setAnalysis(row.getAnalysis().trim());
question.setTagType(row.getTagType().trim()); question.setTagType(row.getTagType().trim());
question.setCoursewareManagementId(coursewareManagementId); question.setCoursewareManagementId(coursewareManagementId);
question.setQuestionNum(rowIndex - HEAD_ROW_NUMBER);
InsertFieldDefaults.applyIgnoreOrgId(question);
Map<String, String> optionTexts = new LinkedHashMap<>(); Map<String, String> optionTexts = new LinkedHashMap<>();
optionTexts.put(OPTION_KEY_A, JUDGE_CORRECT_OPTION_TEXT); optionTexts.put(OPTION_KEY_A, JUDGE_CORRECT_OPTION_TEXT);
optionTexts.put(OPTION_KEY_B, JUDGE_WRONG_OPTION_TEXT); optionTexts.put(OPTION_KEY_B, JUDGE_WRONG_OPTION_TEXT);