✨ 登录自动建档写入岗位并订正存量空岗位

- createPlaceholderProfile 写 posts='司机':岗位为空的档案会被派单候选筛掉
- 新增幂等订正脚本,只补 profile_source='login_auto' 且岗位为空的档案
- update_time 不覆盖,脚本内附校验与回退段
This commit is contained in:
2026-10-23 20:03:56 +08:00
parent 7fa20747ab
commit 70b2096e8a
3 changed files with 65 additions and 0 deletions
@@ -0,0 +1,58 @@
-- ----------------------------
-- 登录自动建档的司机档案补岗位
-- 写业务数据。执行前先做第 0 节备份,执行后跑第 3 节校验。可重复执行。
-- ----------------------------
--
-- 为什么要订正:
-- 派单候选司机按岗位过滤(posts LIKE '%司机%'),岗位为空的档案选不到。
-- 小程序登录自动建档原先只写了手机号、租户、user_id,posts 留空,
-- 于是新注册的司机在运单派单里搜不到。建档逻辑已同步改为写岗位(PROFILE_DEFAULT_POST)。
--
-- 处置口径:只补「登录自动建档」的档案,条件是 profile_source = 'login_auto' 且岗位为空。
-- 手工建档的档案岗位由管理端必填,为空说明被人主动清空过,不在本次订正范围。
-- update_time 不在 SET 里,保留原值。
-- ----------------------------
-- 0. 备份(必须在订正之前执行,仅首次需要)
-- ----------------------------
-- CREATE TABLE blade_transport_driver_posts_bak AS
-- SELECT id, tenant_id, driver_name, mobile, posts, profile_source, update_time
-- FROM blade_transport_driver
-- WHERE is_deleted = 0
-- AND profile_source = 'login_auto'
-- AND (posts IS NULL OR posts = '');
START TRANSACTION;
-- ----------------------------
-- 1. 订正岗位
-- ----------------------------
UPDATE `blade_transport_driver`
SET `posts` = '司机'
WHERE `is_deleted` = 0
AND `profile_source` = 'login_auto'
AND (`posts` IS NULL OR `posts` = '');
-- ----------------------------
-- 2. 提交
-- ----------------------------
COMMIT;
-- ----------------------------
-- 3. 校验(两行都应为 0)
-- ----------------------------
-- SELECT COUNT(1) AS remaining_empty
-- FROM blade_transport_driver
-- WHERE is_deleted = 0 AND profile_source = 'login_auto' AND (posts IS NULL OR posts = '');
--
-- SELECT COUNT(1) AS touched_overlap
-- FROM blade_transport_driver
-- WHERE is_deleted = 0 AND profile_source = 'login_auto' AND posts IS NOT NULL AND posts <> '司机';
-- ----------------------------
-- 4. 回退(仅在需要撤销本次订正时手工执行;执行前确认这些行确实是本次改的)
-- ----------------------------
-- UPDATE `blade_transport_driver`
-- SET `posts` = NULL
-- WHERE `is_deleted` = 0
-- AND `profile_source` = 'login_auto'
-- AND `posts` = '司机';