Ver Fonte

图片查重

qin há 1 ano atrás
pai
commit
bb121d5d4c

+ 45 - 9
src/main/java/com/poteviohealth/cgp/statistics/controller/OrderController.java

@@ -217,19 +217,18 @@ public class OrderController extends BaseWebController {
             if (pos != -1) {
                 suffix = file.getOriginalFilename().substring(pos);
             }
+            File tempFile = File.createTempFile("temp_", "."+suffix);
+            file.transferTo(tempFile);
             if(suffix.indexOf("mp4") != -1){
                 //视频处理
-                File tempFile = File.createTempFile("temp_", ".mp4");
-                file.transferTo(tempFile);
                 File imageFile = ossUtils.generateCover(tempFile);
-                MultipartFile tempMultipartFile =  new MockMultipartFile(imageFile.getName(), new FileInputStream(imageFile));
-                dto = distinctionService.checkImg(tempMultipartFile,orderId,uidList);
-                tempFile.delete();
+                dto = distinctionService.checkImg(imageFile,orderId,uidList);
                 imageFile.delete();
             }else{
                 //图片处理
-                dto = distinctionService.checkImg(file,orderId,uidList);
+                dto = distinctionService.checkImg(tempFile,orderId,uidList);
             }
+            tempFile.delete();
             return VaultsResponse.success(dto);
         } catch (IOException e) {
             e.printStackTrace();
@@ -243,11 +242,48 @@ public class OrderController extends BaseWebController {
     @ApiOperation(value = "阿里云图片上传")
     @MethodTime
     @ResponseBody
-    public VaultsResponse<String> uploadArrayFile(@RequestParam("file") MultipartFile file,@RequestParam("orderId") Long orderId,@RequestParam("uidList") List<String> uidList){
-        log.info(orderId);
+    public VaultsResponse<DistinctionDTO> uploadArrayFile(@RequestParam("file") MultipartFile file,@RequestParam("orderId") Long orderId,@RequestParam("uidList") List<String> uidList){
+       /* log.info(orderId);
         VaultsResponse<String> vaultsResponse = ossUtils.uploadOneFile(file,orderId);
         log.info(vaultsResponse.getData());
-        return vaultsResponse;
+        return vaultsResponse;*/
+        //图片检查
+        try {
+            DistinctionDTO dto;
+            Integer pos = file.getOriginalFilename().lastIndexOf('.');
+            String suffix = "";
+            if (pos != -1) {
+                suffix = file.getOriginalFilename().substring(pos);
+            }
+            File tempFile = File.createTempFile("temp_", "."+suffix);
+            file.transferTo(tempFile);
+            if(suffix.indexOf("mp4") != -1){
+                //视频处理
+                File imageFile = ossUtils.generateCover(tempFile);
+                dto = distinctionService.checkImg(imageFile,orderId,uidList);
+                if(dto.getOrderId() ==null){
+                    MultipartFile videoFile =  new MockMultipartFile(tempFile.getName(), new FileInputStream(tempFile));
+                    VaultsResponse<String> vaultsResponse = ossUtils.uploadOneFile(videoFile,orderId);
+                    dto.setUrl(vaultsResponse.getData());
+                }
+                imageFile.delete();
+            }else{
+                //图片处理
+                dto = distinctionService.checkImg(tempFile,orderId,uidList);
+                if(dto.getOrderId() ==null){
+                    VaultsResponse<String> vaultsResponse = ossUtils.uploadOneFile(file,orderId);
+                    dto.setUrl(vaultsResponse.getData());
+                }
+            }
+
+            tempFile.delete();
+
+            return VaultsResponse.success(dto);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return VaultsResponse.failed();
+
     }
 
     @PostMapping("/orderFile")

+ 2 - 2
src/main/java/com/poteviohealth/cgp/statistics/service/IDistinctionService.java

@@ -3,8 +3,8 @@ package com.poteviohealth.cgp.statistics.service;
 import com.poteviohealth.cgp.common.service.IBaseService;
 import com.poteviohealth.cgp.statistics.model.Distinction;
 import com.poteviohealth.cgp.statistics.model.outdto.DistinctionDTO;
-import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
@@ -14,5 +14,5 @@ import java.util.List;
  */
 public interface IDistinctionService extends IBaseService<Distinction> {
 
-    DistinctionDTO checkImg(MultipartFile file, Long orderId, List<String> uidList) throws IOException;
+    DistinctionDTO checkImg(File file, Long orderId, List<String> uidList) throws IOException;
 }

+ 3 - 3
src/main/java/com/poteviohealth/cgp/statistics/service/impl/DistinctionServiceImpl.java

@@ -19,9 +19,9 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.File;
 import java.io.IOException;
 import java.util.Date;
 import java.util.List;
@@ -42,9 +42,9 @@ public class DistinctionServiceImpl extends BaseServiceImpl<DistinctionMapper, D
     private String dbName;
 
     @Override
-    public DistinctionDTO checkImg(MultipartFile file, Long orderId, List<String> uidList) throws IOException {
+    public DistinctionDTO checkImg(File file, Long orderId, List<String> uidList) throws IOException {
         DistinctionDTO dto = new DistinctionDTO();
-        String uid = ImageUtils.readImagePix(file.getInputStream());
+        String uid = ImageUtils.readImagePix(file);
         dto.setUid(uid);
         if("0".equals(orderCacheVal(CgpTool.CACHE_ORDER_PHOTO_CHECK))){
             return dto;

+ 0 - 1
src/main/java/com/poteviohealth/cgp/statistics/utils/OssUtils.java

@@ -39,7 +39,6 @@ public class OssUtils {
     @Value("${aliyun.oss.dir}")
     private String dir;
 
-
     public VaultsResponse<String> uploadOneFile(MultipartFile dto,Long orderId) {
         // 创建OSSClient实例。