80 lines
2.1 KiB
Markdown
80 lines
2.1 KiB
Markdown
# 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 | 结果 |
|
||
|
||
### 问题与处理
|
||
```
|