You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.6 KiB

package com.project.classicpaper.controller;
import com.project.base.domain.result.PageResult;
import com.project.base.domain.result.Result;
import com.project.classicpaper.application.ClassicPaperSetApplicationService;
import com.project.classicpaper.domain.dto.ClassicPaperSetDTO;
import com.project.classicpaper.domain.param.ClassicPaperSetParam;
import com.project.operation.annotation.OperationLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@RestController
@Slf4j
@RequestMapping("/api/admin/classicPaperSet")
public class ClassicPaperSetController {
@Autowired
private ClassicPaperSetApplicationService classicPaperSetApplicationService;
@PostMapping("/generate")
public Result<ClassicPaperSetDTO> generate(ClassicPaperSetDTO request) throws Exception {
return classicPaperSetApplicationService.generate(request);
}
@GetMapping("/list")
public Result<PageResult<ClassicPaperSetDTO>> list(ClassicPaperSetParam param) {
return classicPaperSetApplicationService.list(param);
}
@GetMapping("/detail")
public Result<ClassicPaperSetDTO> detail(ClassicPaperSetParam param) {
return classicPaperSetApplicationService.getDetail(param.getId(), param.getPaperId());
}
/**
* Word 文件导入历史套卷
* 解析 Word 文档 提取题目含图片上传 MinIO 创建套题组setCount=1
*
* @param file Word 文件.docx
* @param classicCategoryId 套题二级分类ID
* @param paperName 套卷名称可选为空时取 Word 文档标题
*/
@PostMapping("/importWord")
public Result<ClassicPaperSetDTO> importFromWord(@RequestParam("file") MultipartFile file,
@RequestParam("classicCategoryId") Long classicCategoryId,
@RequestParam(value = "paperName", required = false) String paperName) throws Exception {
return classicPaperSetApplicationService.importFromWord(file, classicCategoryId, paperName);
}
@PostMapping("/delete")
public Result<String> delete(List<Long> ids) throws Exception {
return classicPaperSetApplicationService.delete(ids);
}
/**
* 更新分值比例同时计算每道题的分值
*/
@PostMapping("/save")
public Result<ClassicPaperSetDTO> save(ClassicPaperSetDTO request) throws Exception {
return classicPaperSetApplicationService.save(request);
}
}