✨ 司机个人认证新增出生年月与住址字段
个人认证快照(PersonCertSubmitRequest)增加 birthday / addressRegion / address, 审核通过时写回司机档案的 birthday / address_region / address 三列。 住址拆成两段是与管理端对齐:blade_transport_driver 有 address_region(地址区划) 与 address(详细地址)两列,管理端的 address_region 存的是各级区划名称直接拼接的 串(如「广西壮族自治区柳州市柳北区」),不是编码,这里沿用同一形状,两端才互相认得。 写回时区划与详细地址都过 blankToNull:框架的 not_null 更新策略只跳过 null, 司机端这两项都是选填,没填时提交的是空串,直接写会把管理端已填的住址清空。 OCR 身份证别名补上「出生」「住址」;birthday 拼写不以 Date 结尾,还要一并纳入 isDateField,否则「1979年11月17日」会原样下发,填不进日期框。
This commit is contained in:
+4
@@ -354,6 +354,10 @@ public class CertAuditServiceImpl implements ICertAuditService {
|
||||
requireIdCardNotTaken(snapshot.getIdCardNo(), driver.getId());
|
||||
driver.setDriverName(snapshot.getRealName());
|
||||
driver.setIdCardNo(snapshot.getIdCardNo());
|
||||
driver.setBirthday(snapshot.getBirthday());
|
||||
// 空串不是「没填」:框架的 not_null 策略只跳过 null,写空串会把管理端填过的住址清掉
|
||||
driver.setAddressRegion(blankToNull(snapshot.getAddressRegion()));
|
||||
driver.setAddress(blankToNull(snapshot.getAddress()));
|
||||
driver.setIdCardFront(snapshot.getIdCardFrontUrl());
|
||||
driver.setIdCardBack(snapshot.getIdCardBackUrl());
|
||||
driver.setIdCardValidStart(snapshot.getIdCardValidStart());
|
||||
|
||||
+6
-1
@@ -279,6 +279,10 @@ public final class OcrFieldSupport {
|
||||
Map<String, List<String>> aliases = new LinkedHashMap<>();
|
||||
aliases.put("realName", List.of("姓名"));
|
||||
aliases.put("idCardNo", List.of("公民身份号码", "公民身份证号码", "身份证号", "身份证号码"));
|
||||
// 身份证正面的「出生」是一整串日期(1990年1月1日),按 birthday 归一成 yyyy-MM-dd;
|
||||
// 住址是身份证上的登记住址,写进 driver.address
|
||||
aliases.put("birthday", List.of("出生", "出生年月", "出生日期"));
|
||||
aliases.put("address", List.of("住址", "地址"));
|
||||
aliases.put("idCardValidStart", List.of("签发日期", "有效起始日期", "有效期限起"));
|
||||
aliases.put("idCardValidEnd", List.of("失效日期", "有效期限", "有效期限止"));
|
||||
return aliases;
|
||||
@@ -319,7 +323,8 @@ public final class OcrFieldSupport {
|
||||
}
|
||||
|
||||
private static boolean isDateField(String key) {
|
||||
return key.endsWith("Date") || key.endsWith("ValidStart") || key.endsWith("ValidEnd");
|
||||
// birthday 的语义是日期但拼写不以 Date 结尾,漏了它会把「1990年1月1日」原样下发
|
||||
return "birthday".equals(key) || key.endsWith("Date") || key.endsWith("ValidStart") || key.endsWith("ValidEnd");
|
||||
}
|
||||
|
||||
private static boolean isNumberField(String key) {
|
||||
|
||||
Reference in New Issue
Block a user