qin преди 1 година
родител
ревизия
6935a2c59b

+ 0 - 35
src/main/java/com/poteviohealth/cgp/statistics/controller/OrderController.java

@@ -206,40 +206,6 @@ public class OrderController extends BaseWebController {
         return returnVal;
     }
 
-    @RequestMapping(value = "/uploadCheck", method = RequestMethod.POST)
-    @ApiOperation(value = "图片上传前检查")
-    @MethodTime
-    @ResponseBody
-    public VaultsResponse<DistinctionDTO> uploadCheck(@RequestParam("file") MultipartFile file,@RequestParam("orderId") Long orderId,@RequestParam("uidList") List<String> uidList){
-        //图片检查
-        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);
-                imageFile.delete();
-            }else{
-                //图片处理
-                dto = distinctionService.checkImg(tempFile,orderId,uidList);
-            }
-            tempFile.delete();
-            return VaultsResponse.success(dto);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return VaultsResponse.failed();
-    }
-
-
-
     @RequestMapping(value = "/uploadArrayFile", method = RequestMethod.POST)
     @ApiOperation(value = "阿里云图片上传")
     @MethodTime
@@ -252,7 +218,6 @@ public class OrderController extends BaseWebController {
 
         //图片检查
         try {
-            ossUtils.getFile("");
             InputStream inputStream = file.getInputStream();
             DistinctionDTO dto;
             Integer pos = file.getOriginalFilename().lastIndexOf('.');

+ 70 - 0
src/main/java/com/poteviohealth/cgp/statistics/controller/fegin/StatisticsFeignController.java

@@ -0,0 +1,70 @@
+package com.poteviohealth.cgp.statistics.controller.fegin;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.common.collect.Lists;
+import com.poteviohealth.cgp.common.controller.BaseFeignController;
+import com.poteviohealth.cgp.common.integrated.LongParams;
+import com.poteviohealth.cgp.common.integrated.statistics.model.FingerParams;
+import com.poteviohealth.cgp.common.model.VaultsResponse;
+import com.poteviohealth.cgp.statistics.mapstruct.DistinctionConverter;
+import com.poteviohealth.cgp.statistics.model.Distinction;
+import com.poteviohealth.cgp.statistics.service.IDistinctionService;
+import com.poteviohealth.cgp.statistics.utils.OssUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 订单表 第三方接口控制器
+ * </p>
+ *
+ * @author potevio
+ * @since 2019-07-22
+ */
+@Controller
+@RequestMapping("/statistics/feign")
+@Api(tags = {"第三方-统计相关接口"})
+public class StatisticsFeignController extends BaseFeignController {
+
+
+    @Resource
+    private IDistinctionService distinctionService;
+    @Resource
+    private OssUtils ossUtils;
+
+    @ApiOperation(value = "保存订单图片指纹")
+    @RequestMapping(value = "/saveFinger", method = RequestMethod.POST)
+    @ResponseBody
+    public VaultsResponse saveFinger(@RequestBody FingerParams params){
+        List<Distinction> list = Lists.newArrayList();
+        Distinction distinction = DistinctionConverter.INSTANCE.model2WebDTO(params);
+        for (String s : params.getUrlList()) {
+           String uid =  ossUtils.getFileFinger(s);
+            distinction.setUid(uid);
+            distinction.setUrl(s);
+            list.add(distinction);
+        }
+        distinctionService.insertBatch(list);
+        return VaultsResponse.success();
+    }
+
+
+    @ApiOperation(value = "删除订单图片指纹")
+    @RequestMapping(value = "/deleteFinger", method = RequestMethod.POST)
+    @ResponseBody
+    public VaultsResponse deleteFinger(@RequestBody LongParams params){
+        QueryWrapper<Distinction> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("order_id", params.getId());
+        distinctionService.remove(queryWrapper);
+        return VaultsResponse.success();
+    }
+}

+ 23 - 0
src/main/java/com/poteviohealth/cgp/statistics/mapstruct/DistinctionConverter.java

@@ -0,0 +1,23 @@
+package com.poteviohealth.cgp.statistics.mapstruct;
+
+import com.poteviohealth.cgp.common.integrated.statistics.model.FingerParams;
+import com.poteviohealth.cgp.statistics.model.Distinction;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @Description
+ * @Author QIN
+ * @Param 配送单转换
+ * @return
+**/
+@Mapper
+public interface DistinctionConverter {
+    DistinctionConverter INSTANCE = Mappers.getMapper(DistinctionConverter.class);
+
+    /**
+     * 转换
+     * @Author QIN
+    **/
+    Distinction model2WebDTO(FingerParams params);
+}

+ 18 - 0
src/main/java/com/poteviohealth/cgp/statistics/service/impl/WatermarkImgServiceImpl.java

@@ -1,15 +1,18 @@
 package com.poteviohealth.cgp.statistics.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.common.collect.Lists;
 import com.poteviohealth.cgp.common.filter.TokenContext;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.common.service.impl.BaseServiceImpl;
 import com.poteviohealth.cgp.common.utils.CgpTool;
 import com.poteviohealth.cgp.statistics.mapper.WatermarkImgMapper;
+import com.poteviohealth.cgp.statistics.model.Distinction;
 import com.poteviohealth.cgp.statistics.model.WatermarkImg;
 import com.poteviohealth.cgp.statistics.model.indto.OrderRecordDto;
 import com.poteviohealth.cgp.statistics.model.indto.PriceUploadDto;
 import com.poteviohealth.cgp.statistics.model.outdto.OrderImageDTO;
+import com.poteviohealth.cgp.statistics.service.IDistinctionService;
 import com.poteviohealth.cgp.statistics.service.IWatermarkImgService;
 import com.poteviohealth.cgp.statistics.utils.OssUtils;
 import com.poteviohealth.cgp.statistics.utils.Watermark;
@@ -20,6 +23,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -35,6 +39,8 @@ public class WatermarkImgServiceImpl extends BaseServiceImpl<WatermarkImgMapper,
     private String dbName;
     @Resource
     private OssUtils ossUtils;
+    @Resource
+    private IDistinctionService distinctionService;
 
     @Override
     public VaultsResponse updateOrderUrl(List<PriceUploadDto> list) {
@@ -89,6 +95,18 @@ public class WatermarkImgServiceImpl extends BaseServiceImpl<WatermarkImgMapper,
             orderDto.setOrderRole("后台站长");
             orderDto.setOrderStatus("后台上传照片");
             baseMapper.saveOrderRecord(orderDto,dbName);
+
+            if(StringUtils.isNotEmpty(orgVal)){
+               List<String> nowList = Arrays.asList( nowVal.split(","));
+                for (String s : orgVal.split(",")) {
+                    if(!nowList.contains(s)){
+                        QueryWrapper<Distinction> queryWrapper = new QueryWrapper<>();
+                        queryWrapper.eq("url", s);
+                        queryWrapper.eq("order_id", orderId);
+                        distinctionService.remove(queryWrapper);
+                    }
+                }
+            }
         }
         return VaultsResponse.success();
     }

+ 15 - 4
src/main/java/com/poteviohealth/cgp/statistics/utils/OssUtils.java

@@ -6,6 +6,7 @@ import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.common.utils.CgpTool;
 import com.poteviohealth.cgp.common.utils.ImageUtils;
 import lombok.extern.log4j.Log4j2;
+import org.apache.commons.io.FileUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.web.multipart.MultipartFile;
@@ -166,15 +167,25 @@ public class OssUtils {
      * @param fileUrl
      * @return
      */
-    public InputStream getFile(String fileUrl) {
+    public String getFileFinger(String fileUrl) {
 
         // 创建OSSClient实例。
         OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey);
 
         try {
-            InputStream inputStream = ossClient.getObject(bucketName, "yqaa/2412/S256337789353984N-B20D9D3E-B0A5-4EE1-8F95-7CBE6AFDBED2.jpeg").getObjectContent();
-            log.info(ImageUtils.readImagePix(inputStream));
-            return inputStream;
+            String url = fileUrl.replace("https://ptsubsidy.oss-cn-beijing.aliyuncs.com/", "");
+            InputStream inputStream = ossClient.getObject(bucketName, url).getObjectContent();
+            if(url.indexOf("mp4") != -1){
+                File tempFile = File.createTempFile("temp_", "mp4");
+                FileUtils.copyInputStreamToFile(inputStream, tempFile);
+                File file = this.generateCover(tempFile);
+                tempFile.delete();
+                String val = ImageUtils.readImagePix(file);
+                file.delete();
+                return val;
+            }
+
+            return ImageUtils.readImagePix(inputStream);
         } catch (Exception e) {
             e.printStackTrace();
             return null;