123 lines
5.1 KiB
Markdown
123 lines
5.1 KiB
Markdown
# 客户演示账号与验收手册
|
||
|
||
更新时间:2026-07-16
|
||
|
||
本手册用于 0716 会议 P0-08:向秦总、蒲总演示客户侧四个菜单,并在不扩大车辆 Scope、不保存明文密码的前提下形成可重复验收证据。
|
||
|
||
ECS 门禁 release:`customer-demo-gate-20260716172056`
|
||
|
||
## 当前生产基线
|
||
|
||
截至 2026-07-16 17:16(Asia/Shanghai):
|
||
|
||
- ECS 共 1,024 辆权威绑定车辆。
|
||
- 平台有 1 个管理员账号和 1 个既有客户账号。
|
||
- 当前没有能从用户名或显示名明确对应“秦总、蒲总”的两个账号。
|
||
- 会议纪要没有提供两人的登录名、初始密码、客户/租户标识和允许查看的车辆清单,因此不得猜测身份或直接扩大既有客户权限。
|
||
|
||
账号创建时必须只授予:
|
||
|
||
- `monitor`:全局监控
|
||
- `vehicles`:车辆查询
|
||
- `tracks`:轨迹回放
|
||
- `statistics`:里程查询
|
||
|
||
不得授予历史数据、告警、接入管理、运维质量或账号管理菜单。
|
||
|
||
## 建议演示车辆
|
||
|
||
以下是生产只读筛选得到的首选样本。状态会随实时上报变化,正式演示前必须重新运行门禁;若分类不再成立,应换成同类候选,而不是篡改状态。
|
||
|
||
| 场景 | 车牌 | VIN | 当前证据 |
|
||
| --- | --- | --- | --- |
|
||
| 在线多来源 | 粤AGR6863 | `LB9A32A21R0LS1464` | GB32960 + JT808,2 个来源均在线且有位置 |
|
||
| 在线单来源 | 浙F31088F | `LA9GG68L5PBAF4797` | JT808 单来源、在线且有位置 |
|
||
| 无实时位置 | 沪BH391挂 | `LA9935J21F0YWT578` | 权威车辆存在,无来源、无位置 |
|
||
| 离线但有最后位置 | 沪A09100F | `LKLG7C4E0NA774774` | JT808 来源离线,保留最后有效位置 |
|
||
|
||
历史能力预检:
|
||
|
||
| 车辆 | 2026-07-16 轨迹 | 2026-07-10 至 07-16 里程 |
|
||
| --- | --- | --- |
|
||
| 粤AGR6863 | 返回 1,600 个采样点,约 294.3 km,推荐 GB32960 | 7 个车辆日,约 542.8 km |
|
||
| 浙F31088F | 返回 1,600 个采样点,约 111.8 km,推荐 JT808 | 7 个车辆日,约 360.0 km |
|
||
| 沪A09100F | 返回 955 个点,约 31.9 km,推荐 JT808 | 7 个车辆日,约 280.82 km |
|
||
|
||
这些数字只用于证明样本具备演示数据,不是业务结算口径。
|
||
|
||
## 授权时间边界
|
||
|
||
新账号分配车辆时会以实际创建/授权时间作为历史起点:
|
||
|
||
- 轨迹只能查询授权开始后的数据。
|
||
- 里程是自然日聚合;如果授权发生在当天零点之后,第一个可完整展示的里程日是下一自然日。
|
||
- 不得为了演示直接回写或倒签 `valid_from`,否则会让客户看到真实授权前的数据并破坏审计。
|
||
|
||
因此若计划 2026-07-17 演示,应在 2026-07-16 完成账号和车辆授权;轨迹范围从实际授权时间之后开始,里程使用 2026-07-17 当日或之后数据。
|
||
|
||
## 自动验收门禁
|
||
|
||
密码只通过临时环境变量传入,不写命令行、脚本、日志或 Git:
|
||
|
||
```bash
|
||
read -s DEMO_PASSWORD
|
||
export DEMO_PASSWORD
|
||
|
||
deploy/verify-customer-demo.py \
|
||
--base-url http://115.29.187.205:20300 \
|
||
--username '<确认后的登录名>' \
|
||
--expected-vins 'LB9A32A21R0LS1464,LA9GG68L5PBAF4797,LA9935J21F0YWT578,LKLG7C4E0NA774774' \
|
||
--multi-source-vin LB9A32A21R0LS1464 \
|
||
--single-source-vin LA9GG68L5PBAF4797 \
|
||
--no-location-vin LA9935J21F0YWT578 \
|
||
--offline-vin LKLG7C4E0NA774774 \
|
||
--denied-vin LNXNEGRR7SR318212 \
|
||
--track-vin LB9A32A21R0LS1464 \
|
||
--track-from '2026-07-16T17:00:00+08:00' \
|
||
--track-to '2026-07-17T17:00:00+08:00' \
|
||
--mileage-from 2026-07-17 \
|
||
--mileage-to 2026-07-17
|
||
|
||
unset DEMO_PASSWORD
|
||
```
|
||
|
||
门禁验证:
|
||
|
||
1. 登录成功且角色为 `customer`。
|
||
2. 菜单严格等于四个客户菜单。
|
||
3. 会话车辆数、实时列表和预期 VIN 集合完全一致。
|
||
4. 四类样本仍符合在线/离线、来源数和位置可用性分类。
|
||
5. 每台授权车辆可读取单车详情。
|
||
6. 未授权 VIN 被 403/404 或按“未解析”隐藏。
|
||
7. 指定车辆存在可回放轨迹和车辆日里程。
|
||
8. 全局监控、车辆详情、轨迹和里程 SPA 路由可加载。
|
||
9. 验收结束后主动注销临时会话。
|
||
|
||
成功输出示例:
|
||
|
||
```text
|
||
customer_demo_gate=ok username=<account> vehicles=4 menus=monitor,statistics,tracks,vehicles samples=4 track=1 mileage=1 denied=1
|
||
```
|
||
|
||
## 演示顺序
|
||
|
||
1. 使用客户账号登录,确认侧边栏只有四个菜单。
|
||
2. 全局监控搜索四个样本,解释在线多源、在线单源、无位置和离线有位置。
|
||
3. 选择粤AGR6863,进入单车详情,查看最新上报、推荐来源和全部来源差异。
|
||
4. 返回原监控上下文,再进入轨迹回放。
|
||
5. 打开里程查询,使用今天/昨天/近 7 天和协议优先级。
|
||
6. 输入未授权 VIN,确认无法读取。
|
||
7. 记录现场问题、责任人、优先级和是否阻塞交付。
|
||
|
||
## 尚需业务确认
|
||
|
||
正式创建两个账号前仍需确认:
|
||
|
||
- 两个登录名或手机号;
|
||
- 显示名称;
|
||
- 各自初始密码的交付方式;
|
||
- 两人是否共享上述 4 辆演示车,或分别使用不同车辆 Scope;
|
||
- 可选的 OneOS/RuoYi `customerRef`、`tenantRef` 映射值。
|
||
|
||
这些信息会直接改变真实客户身份和车辆数据可见范围,不能由开发侧猜测。
|