Ver código fonte

增加PaperType接口,修改试卷上传接口

4228306 5 anos atrás
pai
commit
b867f00046

+ 7 - 32
src/main/java/com/yaoxiang/diagnosis/controller/PaperController.java

@@ -11,6 +11,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.FileCopyUtils;
 import org.springframework.util.StringUtils;
@@ -32,14 +34,13 @@ import java.util.List;
 @Api(tags = "试卷管理")
 public class PaperController {
 
+    private static final Logger logger = LoggerFactory.getLogger(PaperController.class);
+
     @Resource
     private PaperService paperService;
-    //    @Resource
-//    private FileService fileService;
     @Resource
     private FileService fileService;
 
-    //   @PreAuthorize("hasRole('ROLE_ADMIN')")
     @ApiOperation(value = "查询所有试卷")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "subjectId", value = "科目Id", paramType = "query"),
@@ -57,20 +58,12 @@ public class PaperController {
         return paperService.getOneWithAuth(id);
     }
 
-    //    @PreAuthorize("hasRole('ROLE_ADMIN')")
     @ApiOperation(value = "新增试卷")
     @RequestMapping(value = "/add", method = RequestMethod.POST)
     public Result add(@RequestBody Paper paper) {
         return paperService.add(paper);
     }
 
-    //    @PreAuthorize("hasRole('ROLE_ADMIN')")
-//    @ApiOperation(value = "编辑试卷")
-//    @RequestMapping(value = "/update", method = RequestMethod.POST)
-//    public Result update(@RequestBody Paper paper) {
-//        return paperService.update(paper);
-//    }
-
     @ApiOperation("更新试卷参数")
     @PostMapping("/updateParams")
     public Result updateParams(Long pid, String name, String grade, String sectionNums,
@@ -85,7 +78,6 @@ public class PaperController {
         return paperService.update(paper);
     }
 
-
     @PostMapping("/invalidate")
     @ApiOperation(value = "作废试卷")
     public Result invalidate(Long pid) {
@@ -94,21 +86,15 @@ public class PaperController {
         return paperService.update(paper);
     }
 
-    //    @PreAuthorize("hasRole('ROLE_ADMIN')")
     @ApiOperation(value = "删除试卷 假删除")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     public void delete(@RequestParam Long id) {
         paperService.delete(id);
     }
 
-    //    @PreAuthorize("hasRole('ROLE_ADMIN')")
     @ApiOperation(value = "上传试卷")
     @PostMapping("uploadPaper")
-    @ApiImplicitParams({@ApiImplicitParam(name = "paperTemplateId", paramType = "query", value = "试卷模板Id 默认1"),
-            @ApiImplicitParam(name = "useAbility", paramType = "query", defaultValue = "false")
-    })
     public Result uploadPaper(PaperVo paperVo,
-                              @RequestParam(defaultValue = "1") Long paperTemplateId,
                               @RequestBody MultipartFile file) throws IOException {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         FileCopyUtils.copy(file.getInputStream(), baos);
@@ -116,22 +102,17 @@ public class PaperController {
         String suffix = file.getOriginalFilename().substring(suffixIndex);
         String saveName = CommonUtil.randomUUID() + suffix;
         byte[] data = baos.toByteArray();
-//        byte[] clone = data.clone();
-//        String url = fileService.upload(data, UploadProperties.DOC_PATH, saveName);
+        logger.info("正在上传试卷,subjectId={},grade={}",paperVo.getSubjectId(),paperVo.getGrade());
         String url = fileService.upload(data, saveName);
         if (StringUtils.isEmpty(url)) {
             return Result.fail("文件上传失败,请重试");
         }
-        return paperService.uploadPaper(paperVo, paperTemplateId, url, data);
+        return paperService.uploadPaper(paperVo, 1L, url, data);
     }
 
     @ApiOperation(value = "测试上传试卷,不会保存试卷")
     @PostMapping("uploadPaperTest")
-    @ApiImplicitParams({@ApiImplicitParam(name = "paperTemplateId", paramType = "query", value = "试卷模板Id 默认1"),
-            @ApiImplicitParam(name = "useAbility", paramType = "query", defaultValue = "false")
-    })
     public Result uploadPaperTest(PaperVo paperVo,
-                                  @RequestParam(defaultValue = "1") Long paperTemplateId,
                                   @RequestBody MultipartFile file) throws IOException {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         FileCopyUtils.copy(file.getInputStream(), baos);
@@ -139,12 +120,6 @@ public class PaperController {
         String suffix = file.getOriginalFilename().substring(suffixIndex);
         String saveName = CommonUtil.randomUUID() + suffix;
         byte[] data = baos.toByteArray();
-//        byte[] clone = data.clone();
-//        String url = fileService.upload(data, UploadProperties.DOC_PATH, saveName);
-//        String url = fileService.upload(data, saveName);
-//        if (StringUtils.isEmpty(url)) {
-//            return Result.fail("文件上传失败,请重试");
-//        }
-        return paperService.uploadPaperTest(paperVo, paperTemplateId, "", data);
+        return paperService.uploadPaperTest(paperVo, 1L, "", data);
     }
 }

+ 73 - 0
src/main/java/com/yaoxiang/diagnosis/controller/PaperTypeController.java

@@ -0,0 +1,73 @@
+package com.yaoxiang.diagnosis.controller;
+
+import com.yaoxiang.diagnosis.dao.PaperTypeDao;
+import com.yaoxiang.diagnosis.entity.PaperType;
+import com.yaoxiang.diagnosis.model.Result;
+import io.swagger.annotations.Api;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.domain.Example;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api("试卷类型")
+@RestController
+@RequestMapping("paperType")
+public class PaperTypeController {
+
+    @Resource
+    private PaperTypeDao paperTypeDao;
+
+    @GetMapping("/list")
+    public List<PaperType> list(@RequestParam(required = false) String name) {
+        if (StringUtils.isBlank(name)) {
+            return paperTypeDao.findAll();
+        }
+        PaperType paperType = new PaperType();
+        paperType.setName(name);
+        return paperTypeDao.findAll(Example.of(paperType));
+    }
+
+    @PostMapping("add")
+    public Result add(String name, String code) {
+        if (checkName(name)) {
+            return Result.fail("该模板已存在");
+        }
+        PaperType paperType = new PaperType();
+        paperType.setName(name);
+        paperType.setCode(code);
+        paperTypeDao.save(paperType);
+        return Result.ok();
+    }
+
+    @GetMapping("exists")
+    public Result exists(String name) {
+        return Result.ok(checkName(name));
+    }
+
+    @PostMapping("update")
+    public Result update(Long id, String name, String code) {
+        PaperType paperType = paperTypeDao.findById(id).orElse(null);
+        if (paperType == null) {
+            return Result.fail("未找到模板");
+        }
+        paperType.setName(name);
+        paperType.setCode(code);
+        paperTypeDao.save(paperType);
+        return Result.ok();
+    }
+
+    @PostMapping("delete")
+    public Result delete(Long id) {
+        paperTypeDao.deleteById(id);
+        return Result.ok();
+    }
+
+    private boolean checkName(String name) {
+        PaperType paperType = new PaperType();
+        paperType.setName(name);
+        Example<PaperType> example = Example.of(paperType);
+        return paperTypeDao.findOne(example).isPresent();
+    }
+}

+ 7 - 0
src/main/java/com/yaoxiang/diagnosis/dao/PaperTypeDao.java

@@ -0,0 +1,7 @@
+package com.yaoxiang.diagnosis.dao;
+
+import com.yaoxiang.diagnosis.entity.PaperType;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface PaperTypeDao extends JpaRepository<PaperType,Long> {
+}

+ 4 - 13
src/main/java/com/yaoxiang/diagnosis/model/PaperVo.java

@@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel
 public class PaperVo {
-    private String name;
     @ApiModelProperty("年级 1-12 X-Y 1X表示1年级上")
     private String grade;
     @ApiModelProperty("各模块题目数量,以','隔开,单位为分钟 50,10,9")
@@ -14,23 +13,15 @@ public class PaperVo {
     private String sectionDurations;
     @ApiModelProperty("各模块休息时间,以','隔开,单位为分钟 2,2,2")
     private String sectionRests;
-    @ApiModelProperty("说明Id 1")
+    @ApiModelProperty("说明模板Id 1")
     private Long remarkId;
-    @ApiModelProperty("试卷类型Id 1")
+    @ApiModelProperty("试卷类型Id 1能力测评 2专项测评")
     private Long typeId;
-    @ApiModelProperty("科目类别Id 2")
+    @ApiModelProperty("科目类别Id 1语文 2数学 3物理 4化学")
     private Long subjectId;
-    @ApiModelProperty
+    @ApiModelProperty("是否使用能力体系")
     private Boolean useAbility;
 
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
     public String getGrade() {
         return grade;
     }