Explorar el Código

照片对比优化

tongfeng hace 2 años
padre
commit
56ce112644

+ 0 - 6
eladmin-system/src/main/java/me/zhengjie/application/bank/controller/BankAuthController.java

@@ -5,7 +5,6 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import me.zhengjie.annotation.rest.AnonymousGetMapping;
 import me.zhengjie.annotation.rest.AnonymousPostMapping;
 import me.zhengjie.application.bank.BaseController;
 import me.zhengjie.application.bank.controller.vo.*;
@@ -13,15 +12,11 @@ import me.zhengjie.application.bank.service.BankLoginService;
 import me.zhengjie.application.bank.service.FileInfoService;
 import me.zhengjie.base.ResponseDTO;
 import me.zhengjie.base.ResultCode;
-import me.zhengjie.base.util.BaiduServiceUtil;
 import me.zhengjie.base.util.FileUploadUtil;
 import me.zhengjie.base.util.HandwritingUtil;
 import me.zhengjie.base.util.StatusEnum.StepStatusEnum;
-import me.zhengjie.base.util.TencentServiceUtil;
 import me.zhengjie.dao.mybatis.UserAXQInfoRepository;
 import me.zhengjie.dao.mybatis.entity.UserAXQInfoEntity;
-import me.zhengjie.domain.notary.NotaryDomain;
-import me.zhengjie.domain.notary.impl.NotaryDomainImpl;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,7 +48,6 @@ public class BankAuthController extends BaseController {
 
     @Autowired
     private Environment environment;
-
     private final BankLoginService bankLoginService;
     private final FileInfoService fileInfoService;
     private final UserAXQInfoRepository userAXQInfoRepository;

+ 0 - 17
eladmin-system/src/main/java/me/zhengjie/base/face/FaceCompareUtil.java

@@ -169,23 +169,6 @@ public class FaceCompareUtil {
         FunctionConfiguration configuration = new FunctionConfiguration();
         configuration.setSupportFace3dAngle(true);
         errorCode = faceEngine.process(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), imageInfo.getImageFormat(), faceInfoList, configuration);
-        //3D信息检测
-        List<Face3DAngle> face3DAngleList = new ArrayList<Face3DAngle>();
-        errorCode = faceEngine.getFace3DAngle(face3DAngleList);
-        if (CollectionUtils.isEmpty(face3DAngleList)){
-            return ResultCode.IMAGE_NOT_STANDARD;
-        }
-        //俯仰角
-        float pitch = Math.abs(face3DAngleList.get(0).getPitch());
-        //偏向角
-        float yaw = Math.abs(face3DAngleList.get(0).getYaw());
-        log.info("俯仰角:{}",pitch);
-        log.info("偏向角:{}",yaw);
-        if (pitch >= 10 || yaw >= 10) {
-            //照片不符合标准
-            log.info("图片不符合标准");
-            return ResultCode.IMAGE_NOT_STANDARD;
-        }
         //活体检测
         /*List<LivenessInfo> livenessInfoList = new ArrayList<LivenessInfo>();
         errorCode = faceEngine.getLiveness(livenessInfoList);

+ 32 - 8
eladmin-system/src/main/java/me/zhengjie/domain/notary/impl/NotaryDomainImpl.java

@@ -1,5 +1,6 @@
 package me.zhengjie.domain.notary.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -92,13 +93,26 @@ public class NotaryDomainImpl implements NotaryDomain {
         }
         if (!Img2Base64Util.generateImage(base64, base.getPath())) {
             log.info("base64转图片异常");
+            if (ObjectUtil.isNotEmpty(base)){
+                base.delete();
+            }
             return ResultCode.FACEAUTH_FAIL;
         }
 
         if (!faceCompareUtil.imageSingle(base)){
+            if (ObjectUtil.isNotEmpty(base)){
+                base.delete();
+            }
             return ResultCode.SINGLE_PERSON;
         }
 
+        if (!faceCompareUtil.imageCenter(base)){
+            if (ObjectUtil.isNotEmpty(base)){
+                base.delete();
+            }
+            return ResultCode.IMAGE_NOT_STANDARD;
+        }
+
 
         thirdPartyInterfaceEntity.setBusinessNo(compareImageDomain.getBusinessNo());
         thirdPartyInterfaceEntity.setConsultNo(contractOrderEntity.getConsultNo());
@@ -142,7 +156,9 @@ public class NotaryDomainImpl implements NotaryDomain {
                 redis.del(redisCount);
             }
         }
-
+        if (ObjectUtil.isNotEmpty(base)){
+            base.delete();
+        }
         return resultCode;
 
     }
@@ -222,18 +238,27 @@ public class NotaryDomainImpl implements NotaryDomain {
         }
         if (!Img2Base64Util.generateImage(base64, base.getPath())) {
             log.info("base64转图片异常");
+            if (ObjectUtil.isNotEmpty(base)){
+                base.delete();
+            }
             return ResultCode.FACEAUTH_FAIL;
         }
         if (!faceCompareUtil.imageSingle(base)){
+            if (ObjectUtil.isNotEmpty(base)){
+                base.delete();
+            }
             return ResultCode.SINGLE_PERSON;
         }
+        if (!faceCompareUtil.imageCenter(base)){
+            if (ObjectUtil.isNotEmpty(base)){
+                base.delete();
+            }
+            return ResultCode.IMAGE_NOT_STANDARD;
+        }
         boolean redisFlag = (count != null && count >= 2);
         if (flag) {
             //说明是客户经理
             if (sysUserEntity.getCompareImgId() == null || redisFlag) {
-                if (! faceCompareUtil.imageCenter(base)){
-                    return ResultCode.IMAGE_NOT_STANDARD;
-                }
                 //说明客户经理需要做人脸核身
                 FileInfoEntity fileInfo = faceCompareUtil.uploadFaceFile(base64);
                 faceCompareEntity = JuheServiceUtil.URLPost(idCard, nickName, base64,faceCompareEntity);
@@ -254,10 +279,6 @@ public class NotaryDomainImpl implements NotaryDomain {
                 return ResultCode.LIVE_VIDEO_INVALID;
             }
         } else if (ObjectUtils.isEmpty(compareImageId) || redisFlag) {
-            if (! faceCompareUtil.imageCenter(base)){
-                return ResultCode.IMAGE_NOT_STANDARD;
-            }
-
             //说明当事人需要做人脸核身
             FileInfoEntity fileInfo = faceCompareUtil.uploadFaceFile(base64);
             faceCompareEntity = JuheServiceUtil.URLPost(idCard, nickName, base64,faceCompareEntity);
@@ -304,6 +325,9 @@ public class NotaryDomainImpl implements NotaryDomain {
                 redis.del(redisCount);
             }
         }
+        if (ObjectUtil.isNotEmpty(base)){
+            base.delete();
+        }
         return resultCode;
     }