From 6c2d38aa95bccf4b8b390f88f4a3a491d8d50304 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Thu, 4 Jun 2026 01:59:46 +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 --- .../car/RecognizeDriverLicenseController.java | 100 ++++++++++++++++-- 1 file changed, 90 insertions(+), 10 deletions(-) diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeDriverLicenseController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeDriverLicenseController.java index fe74153..559be82 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeDriverLicenseController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/car/RecognizeDriverLicenseController.java @@ -20,28 +20,83 @@ import java.util.Map; /** * 驾驶证识别控制器 *
- * 对机动车驾驶证正页、副页及电子驾驶证正页进行结构化识别。 - * 校验、请求组装、结果封装及异常处理均在 Controller 层完成。 - *
- *- * 接口路径:POST /driver/license/recognize - *
- *- * 返回约定:进入平台识别链路(组装请求体之后)一律 {@code R.ok()};若有异常则将详细提示写入 {@code msg}。 - * 仅入参校验失败时返回 {@code R.error()}(未调用平台识别、不计费)。 + * 能力说明:对机动车驾驶证正页、副页及电子驾驶证正页进行结构化识别, + * 底层对接百度智能云文字识别「驾驶证识别」能力,由本服务完成参数校验、请求转发与字段映射。 *
* + *| 字段 | 必填 | 说明 |
|---|---|---|
| imageBase64 | 与 imageUrl 二选一 | + *图片 Base64,需 urlencode;编码后≤4M;支持 jpg/jpeg/png/bmp;优先级高于 url |
| imageUrl | 与 imageBase64 二选一 | + *图片完整 URL,≤1024 字节;需公网可访问并关闭防盗链 |
| side | 否,默认 face | + *{@code face}/{@code front}:正页/电子证正页;{@code back}:副页。 + * 映射百度参数 {@code driving_license_side=front|back} |
+ * {
+ * "code": "200", // 成功为 200;仅入参非法时为 400
+ * "msg": "...", // 成功默认文案;业务异常时写入详细提示(仍可能 code=200)
+ * "traceId": "...",
+ * "data": { ... } // 见下方 data 结构,失败时可能为空对象
+ * }
+ *
+ * 返回约定(重要):
+ *正页 / 电子证正页({@link RecognizeDriverLicenseFaceResp},side=face 或 front):
+ *副页({@link RecognizeDriverLicenseBackResp},side=back):
+ *字段与百度 {@code words_result} 中中文 key 的对应关系见 + * 官方返回示例。
+ * * @author heyu * @since 1.0.0 + * @see DriverLicenseRecognizeRequest + * @see RecognizeDriverLicenseFaceResp + * @see RecognizeDriverLicenseBackResp */ @Slf4j @RestController @RequestMapping("/driver/license") public class RecognizeDriverLicenseController extends BaseController { + /** 百度驾驶证识别 API 路径,完整地址见类注释 */ private static final String DRIVING_LICENSE_URI = "/rest/2.0/ocr/v1/driving_license"; - /** 平台错误码 → 对外原因说明(每条语义独立,便于客服判读) */ + /** 百度 error_code → 对外 msg 原因说明(日志与返回 msg 使用「平台」表述,注释可写百度) */ private static final Map+ * 请求示例(form 表单): + *
+ *+ * POST /driver/license/recognize + * Content-Type: application/x-www-form-urlencoded + * + * imageUrl=https://example.com/license.jpg&side=face + * // 或 imageBase64=xxx&side=back + *+ *
+ * 成功示例(正页,data 为 {@link RecognizeDriverLicenseFaceResp}): + *
+ *
+ * { "code":"200", "msg":"成功", "data": { "licenseNumber":"...", "name":"...", "vehicleType":"C1", ... } }
+ *
+ * + * 已调用百度但识别异常时仍返回 code=200,msg 中带处置指引,data 可能为空对象。 + *
+ * + * @param request 驾驶证识别请求,字段见类注释「请求参数」 + * @return 正页/电子证正页返回 {@link RecognizeDriverLicenseFaceResp};副页返回 {@link RecognizeDriverLicenseBackResp} + */ @EbAuthentication(tencent = ApiConstants.TENCENT_AUTH) @PostMapping("/recognize") public R recognize(DriverLicenseRecognizeRequest request) {