Procházet zdrojové kódy

add:客观题标答导入md5校验

caozixuan před 1 rokem
rodič
revize
c9854b1635

+ 14 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkQuestionController.java

@@ -10,10 +10,12 @@ import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.ExamTaskUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.dto.mark.setting.MarkQuestionDto;
 import com.qmth.teachcloud.mark.params.MarkObjectiveQuestionParams;
 import com.qmth.teachcloud.mark.params.MarkQuestionParams;
@@ -21,12 +23,16 @@ import com.qmth.teachcloud.mark.service.MarkQuestionService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -40,6 +46,7 @@ import java.util.List;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_MARK + "/question")
 public class MarkQuestionController extends BaseController {
+    private final static Logger log = LoggerFactory.getLogger(MarkQuestionController.class);
 
     @Resource
     private MarkQuestionService markQuestionService;
@@ -131,6 +138,13 @@ public class MarkQuestionController extends BaseController {
     public Result objectiveImport(@ApiParam(value = "考试ID", required = true) @RequestParam String examId,
             @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
             @ApiParam(value = "标答excel文件",required = true) @RequestParam MultipartFile file) throws Exception {
+        String md5 = ServletUtil.getRequestMd5();
+        String fileMd5 = DigestUtils.md5Hex(file.getBytes());
+        log.info("fileMd5:{}", fileMd5);
+        log.info("md5:{}", md5);
+        if (!Objects.equals(fileMd5, md5)) {
+            throw ExceptionResultEnum.MD5_EQUALS_FALSE.exception();
+        }
         markQuestionService.objectiveAnswerSettingImport(SystemConstant.convertIdToLong(examId), paperNumber, file);
         return ResultUtil.ok();
     }