Ver código fonte

新增模式4答题卡管理

wangliang 3 meses atrás
pai
commit
f0eb2127e9

+ 167 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/GenericExamCardModelFourParams.java

@@ -0,0 +1,167 @@
+package com.qmth.distributed.print.business.bean.params;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.enums.ExamCardStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 模式4题卡参数
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2025/3/6
+ */
+public class GenericExamCardModelFourParams implements Serializable {
+
+
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "题卡标题")
+    @NotNull(message = "题卡标题不能为空")
+    private String title;
+
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @NotNull(message = "考试id不能为空")
+    private Long examId;
+
+    @ApiModelProperty(value = "课程id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @NotNull(message = "课程id不能为空")
+    private Long courseId;
+
+    @ApiModelProperty(value = "题卡内容附件")
+    @NotNull(message = "题卡内容附件不能为空")
+    private MultipartFile contentFile;
+
+    @ApiModelProperty(value = "题卡内容附件md5")
+    @NotNull(message = "题卡内容附件md5不能为空")
+    private String contentMd5;
+
+    @ApiModelProperty(value = "题卡html附件")
+    @NotNull(message = "题卡html附件不能为空")
+    private MultipartFile htmlContentFile;
+
+    @ApiModelProperty(value = "题卡html附件md5")
+    @NotNull(message = "题卡html附件md5不能为空")
+    private String htmlContentMd5;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "题卡规则id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @NotNull(message = "题卡规则id不能为空")
+    private Long cardRuleId;
+
+    @ApiModelProperty(value = "STAGE-暂存,SUBMIT-提交")
+    @NotNull(message = "提交状态不能为空")
+    private ExamCardStatusEnum status;
+
+    @ApiModelProperty(value = "题卡纸张大小(A3,8K)")
+    @NotNull(message = "题卡纸张大小不能为空")
+    private String pageSize;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public Long getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Long courseId) {
+        this.courseId = courseId;
+    }
+
+    public MultipartFile getContentFile() {
+        return contentFile;
+    }
+
+    public void setContentFile(MultipartFile contentFile) {
+        this.contentFile = contentFile;
+    }
+
+    public String getContentMd5() {
+        return contentMd5;
+    }
+
+    public void setContentMd5(String contentMd5) {
+        this.contentMd5 = contentMd5;
+    }
+
+    public MultipartFile getHtmlContentFile() {
+        return htmlContentFile;
+    }
+
+    public void setHtmlContentFile(MultipartFile htmlContentFile) {
+        this.htmlContentFile = htmlContentFile;
+    }
+
+    public String getHtmlContentMd5() {
+        return htmlContentMd5;
+    }
+
+    public void setHtmlContentMd5(String htmlContentMd5) {
+        this.htmlContentMd5 = htmlContentMd5;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Long getCardRuleId() {
+        return cardRuleId;
+    }
+
+    public void setCardRuleId(Long cardRuleId) {
+        this.cardRuleId = cardRuleId;
+    }
+
+    public ExamCardStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(ExamCardStatusEnum status) {
+        this.status = status;
+    }
+
+    public String getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(String pageSize) {
+        this.pageSize = pageSize;
+    }
+}

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamCardModelFour.java

@@ -62,6 +62,9 @@ public class ExamCardModelFour extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "题卡纸张大小(A3,8K)")
     private String pageSize;
 
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
     public Long getSchoolId() {
         return schoolId;
     }
@@ -157,4 +160,12 @@ public class ExamCardModelFour extends BaseEntity implements Serializable {
     public void setPageSize(String pageSize) {
         this.pageSize = pageSize;
     }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
 }

+ 1 - 0
distributed-print/install/mysql/upgrade/3.4.4.sql

@@ -199,6 +199,7 @@ CREATE TABLE IF NOT EXISTS `exam_card_model_four` (
   `update_id` bigint DEFAULT NULL COMMENT '更新人',
   `update_time` bigint DEFAULT NULL COMMENT '更新时间',
   `page_size` varchar(10) DEFAULT NULL COMMENT '题卡纸张大小(A3,8K)',
+  `remark` mediumtext COMMENT '备注',
   PRIMARY KEY (`id`) USING BTREE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='模式4题卡';
 

+ 73 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardModelFourController.java

@@ -2,11 +2,23 @@ package com.qmth.distributed.print.api;
 
 
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.distributed.print.business.bean.params.GenericExamCardModelFourParams;
+import com.qmth.distributed.print.business.bean.params.GenericExamCardParams;
+import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.distributed.print.business.service.ExamCardModelFourService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
 
 /**
  * <p>
@@ -16,9 +28,65 @@ import org.springframework.web.bind.annotation.RestController;
  * @author wangliang
  * @since 2025-03-06
  */
-@Api(tags = "版本管理Controller")
+@Api(tags = "模式4题卡Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_VERSION)
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/model_4/card")
 public class ExamCardModelFourController {
 
+    @Resource
+    ExamCardModelFourService examCardModelFourService;
+
+    @ApiOperation(value = "分页查询")
+    @RequestMapping(value = "/page", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "新增", response = EditResult.class)})
+    public Result page(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
+                       @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
+                       @ApiParam(value = "课程代码") @RequestParam(required = false) Long courseId,
+                       @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
+                       @ApiParam(value = "开课学院ID") @RequestParam(required = false) String collegeId,
+                       @ApiParam(value = "题卡名称模糊查询") @RequestParam(required = false) String title,
+                       @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                       @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        return ResultUtil.ok();
+    }
+
+    @ApiOperation(value = "根据ID获取题卡详情")
+    @RequestMapping(value = "/get_one", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "根据ID获取题卡详情", response = EditResult.class)})
+    public Result getOne(@ApiParam(value = "题卡id", required = true) @RequestParam(value = "cardId") Long cardId) {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "新增/修改")
+    @RequestMapping(value = "/save_generic", method = RequestMethod.POST)
+    @OperationLogDetail(operationType = OperationTypeEnum.SAVE, detail = "新增/修改操作,题卡ID:{{params.id}}、题卡标题:{{params.title}}")
+    @ApiResponses({@ApiResponse(code = 200, message = "新增/修改", response = EditResult.class)})
+    public Result saveGeneric(@ApiParam(value = "题卡信息", required = true) @Valid @RequestBody GenericExamCardModelFourParams params, BindingResult bindingResult) throws Exception {
+        if (bindingResult.hasErrors()) {
+            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
+        }
+        return ResultUtil.ok();
+    }
+
+    @ApiOperation(value = "删除")
+    @RequestMapping(value = "/delete_generic", method = RequestMethod.POST)
+    @OperationLogDetail(operationType = OperationTypeEnum.DELETE, detail = "删除操作,题卡ID:{{id}}")
+    @ApiResponses({@ApiResponse(code = 200, message = "删除", response = EditResult.class)})
+    public Result save(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
+        return ResultUtil.ok();
+    }
+
+    @ApiOperation(value = "题卡转图片")
+    @RequestMapping(value = "/convert_image", method = RequestMethod.POST)
+    @OperationLogDetail(operationType = OperationTypeEnum.UPDATE, detail = "生成图片操作,题卡ID:{{id}}")
+    @ApiResponses({@ApiResponse(code = 200, message = "删除", response = EditResult.class)})
+    public Result convertImage(@ApiParam(value = "题卡转图片", required = true) @RequestParam(value = "id") Long id) {
+        return ResultUtil.ok();
+    }
+
+    @ApiOperation(value = "导出题卡文件")
+    @RequestMapping(value = "/download_card", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "导出题卡文件", response = EditResult.class)})
+    public void downloadCard(@ApiParam(value = "主键", required = true) @RequestParam(value = "id") Long id) {
+    }
 }