Bladeren bron

图片查重

qin 1 jaar geleden
bovenliggende
commit
ad8b334dad

+ 23 - 6
src/main/java/com/poteviohealth/cgp/statistics/controller/OrderController.java

@@ -30,12 +30,15 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
@@ -209,16 +212,30 @@ public class OrderController extends BaseWebController {
         log.info(orderId);
         //图片检查
         try {
-            DistinctionDTO dto = distinctionService.checkImg(file,orderId,uidList);
+            DistinctionDTO dto;
+            Integer pos = file.getOriginalFilename().lastIndexOf('.');
+            String suffix = "";
+            if (pos != -1) {
+                suffix = file.getOriginalFilename().substring(pos);
+            }
+            if(suffix.indexOf("mp4") != -1){
+                //视频处理
+                File tempFile = File.createTempFile("temp_", "."+suffix);
+                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();
+                imageFile.delete();
+            }else{
+                //图片处理
+                dto = distinctionService.checkImg(file,orderId,uidList);
+            }
+
             if(dto.getOrderId() ==null){
                 VaultsResponse<String> vaultsResponse = ossUtils.uploadOneFile(file,orderId);
-                log.info(vaultsResponse.getData());
-           /* if(vaultsResponse.validate()){
-                return orderService.updateOrderUrl(list);
-            }*/
                 dto.setUrl(vaultsResponse.getData());
             }
-
             return VaultsResponse.success(dto);
         } catch (IOException e) {
             e.printStackTrace();

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

@@ -14,7 +14,6 @@ import com.poteviohealth.cgp.statistics.mapper.DistinctionMapper;
 import com.poteviohealth.cgp.statistics.model.Distinction;
 import com.poteviohealth.cgp.statistics.model.outdto.DistinctionDTO;
 import com.poteviohealth.cgp.statistics.service.IDistinctionService;
-import com.poteviohealth.cgp.statistics.utils.OssUtils;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
@@ -23,7 +22,6 @@ 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,29 +40,11 @@ public class DistinctionServiceImpl extends BaseServiceImpl<DistinctionMapper, D
     private CacheService cacheService;
     @Value("${sync.dbName}")
     private String dbName;
-    @Resource
-    private OssUtils ossUtils;
 
     @Override
     public DistinctionDTO checkImg(MultipartFile file, Long orderId, List<String> uidList) throws IOException {
         DistinctionDTO dto = new DistinctionDTO();
-        Integer pos = file.getOriginalFilename().lastIndexOf('.');
-        String suffix = "";
-        String uid;
-        if (pos != -1) {
-            suffix = file.getOriginalFilename().substring(pos);
-        }
-        if(suffix.indexOf("mp4") != -1){
-            log.info("fileName==="+file.getOriginalFilename());
-            File tempFile = File.createTempFile("temp_", ".mp4");
-            file.transferTo(tempFile);
-            File outFile = ossUtils.generateCover(tempFile);
-            uid = ImageUtils.readImagePix(outFile);
-            //tempFile.deleteOnExit();
-            //outFile.deleteOnExit();
-        }else{
-            uid = ImageUtils.readImagePix(file.getInputStream());
-        }
+        String uid = ImageUtils.readImagePix(file.getInputStream());
         dto.setUid(uid);
         if("0".equals(orderCacheVal(CgpTool.CACHE_ORDER_PHOTO_CHECK))){
             return dto;