Files
shanxia2.0/docs/data-migration/phase-0-foundation/step-04-users.md
T
2026-07-13 20:26:43 +08:00

80 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P0-4:用户同步
> **前置**:部门(step-02)、角色菜单(step-03)
> **规则**:`user_no` = 中文名;管理员保留 `admin`
> **映射表**:[../mappings/user_mapping.csv](../mappings/user_mapping.csv)
---
## 1. 目标
将 sx `bx_user`、sx CRM `sys_user`、dibang `users` 合并写入门户 `sys_user`,并生成全局 `user_mapping.csv` 供 P1/P2 使用。
---
## 2. 执行前检查
```sql
-- 目标库:确认仅 admin 存在
SELECT id, user_no, nick_name FROM sys_user WHERE del_flag = 0;
-- 源库 sx:统计有效用户
SELECT COUNT(*) FROM bx_user WHERE del_flag = 0;
SELECT COUNT(*) FROM sys_user WHERE del_flag = '0';
-- 源库 dibang:活跃账号
SELECT id, username, role FROM users WHERE is_active = 1;
```
人工审核 [02-user-unification.md](../02-user-unification.md) §3.1(吴九华手机号等)。
---
## 3. 执行步骤(计划)
| 步骤 | 操作 | 状态 |
|------|------|------|
| 1 | 备份目标库 `mysqldump shanxia2.0` | 未执行 |
| 2 | 审核并定稿 `user_mapping.csv` | 初稿已生成 |
| 3 | 开发/运行 `backend/scripts/migrate_users.py --dry-run` | 待开发 |
| 4 | 写入 `sys_user` + `sys_user_role` | 未执行 |
| 5 | 回填 `user_mapping.csv` 的 `new_user_id` | 未执行 |
| 6 | 验收:中文名登录 + 角色菜单 | 未执行 |
---
## 4. 验收标准
- [ ] `sys_user` 有效用户数 = 映射表行数(约 25 员工 + admin,地磅账号按需)
- [ ] 每名员工可用 **中文名** `user_no` 登录
- [ ] `admin` 仍可登录且为超级管理员
- [ ] 地磅操作员可登录且仅见地磅菜单
- [ ] `user_mapping.csv` 中每条 bx/crm 源 ID 均有 `new_user_id`
- [ ] 无重复 `user_no`(冲突已按手机后四位处理)
---
## 5. 执行日志模板
执行后在 `logs/` 新建 `YYYY-MM-DD-HHMM-users.md`:
```markdown
## 批次:YYYY-MM-DD HH:MM
### 环境
- 目标库:
- 操作人:
### 执行命令
(粘贴命令,密码脱敏)
### 行数对比
| 表 | 执行前 | 执行后 | 预期 |
|----|--------|--------|------|
### 抽样登录
| user_no | 结果 |
### 问题与处理
```