qin 1 rok temu
rodzic
commit
d48dbb7b0e

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

@@ -18,6 +18,7 @@ import com.poteviohealth.cgp.common.integrated.finance.model.MemberPlanPageDTO;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.statistics.model.indto.*;
 import com.poteviohealth.cgp.statistics.model.outdto.DishesOrderWebOutDTO;
+import com.poteviohealth.cgp.statistics.model.outdto.DistinctionDTO;
 import com.poteviohealth.cgp.statistics.model.outdto.OrderCostWebOutDTO;
 import com.poteviohealth.cgp.statistics.model.outdto.OrderExcelDTO;
 import com.poteviohealth.cgp.statistics.service.IDistinctionService;
@@ -204,21 +205,25 @@ public class OrderController extends BaseWebController {
     @ApiOperation(value = "阿里云图片上传")
     @MethodTime
     @ResponseBody
-    public VaultsResponse<String> uploadArrayFile(@RequestParam("file") MultipartFile file,@RequestParam("orderId") Long orderId){
+    public VaultsResponse<DistinctionDTO> uploadArrayFile(@RequestParam("file") MultipartFile file,@RequestParam("orderId") Long orderId,@RequestParam("uidList") List<String> uidList){
         log.info(orderId);
         //图片检查
-
         try {
-           Long repeatId = distinctionService.checkImg(file.getInputStream());
+            DistinctionDTO dto = distinctionService.checkImg(file.getInputStream(),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();
         }
-        VaultsResponse<String> vaultsResponse = ossUtils.uploadOneFile(file,orderId);
-        log.info(vaultsResponse.getData());
-       /* if(vaultsResponse.validate()){
-            return orderService.updateOrderUrl(list);
-        }*/
-        return vaultsResponse;
+        return VaultsResponse.failed();
     }
 
     @PostMapping("/orderFile")

+ 21 - 0
src/main/java/com/poteviohealth/cgp/statistics/model/outdto/DistinctionDTO.java

@@ -0,0 +1,21 @@
+package com.poteviohealth.cgp.statistics.model.outdto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * @author Qin
+ */
+@Data
+public class DistinctionDTO {
+
+    @ApiModelProperty(value="orderId")
+    private Long orderId;
+
+    @ApiModelProperty(value="uid")
+    private String uid;
+
+    @ApiModelProperty(value="url")
+    private String url;
+}

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

@@ -2,8 +2,10 @@ 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 java.io.InputStream;
+import java.util.List;
 
 /**
  * 图片处理
@@ -11,5 +13,5 @@ import java.io.InputStream;
  */
 public interface IDistinctionService extends IBaseService<Distinction> {
 
-    Long checkImg(InputStream inputStream);
+    DistinctionDTO checkImg(InputStream inputStream,Long orderId,List<String> uidList);
 }

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

@@ -12,6 +12,7 @@ import com.poteviohealth.cgp.common.utils.DateUtils;
 import com.poteviohealth.cgp.common.utils.ImageUtils;
 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 lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
@@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.InputStream;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 图片处理
@@ -39,19 +41,31 @@ public class DistinctionServiceImpl extends BaseServiceImpl<DistinctionMapper, D
     private String dbName;
 
     @Override
-    public Long checkImg(InputStream inputStream) {
-
+    public DistinctionDTO checkImg(InputStream inputStream, Long orderId, List<String> uidList) {
+        DistinctionDTO dto = new DistinctionDTO();
+        String uid = ImageUtils.readImagePix(inputStream);
+        dto.setUid(uid);
         if("0".equals(orderCacheVal(CgpTool.CACHE_ORDER_PHOTO_CHECK))){
-            return 0L;
+            return dto;
         }
 
         Integer day = Integer.parseInt(orderCacheVal(CgpTool.CACHE_ORDER_PHOTO_DAY));
         Double threshold = Double.parseDouble(orderCacheVal(CgpTool.CACHE_ORDER_PHOTO_THRESHOLD));
+        int count = ImageUtils.different(threshold);
+        boolean isCheck = false;
+        for (String s : uidList) {
+            if(ImageUtils.similarity(s,uid)<=count){
+                isCheck = true;
+                break;
+            }
+        }
 
-        String uid = ImageUtils.readImagePix(inputStream);
-       Long orderId = baseMapper.checkDis(TokenContext.cureOperatorId(),dbName,uid,ImageUtils.different(threshold), DateFormatUtils.format(DateUtils.caculDays(new Date(), -day),"yyyy-MM-dd HH:mm:ss"));
-       log.info("orderId==="+orderId);
-       return orderId;
+        if(isCheck){
+            dto.setOrderId(orderId);
+        }else{
+            dto.setOrderId(baseMapper.checkDis(TokenContext.cureOperatorId(),dbName,uid,count, DateFormatUtils.format(DateUtils.caculDays(new Date(), -day),"yyyy-MM-dd HH:mm:ss")));
+        }
+       return dto;
     }