wangliang 1 жил өмнө
parent
commit
39ab0041a2

+ 3 - 1
sop-business/src/main/java/com/qmth/sop/business/service/BasicAttachmentService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.sop.business.entity.BasicAttachment;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
+
 /**
  * <p>
  * 所有附件记录表 服务类
@@ -19,5 +21,5 @@ public interface BasicAttachmentService extends IService<BasicAttachment> {
      *
      * @param file
      */
-    public void validateAttachment(MultipartFile file);
+    public void validateAttachment(MultipartFile file) throws IOException;
 }

+ 9 - 1
sop-business/src/main/java/com/qmth/sop/business/service/impl/BasicAttachmentServiceImpl.java

@@ -8,11 +8,14 @@ import com.qmth.sop.business.mapper.BasicAttachmentMapper;
 import com.qmth.sop.business.service.BasicAttachmentService;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.common.util.ServletUtil;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.List;
@@ -39,7 +42,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
      * @param file
      */
     @Override
-    public void validateAttachment(MultipartFile file) {
+    public void validateAttachment(MultipartFile file) throws IOException {
         String fileName = FilenameUtils.getBaseName(file.getOriginalFilename());
         String format = "." + FilenameUtils.getExtension(file.getOriginalFilename());
 
@@ -71,5 +74,10 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
         if (b.doubleValue() > attachmentSize) {
             throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
         }
+        String fileMd5 = DigestUtils.md5Hex(file.getBytes());
+        String md5 = ServletUtil.getRequestMd5();
+        if (!Objects.equals(fileMd5, md5)) {
+            throw ExceptionResultEnum.MD5_EQUALS_FALSE.exception();
+        }
     }
 }

+ 2 - 0
sop-common/src/main/java/com/qmth/sop/common/enums/ExceptionResultEnum.java

@@ -39,6 +39,8 @@ public enum ExceptionResultEnum {
 
     NOT_LOGIN(HttpStatus.INTERNAL_SERVER_ERROR, 5000012, "请先登录"),
 
+    MD5_EQUALS_FALSE(HttpStatus.INTERNAL_SERVER_ERROR, 5000014, "md5不一致"),
+
     MD5_EMPTY(HttpStatus.INTERNAL_SERVER_ERROR, 5000015, "md5为空"),
 
     FLOW_ENTITY_NO_DATA(HttpStatus.INTERNAL_SERVER_ERROR, 5000016, "流程没有实例数据"),