diff --git a/api-third/src/main/java/com/heyu/api/baidu/request/BProbabilityLocationRequest.java b/api-third/src/main/java/com/heyu/api/baidu/request/BProbabilityLocationRequest.java index ff950bd..f01dd9a 100644 --- a/api-third/src/main/java/com/heyu/api/baidu/request/BProbabilityLocationRequest.java +++ b/api-third/src/main/java/com/heyu/api/baidu/request/BProbabilityLocationRequest.java @@ -19,12 +19,12 @@ public class BProbabilityLocationRequest extends BaiduPdfRequest { /** * true/false 是否返回字段置信度,默认为 false ,即不返回 */ - private String probability = "false"; + private String probability = "true"; /** * true/false 是否返回字段位置坐标,默认为 false,即不返回 */ - private String location = "false"; + private String location = "true"; } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/OverseasPassportController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/OverseasPassportController.java new file mode 100644 index 0000000..93569fb --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/OverseasPassportController.java @@ -0,0 +1,72 @@ +package com.heyu.api.controller.certificate; + + +import com.heyu.api.baidu.handle.certificate.BOverseasPassportHandle; +import com.heyu.api.baidu.request.certificate.BOverseasPassportRequest; +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.OverseasPassportResp; +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=1740308634888#/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%2Foverseas_passport&method=post + *

+ *

+ * 护照识别(港澳台地区及境外) + *

+ * 接口描述 + * 支持对港澳台地区及境外护照进行结构化识别,包括MRZCode1、MRZCode2、出生日期、国家码、国籍、姓名拼音、性别、护照号、护照类型、有效期,10 个关键字段。 + */ +@Slf4j +@RestController +@RequestMapping("/overseasPassport") +@NotIntercept +public class OverseasPassportController extends BaseController { + + + @Autowired + private BOverseasPassportHandle bOverseasPassportHandle; + + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BOverseasPassportRequest request) { + + OverseasPassportResp resp = new OverseasPassportResp(); + + + ApiR bR = bOverseasPassportHandle.handle(request); + if (bR.isSuccess()) { + + Map data = bR.getData(); + + resp.setMRZCode2(MapUtils.getByExpr(data, "words_result.MRZCode2.[0].word")); // MRZCode2 + resp.setPassportType(MapUtils.getByExpr(data, "words_result.护照类型.[0].word")); //护照类型 + resp.setPassportNo(MapUtils.getByExpr(data, "words_result.护照号.[0].word")); //护照号 + resp.setPassportDate(MapUtils.getByExpr(data, "words_result.出生日期.[0].word")); //出生日期 + resp.setPassportCountryCode(MapUtils.getByExpr(data, "words_result.国家码.[0].word")); //国家码 + resp.setNationality(MapUtils.getByExpr(data, "words_result.国籍.[0].word")); //国籍 + resp.setNamePinYin(MapUtils.getByExpr(data, "words_result.姓名拼音.[0].word")); //姓名拼音 + resp.setMRZCode1(MapUtils.getByExpr(data, "words_result.MRZCode1.[0].word")); //MRZCode1 + resp.setGender(MapUtils.getByExpr(data, "words_result.性别.[0].word")); //性别名称:男、女 + resp.setValidDate(MapUtils.getByExpr(data, "words_result.有效期.[0].word")); //有效期 + + return R.ok().setData(resp); + } + + + return R.error(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/PassportController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/PassportController.java new file mode 100644 index 0000000..84fe004 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/PassportController.java @@ -0,0 +1,69 @@ +package com.heyu.api.controller.certificate; + + +import com.heyu.api.baidu.handle.certificate.BPassportHandle; +import com.heyu.api.baidu.request.certificate.BPassportRequest; +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.PassportResp; +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=1740308374343#/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%2Fpassport&method=post + *

+ *

+ * 护照识别 + *

+ *

+ * 接口描述 + * 支持对中国大陆护照个人资料页所有15个字段进行结构化识别,包括国家码、护照号、姓名、姓名拼音、性别、出生地点、出生日期、签发地点(不支持境外签发地)、签发日期、有效期、签发机关、护照类型、国籍、MRZCode1、MRZCode2。 + */ +@Slf4j +@RestController +@RequestMapping("/passport") +@NotIntercept +public class PassportController extends BaseController { + + + @Autowired + private BPassportHandle bPassportHandle; + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BPassportRequest request) { + + PassportResp resp = new PassportResp(); + ApiR bR = bPassportHandle.handle(request); + + if (bR.isSuccess()) { + Map data = bR.getData(); + resp.setPassportType(MapUtils.getByExpr(data, "words_result.护照类型.words")); //护照类型 + resp.setPassportCountryCode(MapUtils.getByExpr(data, "words_result.国家码.words")); //国家码 + resp.setPassportIssueAddress(MapUtils.getByExpr(data, "words_result.护照签发地点.words")); //护照签发地点 + resp.setMRZCode2(MapUtils.getByExpr(data, "words_result.MRZCode2.words")); // MRZCode2 + resp.setValidDateEnd(MapUtils.getByExpr(data, "words_result.有效期至.words")); //有效期 + resp.setIssueUnit(MapUtils.getByExpr(data, "words_result.签发机关.words")); // 签发机关 + resp.setMRZCode1(MapUtils.getByExpr(data, "words_result.MRZCode1.words")); //MRZCode1 + resp.setPassportNo(MapUtils.getByExpr(data, "words_result.护照号码.words")); //护照号 + resp.setBirthAddress(MapUtils.getByExpr(data, "words_result.出生地点.words")); //出生地点 + resp.setName(MapUtils.getByExpr(data, "words_result.姓名.words")); //姓名 + resp.setNamePinYin(MapUtils.getByExpr(data, "words_result.姓名拼音.words")); //姓名拼音 + resp.setNationality(MapUtils.getByExpr(data, "words_result.国籍.words")); //国籍 + resp.setBirthDay(MapUtils.getByExpr(data, "words_result.生日.words")); //生日 + resp.setGender(MapUtils.getByExpr(data, "words_result.性别.words")); //性别名称:男、女 + return R.ok().setData(resp); + } + + return R.error(); + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/RealEstateCertificateController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/RealEstateCertificateController.java new file mode 100644 index 0000000..34f43f5 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/RealEstateCertificateController.java @@ -0,0 +1,65 @@ +package com.heyu.api.controller.certificate; + + +import com.heyu.api.baidu.handle.certificate.BRealEstateCertificateHandle; +import com.heyu.api.baidu.request.certificate.BRealEstateCertificateRequest; +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.RealEstateCertificateResp; +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=1740315498623#/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%2Freal_estate_certificate&method=post + * 房产证识别 + * + * 接口描述 + * 支持对房产证进行结构化识别,包括权利人、坐落、权利类型、面积、字第号 、不动产单元号、共有情况、用途、使用期限 、登记日期、共有人,全部 11 个字段。 + * + * + */ +@Slf4j +@RestController +@RequestMapping("/house/certificate") +@NotIntercept +public class RealEstateCertificateController extends BaseController { + + + @Autowired + private BRealEstateCertificateHandle bRealEstateCertificateHandle; + + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BRealEstateCertificateRequest request) { + RealEstateCertificateResp resp = new RealEstateCertificateResp(); + ApiR bR = bRealEstateCertificateHandle.handle(request); + if (bR.isSuccess()) { + Map data = bR.getData(); + resp.setPowerfulPerson(MapUtils.getByExpr(data,"words_result.权利人.[0].word")); //权利人 + resp.setAddress(MapUtils.getByExpr(data,"words_result.坐落.[0].word")); //坐落 + resp.setPowerfulType(MapUtils.getByExpr(data,"words_result.权利类型.[0].word")); // 权利类型 + resp.setArea(MapUtils.getByExpr(data,"words_result.面积.[0].word")); // 面积 + resp.setNumber(MapUtils.getByExpr(data,"words_result.字第号.[0].word")); // 字第号 + resp.setUnitNumber(MapUtils.getByExpr(data,"words_result.不动产单元号.[0].word")); // 不动产单元号 + resp.setShare(MapUtils.getByExpr(data,"words_result.共有情况.[0].word"));// 共有情况 + resp.setUse(MapUtils.getByExpr(data,"words_result.用途.[0].word"));//用途 + resp.setTermOfUse(MapUtils.getByExpr(data,"words_result.使用期限.[0].word")); // 使用期限 + resp.setRegisterDate(MapUtils.getByExpr(data,"words_result.登记日期.[0].word")); // 登记日期 + resp.setSharePerson(MapUtils.getByExpr(data,"words_result.共有人.[0].word")); //共有人 + + return R.ok().setData(resp); + } + return R.error(bR.getErrorMsg()); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/SocialSecurityCardController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/SocialSecurityCardController.java new file mode 100644 index 0000000..0ced79a --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/SocialSecurityCardController.java @@ -0,0 +1,69 @@ +package com.heyu.api.controller.certificate; + + +import com.heyu.api.baidu.handle.certificate.BSocialSecurityCardHandle; +import com.heyu.api.baidu.request.certificate.BSocialSecurityCardRequest; +import com.heyu.api.baidu.response.certificate.BSocialSecurityCardResp; +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.R; +import com.heyu.api.resp.certificate.SocialSecurityCardResp; +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; + +/** + * https://console.bce.baidu.com/support/?_=1740219852952×tamp=1740308886691#/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%2Fsocial_security_card&method=post + *

+ *

+ * 社保卡识别 + *

+ *

+ * 接口描述 + * 支持识别全国各地社保卡,支持识别社会保障卡号、姓名、性别、出生日期、银行卡号、有效期限等8个字段。 + */ +@Slf4j +@RestController +@RequestMapping("/socialSecurityCard") +@NotIntercept +public class SocialSecurityCardController extends BaseController { + + + @Autowired + private BSocialSecurityCardHandle bsocialSecurityCardHandle; + + @RequestMapping("/recognize") + @CacheResult + public R recognize(BSocialSecurityCardRequest request) { + + + SocialSecurityCardResp resp = new SocialSecurityCardResp(); + + ApiR bR = bsocialSecurityCardHandle.handle(request); + + if (bR.isSuccess()) { + + + BSocialSecurityCardResp bSocialSecurityCardResp = bR.getData(); + + BSocialSecurityCardResp.WordsResultDTO wordsResultDTO = bSocialSecurityCardResp.getWordsResult(); + + resp.setCardNumber(wordsResultDTO.getCardNumber().getWord()); //string 是 卡号 + resp.setName(wordsResultDTO.getName().getWord());//string 是 姓名 + resp.setSex(wordsResultDTO.getSex().getWord());// string 是 性别 + resp.setSocialSecurityNumber(wordsResultDTO.getSocialSecurityNumber().getWord());// string 是 社会保障卡号 + resp.setBirthDate(wordsResultDTO.getBirthDate().getWord());// string 是 出生日期 + resp.setIssueDate(wordsResultDTO.getIssueDate().getWord());// string 是 签发日期 + resp.setBankCardNumber(wordsResultDTO.getBankCardNumber().getWord());// string 是 银行卡号 + resp.setExpiryDate(wordsResultDTO.getExpiryDate().getWord());// string 是 有效期限 + return R.ok().setData(resp); + } + + return R.error(bR.getErrorMsg()); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/OverseasPassportResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/OverseasPassportResp.java new file mode 100644 index 0000000..8c3a837 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/OverseasPassportResp.java @@ -0,0 +1,86 @@ +package com.heyu.api.resp.certificate; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class OverseasPassportResp extends BaseResp { + + private String mRZCode2; // MRZCode2 + private String passportType; //护照类型 + private String passportNo; //护照号 + private String passportDate; //出生日期 + private String passportCountryCode; //国家码 + private String nationality; //国籍 + private String namePinYin; //姓名拼音 + private String MRZCode1; //MRZCode1 + private String gender; //性别名称:男、女 + private String validDate; //有效期 + + + + + + +} + + +/*** + * { + * "words_result": { + * "MRZCode2": [ + * { + * "word": "XX000000