From f63df1a9efa83690869f31ba8a1baefb0fe69867 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Sun, 9 Mar 2025 23:29: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 --- .../bankcard/BankCardRecognizeController.java | 66 +++++++++++++++++++ .../certificate/BankCardRecognizeResp.java | 53 +++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/bankcard/BankCardRecognizeController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/resp/certificate/BankCardRecognizeResp.java diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/bankcard/BankCardRecognizeController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/bankcard/BankCardRecognizeController.java new file mode 100644 index 0000000..1f5d403 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/bankcard/BankCardRecognizeController.java @@ -0,0 +1,66 @@ +package com.heyu.api.controller.certificate.bankcard; + + +import com.aliyun.ocr20191230.models.RecognizeBankCardResponse; +import com.aliyun.ocr20191230.models.RecognizeBankCardResponseBody; +import com.heyu.api.alibaba.handle.common.text.ARecognizeBankCardHandle; +import com.heyu.api.alibaba.request.common.text.ARecognizeBankCardRequest; +import com.heyu.api.controller.BaseController; +import com.heyu.api.controller.resp.certificate.BankCardRecognizeResp; +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 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.HashMap; +import java.util.Map; + +@Slf4j +@RestController +@RequestMapping("/bank/card") +@NotIntercept +public class BankCardRecognizeController extends BaseController { + + + @Autowired + private ARecognizeBankCardHandle recognizeBankCardHandle; + + + public final static Map resultDesc = new HashMap<>(); + + + @RequestMapping("/recognize") + @CacheResult + public R recognize(ARecognizeBankCardRequest commonTextRequest) { + BankCardRecognizeResp bankCardRecognizeResp = new BankCardRecognizeResp(); + ApiR aR = recognizeBankCardHandle.handle(commonTextRequest); + if (aR.isSuccess()) { + RecognizeBankCardResponse response = aR.getData(); + if (isSuccessStatusCode(response.getStatusCode())) { + RecognizeBankCardResponseBody body = response.getBody(); + RecognizeBankCardResponseBody.RecognizeBankCardResponseBodyData recognizeBankCardResponseBodyData = body.getData(); + bankCardRecognizeResp.setBankCardNumber(recognizeBankCardResponseBodyData.getCardNumber()); + bankCardRecognizeResp.setBankName(recognizeBankCardResponseBodyData.getBankName()); + bankCardRecognizeResp.setValidDate(recognizeBankCardResponseBodyData.getValidDate()); + bankCardRecognizeResp.setBankCardType(recognizeBankCardResponseBodyData.getCardType()); + bankCardRecognizeResp.setBankCardTypeDesc(resultDesc.get(recognizeBankCardResponseBodyData.getCardType())); + return R.ok().setData(bankCardRecognizeResp); + } + } + return R.ok(aR.getErrorMsg()); + } + + static { + resultDesc.put("CC", "贷记卡"); + resultDesc.put("SCC", "准贷记卡"); + resultDesc.put("DCC", "存贷合一卡"); + resultDesc.put("DC", "储蓄卡"); + resultDesc.put("PC", "预付卡"); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/certificate/BankCardRecognizeResp.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/certificate/BankCardRecognizeResp.java new file mode 100644 index 0000000..2b29c9a --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/certificate/BankCardRecognizeResp.java @@ -0,0 +1,53 @@ +package com.heyu.api.controller.resp.certificate; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class BankCardRecognizeResp extends BaseResp { + + /** + * 银行卡号。 + * + * 示例值: + * 6212262315007683105 + */ + private String bankCardNumber; + + + /*** + * 有效日期,识别失败则返回空字符串。如有多个,则用逗号分隔,例如03/17,04/05。 + * + * 示例值: + * 07/26 + */ + private String validDate; + + + /*** + * 银行名称,识别失败则返回空字符串。 + * + * 示例值: + * 中国工商银行 + */ + private String bankName; + + + /*** + * 银行卡类型。取值如下: + * + * CC:贷记卡 + * SCC:准贷记卡 + * DCC:存贷合一卡 + * DC:储蓄卡 + * PC:预付卡 + * 示例值: + * CC + */ + private String bankCardType; + + + private String bankCardTypeDesc; + +}