From 7ac47d3b63051d02eb3dbf7eb95ab5d0327591cf Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 15 Apr 2025 19:16:08 +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 --- .../main/java/com/heyu/api/utils/OsUtil.java | 94 +++++++++++++++++++ .../main/java/com/heyu/api/aop/LogAop.java | 5 +- .../IdCardOCRVerificationController.java | 15 +++ .../resp/card/IdCardOCRVerificationResp.java | 45 +++++++++ api-web/pom.xml | 16 +++- 5 files changed, 172 insertions(+), 3 deletions(-) create mode 100644 api-third/src/main/java/com/heyu/api/utils/OsUtil.java diff --git a/api-third/src/main/java/com/heyu/api/utils/OsUtil.java b/api-third/src/main/java/com/heyu/api/utils/OsUtil.java new file mode 100644 index 0000000..5523f8e --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/utils/OsUtil.java @@ -0,0 +1,94 @@ + +package com.heyu.api.utils; + + +import java.util.Random; +import java.util.concurrent.TimeUnit; + +/** + * 系统判断 + * + * @author sandy + */ +public class OsUtil { + + public static boolean isWindows() { + boolean iswindows = false; + if (System.getProperties().getProperty("os.name").toUpperCase() + .indexOf("WINDOWS") != -1) { + iswindows = true; + } + return iswindows; + } + + + private static final boolean osIsMacOsX; + private static final boolean osIsWindows; + private static final boolean osIsWindowsXP; + private static final boolean osIsWindows2003; + private static final boolean osIsWindowsVista; + private static final boolean osIsLinux; + private static final boolean osIsWindowsWin7; + private static final boolean osIsWindowsWin8; + private static final boolean osIsWindowsWin10; + + static { + String os = System.getProperty("os.name"); + if (os != null) + os = os.toLowerCase(); + osIsMacOsX = "mac os x".equals(os); + osIsWindows = os != null && os.indexOf("windows") != -1; + osIsWindowsXP = "windows xp".equals(os); + osIsWindows2003 = "windows 2003".equals(os); + osIsWindowsVista = "windows vista".equals(os); + osIsLinux = os != null && os.indexOf("linux") != -1; + osIsWindowsWin7 = os != null && os.indexOf("windows 7") != -1; + osIsWindowsWin8 = os != null && os.indexOf("windows 8") != -1; + osIsWindowsWin10 = os != null && os.indexOf("windows 10") != -1; + } + + + public static boolean isMacOSX() { + return osIsMacOsX; + } + + + public static boolean isWindowsXP() { + return osIsWindowsXP; + } + + public static boolean isWindows2003() { + return osIsWindows2003; + } + + public static boolean isWindowsVista() { + return osIsWindowsVista; + } + + public static boolean isLinux() { + return osIsLinux; + } + + public static boolean IsWindowsWin7() { + return osIsWindowsWin7; + } + + public static boolean IsWindowsWin8() { + return osIsWindowsWin8; + } + + public static boolean IsWindowsWin10() { + return osIsWindowsWin10; + } + + + public static void sleepMilliSecond(int min, int max) { + try { + Random random = new Random(); + int time = random.nextInt(max) % (max - min + 1) + min; + TimeUnit.MILLISECONDS.sleep(time); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/aop/LogAop.java b/api-web/api-interface/src/main/java/com/heyu/api/aop/LogAop.java index 95513f4..f447a9f 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/aop/LogAop.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/aop/LogAop.java @@ -6,6 +6,7 @@ import com.heyu.api.common.LogAspect; import com.heyu.api.data.constants.ApiConstants; import com.heyu.api.data.service.bussiness.RedisSettingService; import com.heyu.api.data.utils.*; +import com.heyu.api.utils.OsUtil; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.Signature; @@ -117,8 +118,8 @@ public class LogAop { log.info("LogAop one cache className:{},classNameAndMethodName:{},classNameAndMethodNametencent:{}", intercept, classMethodConfigNotIntercept, tencent); } - // 如果方法和类上都没有配置NotIntercept注解 ,则需要拦截 - if (intercept && classMethodConfigNotIntercept) { + // 如果方法和类上都没有配置NotIntercept注解 ,则需要拦截 ,是linux才进行拦截 + if (intercept && classMethodConfigNotIntercept && OsUtil.isLinux()) { String authConfig = request.getHeader("X-TCloudMarket-Custom-AuthConfig"); if (StringUtils.isBlank(authConfig) || !authConfig.startsWith("{")) { log.info("LogAop authConfig value:{} auth error ", authConfig); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardOCRVerificationController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardOCRVerificationController.java index 9565e8d..508bdd2 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardOCRVerificationController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardOCRVerificationController.java @@ -3,7 +3,9 @@ package com.heyu.api.controller.idcard; import com.heyu.api.data.annotation.EbAuthentication; import com.heyu.api.data.constants.ApiConstants; +import com.heyu.api.data.dto.IdCardAddressModel; import com.heyu.api.data.utils.ApiR; +import com.heyu.api.data.utils.IDCardValidatorUtils; import com.heyu.api.data.utils.R; import com.heyu.api.request.certificate.ApiIdentityCardSecondRequest; import com.heyu.api.resp.card.IdCardOCRVerificationResp; @@ -55,6 +57,17 @@ public class IdCardOCRVerificationController { if (idCardOCRVerificationResponse != null) { if ("0".equals(idCardOCRVerificationResponse.getResult())) { idCardOCRVerificationResp.setCode("1"); // 姓名和身份证号一致。 + + IdCardAddressModel idCardAddressModel = IDCardValidatorUtils.getAddrInfo(apiIdentityCardRequest.getIdCardNumber()); + + idCardOCRVerificationResp.setCountry(idCardAddressModel.getCountry()); + idCardOCRVerificationResp.setProvince(idCardAddressModel.getProvince()); + idCardOCRVerificationResp.setCity(idCardAddressModel.getCity()); + idCardOCRVerificationResp.setArea(idCardAddressModel.getCounty()); + idCardOCRVerificationResp.setDetailAddress(idCardAddressModel.getProvince() + idCardAddressModel.getCity() + idCardAddressModel.getCounty()); + + idCardOCRVerificationResp.setSex(idCardAddressModel.getSex()); + idCardOCRVerificationResp.setDesc("姓名和身份证号一致"); } else if ("-1".equals(idCardOCRVerificationResponse.getResult())) { idCardOCRVerificationResp.setCode("0"); // 姓名和身份证号不一致。 @@ -68,6 +81,8 @@ public class IdCardOCRVerificationController { idCardOCRVerificationResp.setCode("0"); //其他情况 idCardOCRVerificationResp.setDesc(idCardOCRVerificationResponse.getDescription()); //其他情况 } + + idCardOCRVerificationResp.setIdCardNumber(apiIdentityCardRequest.getIdCardNumber()); idCardOCRVerificationResp.setRealName(apiIdentityCardRequest.getRealName()); return R.ok().setData(idCardOCRVerificationResp); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/card/IdCardOCRVerificationResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/card/IdCardOCRVerificationResp.java index cd77892..fbcf094 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/resp/card/IdCardOCRVerificationResp.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/card/IdCardOCRVerificationResp.java @@ -27,4 +27,49 @@ public class IdCardOCRVerificationResp { */ private String idCardNumber; + + /** + * 国家 + */ + private String country; + + + + /** + * 省 + */ + private String province; + + + /*** + * city + */ + private String city; + + + /*** + * 区 + */ + private String area; + + + + + /** + * 详细地址 + */ + private String detailAddress; + + + + + + + /*** + * 性别:0男 1女 + */ + private Integer sex = 0; + + + } diff --git a/api-web/pom.xml b/api-web/pom.xml index 1765277..7d8e90b 100644 --- a/api-web/pom.xml +++ b/api-web/pom.xml @@ -42,7 +42,21 @@ - + +