he2802 3 rokov pred
rodič
commit
2d828ae5fa

+ 14 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/face/FaceController.java

@@ -54,4 +54,18 @@ public class FaceController extends BaseController {
         }
 
     }
+
+    @ApiOperation("照片人脸核身")
+    @PostMapping("/certification/ImageRecognition")
+    public AjaxResult ImageRecognition(@RequestBody FaceQueryBo bo){
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        Map<String,Object> rs = iFaceService.ImageRecognition(bo);
+        if(Validator.isNotEmpty(rs)){
+            return AjaxResult.success(rs);
+        }else{
+            return AjaxResult.error();
+        }
+
+    }
 }

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/tencentcloud/bo/FaceQueryBo.java

@@ -47,4 +47,13 @@ public class FaceQueryBo extends BaseEntity {
 
 	@ApiModelProperty("订单ID")
 	private Long orderGoodsId;
+
+	@ApiModelProperty("身份证号码")
+	private String IdNum;
+
+	@ApiModelProperty("身份证名称")
+	private String IdName;
+
+	@ApiModelProperty("一寸照图片base64")
+	private String oneInchPhotos;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/tencentcloud/service/IFaceOcrService.java

@@ -16,4 +16,6 @@ public interface IFaceOcrService {
 
     Map<String,String> VatInvoiceOCR(InvoiceQueryBo bo);
 
+    Map<String,Object> ImageRecognition(FaceQueryBo bo);
+
 }

+ 27 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/tencentcloud/service/impl/FaceOcrServiceImpl.java

@@ -6,6 +6,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.tencentcloudapi.common.Credential;
 import com.tencentcloudapi.common.exception.TencentCloudSDKException;
 import com.tencentcloudapi.common.profile.ClientProfile;
+import com.tencentcloudapi.faceid.v20180301.FaceidClient;
+import com.tencentcloudapi.faceid.v20180301.models.ImageRecognitionRequest;
+import com.tencentcloudapi.faceid.v20180301.models.ImageRecognitionResponse;
 import com.tencentcloudapi.iai.v20200303.IaiClient;
 import com.tencentcloudapi.iai.v20200303.models.CompareFaceRequest;
 import com.tencentcloudapi.iai.v20200303.models.CompareFaceResponse;
@@ -115,6 +118,7 @@ public class FaceOcrServiceImpl implements IFaceOcrService {
             req.setConfig("{\"CropIdCard\":true}");
             IDCardOCRResponse resp = client.IDCardOCR(req);
             String IdNum = resp.getIdNum();
+            String IdName = resp.getName();
             String AdvancedInfo = resp.getAdvancedInfo();
             String IdCard =  JSONObject.parseObject(AdvancedInfo).getString("IdCard");
             if(Validator.isEmpty(IdCard)){
@@ -126,6 +130,7 @@ public class FaceOcrServiceImpl implements IFaceOcrService {
             ossRequest.setImageStatus(5);
             String ossPath = ossService.uploadBase64(IdCard,ossRequest);
             rs.put("IdNum",IdNum);
+            rs.put("IdName",IdName);
             rs.put("IdImgPath",ossPath);
             return rs;
         }catch (TencentCloudSDKException e){
@@ -162,4 +167,26 @@ public class FaceOcrServiceImpl implements IFaceOcrService {
         }
         return null;
     }
+
+    @Override
+    public Map<String, Object> ImageRecognition(FaceQueryBo bo) {
+        try{
+            if(Validator.isEmpty(bo.getOneInchPhotos())||Validator.isEmpty(bo.getIdNum())||Validator.isEmpty(bo.getIdName())){
+                throw new CustomException("缺少参数");
+            }
+            Credential cred = new Credential(SecretId, SecretKey);
+            FaceidClient client = new FaceidClient(cred, "ap-guangzhou");
+            ImageRecognitionRequest req = new ImageRecognitionRequest();
+            req.setImageBase64(bo.getOneInchPhotos());
+            req.setIdCard(bo.getIdNum());
+            req.setName(bo.getIdName());
+            ImageRecognitionResponse resp = client.ImageRecognition(req);
+            Map<String,Object> rs = new HashMap<>();
+            rs.put("sim",resp.getSim());
+            return rs;
+        }catch (TencentCloudSDKException e){
+            System.out.println("错误"+e.getMessage());
+        }
+        return null;
+    }
 }