67 lines
6.9 KiB
Markdown
67 lines
6.9 KiB
Markdown
# 系统与业务覆盖矩阵
|
||
|
||
## 1. 端到端主流程
|
||
|
||
| 流程 | 参与端/进程 | 必测断言 |
|
||
| --- | --- | --- |
|
||
| 用户注册与服务归属 | user_app → API → gas/delivery admin | 邀请范围/时效/次数/地址校验;已有账号不重复创建;归因可审计 |
|
||
| 设备绑定与远控 | user_app/platform_admin → API → IoT → 设备 Mock | 归属鉴权、幂等键、命令 ID、回执、超时待确认、审计;高风险开阀拦截 |
|
||
| 告警整改闭环 | IoT → API/Worker → user_app/service_app/platform_admin | 事件分级、自动关阀、通知、SLA、派单、证据、复检、关闭与全链路审计 |
|
||
| 商城订单履约 | user_app → API → gas_admin/delivery_admin → service_app | 整数金额、库存/合同规则、幂等支付、任务拆分、归属、轨迹、签收、状态聚合 |
|
||
| 安装/维修/安检 | admin → API → service_app → API | 准入、上班、区域、强制证据、异常/恢复、离线补传、服务端完成校验 |
|
||
| 钱包与提现 | user_app/service_app/admin → API | 支付密码、并发余额、不可变流水、预扣/退回/打款、审核隔离、审计 |
|
||
| 内容与上传 | admins → API → apps | 类型/大小/恶意内容、短期授权、对象关联、已读确认、敏感访问审计 |
|
||
|
||
## 2. 模块覆盖
|
||
|
||
| 模块 | 单元/组件 | 接口/契约 | E2E | 专项 |
|
||
| --- | --- | --- | --- | --- |
|
||
| user_app | 模型、Repository、ViewModel、路由、登录/列表组件 | `/heqi/client/v1/user` 全接口及 `user_app` claim | 注册、资料、商城、订单、工单、钱包 | 安全存储、弱网、权限、Android/iOS/Web 兼容 |
|
||
| service_app | 模型、准入、任务状态、加密草稿、定位/取证适配 | `/heqi/client/v1/staff` 全接口及 `service_app` claim | 上班、任务、异常恢复、轨迹、签收、补传 | 后台定位、权限撤销、弱网、加密、时钟偏移 |
|
||
| platform_admin | 资源页、表单规则、权限指令、错误处理 | platform 资源 JSON 与后端路由一致 | 机构、账户/RBAC、产品、订单、钱包、审核 | 越权、敏感导出、键盘可用性、大列表 |
|
||
| gas_admin | 资源页、合同/订单动作、菜单与数据范围 | gas 资源 JSON 与后端一致 | 配送点、人员、用户、合同、订单、财务、工单 | 跨气站隔离、并发动作、导出审计 |
|
||
| delivery_admin | 资源页、订单/人员动作、菜单与数据范围 | delivery 资源 JSON 与后端一致 | 人员、用户、地址、配送、钱包、结算 | 跨配送点隔离、轨迹隐私、并发动作 |
|
||
| site | 页面组件、托管 Worker | 静态资源/路由/缓存头 | 导航、CTA、错误页 | 响应式、Safari、可访问性、SEO、性能 |
|
||
| API | Logic、状态机、金额、幂等、权限、模型约束 | Router+DB、错误码、Schema、上传 | 所有跨端业务流 | 安全、并发、性能、故障注入、审计 |
|
||
| Worker | 事件处理器(落地后) | Outbox/Streams 契约(落地后) | 告警/通知/对账/超时 | 重试、死信、积压、重启、至少一次投递 |
|
||
| IoT | 协议解析/校验(落地后) | MQTT topic/payload/回执契约(落地后) | 遥测→告警、命令→回执 | TLS、ACL、断线重连、伪造、乱序、容量 |
|
||
|
||
## 3. AC-01~AC-24 追踪矩阵
|
||
|
||
| AC | 场景摘要 | 主测模块 | 关键负向/异常覆盖 |
|
||
| --- | --- | --- | --- |
|
||
| AC-01 | 扫码绑定设备 | user_app/API/IoT | 已绑定、不存在、无权、重复扫码、设备离线 |
|
||
| AC-02 | 远程关阀 | user_app/API/IoT | 重复命令、回执丢失、超时、伪造回执、审计缺口 |
|
||
| AC-03 | 高风险自动告警 | IoT/API/Worker/admin/app | 阈值边界、重复遥测、通知失败、关阀失败、SLA 超时 |
|
||
| AC-04 | 高风险开阀拦截 | user_app/API | 直接调 API、旧令牌、并发整改、授权过期 |
|
||
| AC-05 | 安检不合格 | service_app/API/admin/user_app | 缺证据、非法等级、离线乱序、超时升级重复执行 |
|
||
| AC-06 | 安装环境不合格 | service_app/API | 跳过步骤、伪造完成、失败测试、整改链断裂 |
|
||
| AC-07 | 支付与履约 | user_app/API/admin/service_app | 重复/乱序/伪造回调、金额不符、重复建任务 |
|
||
| AC-08 | 提现审核 | apps/API/admin | 余额不足、并发申请、申请人越权、重复打款回执 |
|
||
| AC-09 | 租户隔离 | API/gas_admin/delivery_admin | identity 猜测、搜索/分页/导出绕过、缓存串租户 |
|
||
| AC-10 | 审计与恢复 | API/DB/运维 | 审计篡改、日志缺字段、备份不可用、RPO/RTO 超标 |
|
||
| AC-11 | 配送轨迹 | service_app/API/admin/user_app | 非履约采集、越界查看、弱网补传、异常改派、轨迹伪造 |
|
||
| AC-12 | 群控与报修 | user_app/API/IoT | 部分设备失败、高风险开阀、重复报修、证据缺失 |
|
||
| AC-13 | 气瓶预约订单 | user_app/API/admin | 库存并发、时段失效、支付密码锁定、重复扣款 |
|
||
| AC-14 | 押金/退押/发票 | user_app/API/admin | 数量差异、验收失败、退款去向错误、未授权下载 |
|
||
| AC-15 | 紧急联系人/用气统计 | user_app/API/Worker | 未授权联系人、重复通知、跨设备统计、周期/单位错误 |
|
||
| AC-16 | 安检任务/隐患 | service_app/API/admin | 培训/上班/区域不足、签名缺失、水印/时间伪造 |
|
||
| AC-17 | 安装维修闭环 | service_app/API/admin | 步骤跳转、材料/收费差异、测试失败、重复提交 |
|
||
| AC-18 | 配送/随瓶安检/回收 | service_app/API/admin | 到达伪造、扫码重复、证据不足、押金/库存不一致 |
|
||
| AC-19 | 人员资质与收入 | service_app/API/admin | 证照过期、角色串用、未完成任务入账、越权改收入 |
|
||
| AC-20 | 邀请注册/服务关系 | user_app/API/admin | 过期/停用/次数耗尽/越界、重复建档、关系覆盖 |
|
||
| AC-21 | 作业前置/离线补传 | service_app/API | 任一前置缺失、原始时间丢失、重复/乱序、完整性失败 |
|
||
| AC-22 | 设备共享/紧急联系人 | user_app/API/Worker | 权限撤销后缓存、成员越权控制、联系人未授权 |
|
||
| AC-23 | 二维码/轨迹隐私 | apps/API/admin | 二维码泄密、精确轨迹直链、跨订单访问、无审计导出 |
|
||
| AC-24 | 钱包实体命名一致性 | DB/Go/Flutter/Vue/契约 | 同义表/模型/Schema、内部 ID 暴露、迁移兼容错误 |
|
||
|
||
## 4. 数据与接口不变量
|
||
|
||
- 每表存在 `id bigint` 自增主键、`created_at`、`updated_at`;主实体按规则存在唯一 `identity`。
|
||
- HTTP、前端、日志和跨服务只使用 `identity`,不接受或暴露内部自增 ID。
|
||
- 金额字段为最小货币单位整数;资金、安全和审计事实不可物理删除。
|
||
- 状态只能经专用动作接口流转,非法跳转返回稳定错误码。
|
||
- 客户端隐藏按钮、菜单或本地缓存不作为安全断言,必须直接调用 API 验证服务端拒绝。
|
||
- 所有关键写入验证幂等、事务原子性、审计完整性及失败后的可查询状态。
|
||
|