✨ 审核列表新增司机姓名与手机号,并修正驾驶车辆绑定校验

审核页的司机姓名与手机号取司机档案的**当前值**,不是提交时的历史值:
手机号从未进入过认证快照(只有司机档案这一个来源),而队列的用途是
「找得到人、联系得上」。司机侧的认证对象就是记录本身;车辆侧记录不含任何
司机信息,取提交该记录的司机。存量订正记录里没有系统账号的那些司机解析不到,
两列为空属正常状态。

筛选必须发生在分页之前,故列表改为自定义 SQL;在 Java 层补字段再过滤会变成
「先分页再过滤」,每页条数与总数都不准。姓名搜索同时匹配档案当前姓名与提交时的
旧名,改名后按新名、旧名都搜得到。

顺带修掉两处既有缺陷:

1. 管理端保存绑定多辆车的司机会误报「驾驶车辆不存在」——小程序把车牌逗号并列
   写入 driving_vehicle,管理端却拿整串去车牌表精确查,两边口径不一致。
2. 「一个司机最多 5 辆车」后端从未校验,且 driving_vehicle 原为 varchar(30),
   5 个车牌连分隔符要 39 字符,超长写入会被静默截断成半个车牌(还会被当成一辆车)。
   列扩到 varchar(100) 并在写入前校验数量与车牌格式。
This commit is contained in:
2026-10-03 14:35:59 +08:00
parent bd01122409
commit cc997c1c0c
17 changed files with 469 additions and 42 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ CREATE TABLE `blade_transport_driver` (
`education` varchar(20) DEFAULT NULL COMMENT '学历',
`address_region` varchar(100) DEFAULT NULL COMMENT '地址区划',
`address` varchar(200) DEFAULT NULL COMMENT '详细地址',
`driving_vehicle` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '驾驶车辆车牌号',
`driving_vehicle` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '驾驶车辆车牌号,多个用逗号分隔',
`posts` varchar(100) DEFAULT NULL COMMENT '岗位,多个使用逗号分隔',
`id_card_front` varchar(1000) DEFAULT NULL COMMENT '身份证正面照',
`id_card_back` varchar(1000) DEFAULT NULL COMMENT '身份证反面照',
@@ -0,0 +1,13 @@
-- ----------------------------
-- 司机「驾驶车辆」字段扩长:varchar(30) -> varchar(100)
-- ----------------------------
-- 一个司机最多绑定 5 辆车(与小程序端「车辆认证一个司机最多添加 5 辆」一致),
-- 该字段是**逗号并列的车牌列表**,5 个普通车牌连分隔符要 39 字符,
-- 新能源号牌(8 位)要 44 字符 —— 30 字符连 4 辆车都放不下。
-- 超长写入的后果不是报错而是**静默截断**:字段里会留下半个车牌,
-- 而拆车牌的规则会把这段残渣当成一辆车,司机名下于是多出一辆不存在的车。
--
-- 排序规则保持不变(utf8mb4_general_ci):车辆表与认证记录表都用这个规则,
-- 三张表之间已有按车牌的关联查询,改规则会引发 Illegal mix of collations。
ALTER TABLE `blade_transport_driver`
MODIFY COLUMN `driving_vehicle` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '驾驶车辆车牌号,多个用逗号分隔';