From 173ed5fe82120fe86503c541c41460e3c8fae91a Mon Sep 17 00:00:00 2001
From: quyixiao <2621048238@qq.com>
Date: Sat, 22 Mar 2025 16:34:56 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/heyu/api/data/utils/MapUtils.java | 99 ++++++++++-
.../certificate/BMultiIdcardHandle.java | 10 +-
.../certificate/BMultiIdcardRequest.java | 8 +-
.../MarriageCertificateController.java | 95 +++++++++++
.../idcard/IdCardMultiController.java | 89 ++++++++++
.../resp/certificate/IdCardMultiBackResp.java | 63 +++++++
.../certificate/IdCardMultiFrontResp.java | 84 +++++++++
.../api/resp/certificate/IdCardMultiResp.java | 140 +++++++++++++++
.../certificate/MarriageCertificateResp.java | 161 ++++++++++++++++++
9 files changed, 736 insertions(+), 13 deletions(-)
create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/MarriageCertificateController.java
create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardMultiController.java
create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/IdCardMultiBackResp.java
create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/IdCardMultiFrontResp.java
create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/IdCardMultiResp.java
create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/MarriageCertificateResp.java
diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/MapUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/MapUtils.java
index 453cb70..47f00a5 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/utils/MapUtils.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/utils/MapUtils.java
@@ -2,10 +2,16 @@ package com.heyu.api.data.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.lz.mybatis.plugins.interceptor.utils.PNumberUtils;
import lombok.extern.slf4j.Slf4j;
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
@Slf4j
@@ -56,13 +62,98 @@ public class MapUtils {
} catch (Exception e) {
log.error("getByExpr error map:" + JSON.toJSONString(map) + ",expression:" + expression, e);
}
-
-
- return (T) value;
-
+ if(value == null){
+ return null;
+ }
+ return (T)( value + "");
}
+
+
+ public static Object parseBasicTypeWrapper(Class> parameterType, Object value) {
+ if (Number.class.isAssignableFrom(parameterType)) {
+ if (parameterType == Integer.class || parameterType == int.class) {
+ return PNumberUtils.objToIntDefault(value, null);
+ } else if (parameterType == Short.class || parameterType == short.class) {
+ return PNumberUtils.objToShortDefault(value, null);
+ } else if (parameterType == Long.class || parameterType == long.class) {
+ return PNumberUtils.objToLongDefault(value, null);
+ } else if (parameterType == Float.class || parameterType == float.class) {
+ return PNumberUtils.objToFloatDefault(value, null);
+ } else if (parameterType == Double.class || parameterType == double.class) {
+ return PNumberUtils.objToDoubleDefault(value, null);
+ } else if (parameterType == Byte.class || parameterType == byte.class) {
+ return PNumberUtils.objToByteDefault(value, null);
+ } else if (parameterType == BigDecimal.class) {
+ return PNumberUtils.objToBigDecimalDefault(value, null);
+ }
+ } else if (parameterType == Boolean.class || parameterType == boolean.class) {
+ return PNumberUtils.objToBooleanDefault(value, null);
+ } else if (parameterType == Character.class || parameterType == char.class) {
+ return PNumberUtils.objToCharacterDefault(value, null);
+ } else if (parameterType == String.class) {
+ return value !=null ? value.toString() : null ;
+ }else if (parameterType == Date.class && value instanceof Date){
+ return value;
+ } else if (parameterType == Date.class && value instanceof String) {
+ Object target = parseStr2Date((String) value, YYYY_MM_DD_HH_MM_SS);
+ if (target == null) {
+ target = parseStr2Date((String) value, YYYY_MM_DD);
+ if(target == null){
+ target = parseStr2Date((String) value, YYYY);
+ if(target == null){
+ target = parseStr2Date((String) value, YYYY_MM);
+ if(target == null){
+ target = parseStr2Date((String) value, YYYY_MM_DD_HH);
+ if(target == null){
+ target = parseStr2Date((String) value, YYYY_MM_DD_HH_MM);
+ }
+ }
+ }
+ }
+ }
+ return target;
+ }
+ return null;
+ }
+
+ public static final Date parseStr2Date(String value, final String format) {
+ if (Objects.isNull(value)) {
+ return null;
+ }
+ try {
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ return sdf.parse(value);
+ } catch (ParseException e) {
+
+ }
+ return null;
+ }
+
+ public static String YYYY = "yyyy";
+ public static String YYYY_MM = "yyyy-MM";
+ public static String YYYY_MM_DD = "yyyy-MM-dd";
+ public static String YYYY_MM_DD_HH = "yyyy-MM-dd HH";
+ public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
+ public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
+
+
+ public static String upperCaseFirst(String v) {
+ String a = v.substring(0, 1).toUpperCase();
+ String b = v.substring(1);
+ return a + b;
+ }
+
+ public static boolean isUpperCase(char c) {
+ if (c >= 'A' && c <= 'Z') {
+ return true;
+ }
+ return false;
+ }
+
+
+
public static void main(String[] args) {
String a = "{\n" +
" \"words_result\": {\n" +
diff --git a/api-third/src/main/java/com/heyu/api/baidu/handle/certificate/BMultiIdcardHandle.java b/api-third/src/main/java/com/heyu/api/baidu/handle/certificate/BMultiIdcardHandle.java
index 6229f5c..23be73f 100644
--- a/api-third/src/main/java/com/heyu/api/baidu/handle/certificate/BMultiIdcardHandle.java
+++ b/api-third/src/main/java/com/heyu/api/baidu/handle/certificate/BMultiIdcardHandle.java
@@ -1,16 +1,16 @@
package com.heyu.api.baidu.handle.certificate;
+import com.heyu.api.baidu.BaiduBaseHandle;
+import com.heyu.api.baidu.request.certificate.BMultiIdcardRequest;
import com.heyu.api.data.annotation.CustomPath;
import com.heyu.api.data.constants.ApiConstants;
import com.heyu.api.data.utils.StringUtils;
-
-import com.heyu.api.baidu.BaiduBaseHandle;
-import com.heyu.api.baidu.request.certificate.BMultiIdcardRequest;
-import com.heyu.api.baidu.response.certificate.BMultiIdcardResp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import java.util.Map;
+
/**
* https://console.bce.baidu.com/support/?_=1740219852952×tamp=1740302247547#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E5%8D%A1%E8%AF%81OCR&api=rest%2F2.0%2Focr%2Fv1%2Fmulti_idcard&method=post
*
@@ -21,7 +21,7 @@ import org.springframework.stereotype.Component;
@Component
@Slf4j
@CustomPath("multiIdcard")
-public class BMultiIdcardHandle extends BaiduBaseHandle {
+public class BMultiIdcardHandle extends BaiduBaseHandle {
@Override
public String getUri() {
diff --git a/api-third/src/main/java/com/heyu/api/baidu/request/certificate/BMultiIdcardRequest.java b/api-third/src/main/java/com/heyu/api/baidu/request/certificate/BMultiIdcardRequest.java
index 2f436f0..200e1ac 100644
--- a/api-third/src/main/java/com/heyu/api/baidu/request/certificate/BMultiIdcardRequest.java
+++ b/api-third/src/main/java/com/heyu/api/baidu/request/certificate/BMultiIdcardRequest.java
@@ -11,7 +11,7 @@ public class BMultiIdcardRequest extends BaiduImageUrlRequest {
* - true:开启,请查看返回参数risk_type;
* - false:不开启
*/
- private String detectRisk = "false";
+ private String detectRisk = "true";
/**
@@ -19,7 +19,7 @@ public class BMultiIdcardRequest extends BaiduImageUrlRequest {
* - true:开启,请查看返回参数card_quality;
* - false:不开启
*/
- private String detectQuality = "false";
+ private String detectQuality = "true";
/**
@@ -27,7 +27,7 @@ public class BMultiIdcardRequest extends BaiduImageUrlRequest {
* - true:检测头像并返回头像的 base64 编码及位置信息;
* - false:不检测
*/
- private String detectPhoto = "false";
+ private String detectPhoto = "true";
/**
@@ -35,6 +35,6 @@ public class BMultiIdcardRequest extends BaiduImageUrlRequest {
* - true:检测身份证并返回证照的 base64 编码及位置信息;
* - false:不检测
*/
- private String detectCard = "false";
+ private String detectCard = "true";
}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/MarriageCertificateController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/MarriageCertificateController.java
new file mode 100644
index 0000000..9ab2a31
--- /dev/null
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/MarriageCertificateController.java
@@ -0,0 +1,95 @@
+package com.heyu.api.controller.certificate;
+
+
+import com.heyu.api.baidu.handle.certificate.BMarriageCertificateHandle;
+import com.heyu.api.baidu.request.certificate.BMarriageCertificateRequest;
+import com.heyu.api.controller.BaseController;
+import com.heyu.api.data.annotation.CacheResult;
+import com.heyu.api.data.annotation.NotIntercept;
+import com.heyu.api.data.utils.ApiR;
+import com.heyu.api.data.utils.MapUtils;
+import com.heyu.api.data.utils.R;
+import com.heyu.api.resp.certificate.MarriageCertificateResp;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+
+/**
+ * https://console.bce.baidu.com/support/?_=1740219852952×tamp=1740314877734#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E5%8D%A1%E8%AF%81OCR&api=rest%2F2.0%2Focr%2Fv1%2Fmarriage_certificate&method=post
+ *
+ *
+ * 结婚证识别
+ */
+
+
+@Slf4j
+@RestController
+@RequestMapping("/marriage")
+@NotIntercept
+public class MarriageCertificateController extends BaseController {
+
+
+ @Autowired
+ private BMarriageCertificateHandle bMarriageCertificateHandle;
+
+
+ @RequestMapping("/recognize")
+ @CacheResult
+ public R recognize(BMarriageCertificateRequest request) {
+ MarriageCertificateResp resp = new MarriageCertificateResp();
+
+ ApiR