功能修复: 1. 患者创建空名称验证:后端添加 name.trim().is_empty() 检查 2. 仪表盘统计容错:单个查询失败返回零值而非 500 3. FHIR 路由修复:从 /fhir 移到 /api/v1/fhir 保持一致 4. 冻结模块后端中间件:新增 frozen_module_middleware 拦截冻结路径 5. 积分端点权限码:health.health-data.list → health.points.list 6. 角色权限迁移:护士补充 devices.list,运营补充 points.list/manage 7. 测试结果文档:R01-R05 角色测试 + T00/T10 结果归档 Clippy 全 workspace 清零(14→0 errors): - erp-core: 修复 empty doc line、collapsible if、redundant closure 等 9 处 - erp-health: 修复 too_many_arguments、unused var、unnecessary parens 等 58 处 - erp-ai: 修复 dead_code、unused import 等 11 处 - erp-plugin: 修复 too_many_arguments、wildcard pattern 等 11 处 - erp-server-migration: 修复 enum_variant_names 5 处 - erp-auth/config/workflow/message: 各 1-3 处 工程改进: - lint-staged 配置迁移到 .lintstagedrc.js(函数式避免文件列表传给 clippy) - cargo fmt 统一格式化
133 lines
6.4 KiB
Markdown
133 lines
6.4 KiB
Markdown
# R05 — Operator(运营人员)业务场景测试计划
|
||
|
||
> 角色: operator | 测试账号: operator_test / Admin@2026 | 菜单数: 24 | 重点: 内容运营与积分商城
|
||
|
||
## 1. 登录 & 仪表盘
|
||
|
||
| # | 测试项 | 操作 | 预期结果 | 通过 |
|
||
|---|--------|------|----------|------|
|
||
| 1.1 | 登录 | 输入 operator_test / Admin@2026 | 成功登录,左侧菜单 24 项 | ☐ |
|
||
| 1.2 | 运营仪表盘 | 查看首页 | 显示"运营仪表盘":运营洞察、积分动态(今日发放/消费)、内容矩阵(已发布/草稿)、今日待办 | ☐ |
|
||
| 1.3 | AI 摘要 | 查看顶部 AI 摘要 | 显示 AI 生成的运营重点摘要 | ☐ |
|
||
| 1.4 | 快捷操作 | 查看按钮 | 审核积分订单、发布新文章、推送活动提醒 | ☐ |
|
||
|
||
## 2. 场景 A — 患者与标签管理
|
||
|
||
> **业务链**: 管理标签 → 查看患者(只读)
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 通过 |
|
||
|---|------|------|----------|------|
|
||
| A.1 | 标签管理 | /health/tags → 新增"术后康复"标签 → 编辑 → 保存 | 标签 CRUD 正常(有 tags.manage) | ☐ |
|
||
| A.2 | 患者列表 | /health/patients → 查看列表 | 只读查看,确认新增按钮是否隐藏(有 patient.list 无 manage) | ☐ |
|
||
| A.3 | 患者搜索 | 搜索框输入 → 标签筛选 | 搜索和筛选正常 | ☐ |
|
||
|
||
**交接点**: 标签创建后,医护角色可在患者筛选中使用。
|
||
|
||
## 3. 场景 B — 内容发布链
|
||
|
||
> **业务链**: 创建文章 → 编辑 → 提交审核 → 发布 → 验证已发布
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 通过 |
|
||
|---|------|------|----------|------|
|
||
| B.1 | 创建文章 | /health/articles → 新增 → 填写标题/内容 → 保存草稿 | 文章状态 draft | ☐ |
|
||
| B.2 | 编辑文章 | 点击草稿 → 修改内容 → 保存 | 内容更新 | ☐ |
|
||
| B.3 | 发布文章 | 点击发布 | 状态 draft → published(有 articles.manage 和 articles.review) | ☐ |
|
||
| B.4 | 内容矩阵 | 回到运营仪表盘 → 查看内容矩阵 | 已发布/草稿数量更新 | ☐ |
|
||
|
||
**交接点**: 已发布文章患者端小程序可见。
|
||
|
||
## 4. 场景 C — 积分商城链
|
||
|
||
> **业务链**: 配置积分规则 → 上架商品 → 查看订单
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 通过 |
|
||
|---|------|------|----------|------|
|
||
| C.1 | 积分规则 | /health/points-rules → 查看 → 编辑规则 | 可管理积分规则 | ☐ |
|
||
| C.2 | 新增商品 | /health/points-products → 新增 → 填写名称/积分/库存 → 保存 | 商品出现在列表 | ☐ |
|
||
| C.3 | 订单管理 | /health/points-orders → 查看订单列表 | 显示兑换订单 | ☐ |
|
||
| C.4 | 积分动态 | 回到运营仪表盘 → 查看积分动态 | 今日发放/消费数据更新 | ☐ |
|
||
|
||
**交接点**: 商品上架后,患者端小程序积分商城可见可兑换。
|
||
|
||
## 5. 场景 D — 线下活动链
|
||
|
||
> **业务链**: 创建活动 → 查看报名 → 管理
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 通过 |
|
||
|---|------|------|----------|------|
|
||
| D.1 | 创建活动 | /health/offline-events → 新增 → 填写名称/时间/地点 → 保存 | 活动创建成功 | ☐ |
|
||
| D.2 | 查看活动 | 列表查看活动详情 | 显示报名人数、活动状态 | ☐ |
|
||
|
||
## 6. 场景 E — 设备与告警查看
|
||
|
||
> **业务链**: 查看设备状态 → 查看告警统计
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 通过 |
|
||
|---|------|------|----------|------|
|
||
| E.1 | 设备管理 | /health/devices → 查看列表 | 只读查看(无 devices.manage) | ☐ |
|
||
| E.2 | 告警仪表盘 | /health/alert-dashboard → 查看 | 只读查看(只有 alerts.list,确认操作按钮不可用) | ☐ |
|
||
|
||
## 7. 场景 F — AI 用量
|
||
|
||
> **业务链**: 查看 AI 调用统计
|
||
|
||
| # | 步骤 | 操作 | 预期结果 | 通过 |
|
||
|---|------|------|----------|------|
|
||
| F.1 | AI 用量 | /health/ai-usage → 查看 | 只读查看 AI 调用量 | ☐ |
|
||
|
||
## 8. 消息
|
||
|
||
| # | 测试项 | 操作 | 预期结果 | 通过 |
|
||
|---|--------|------|----------|------|
|
||
| 8.1 | 消息列表 | /messages → 查看 | 只读消息列表 | ☐ |
|
||
|
||
## 9. 权限边界验证
|
||
|
||
> operator 不应访问的模块
|
||
|
||
| # | 测试项 | 操作 | 预期结果 | 通过 |
|
||
|---|--------|------|----------|------|
|
||
| 9.1 | 无用户管理 | 地址栏输入 /users | 403 | ☐ |
|
||
| 9.2 | 无医护管理 | 地址栏输入 /health/doctors | 403 | ☐ |
|
||
| 9.3 | 无随访管理 | 地址栏输入 /health/follow-up-tasks | 403 | ☐ |
|
||
| 9.4 | 无咨询管理 | 地址栏输入 /health/consultations | 403 | ☐ |
|
||
| 9.5 | 无诊断记录 | 地址栏输入 /health/diagnoses | 403 | ☐ |
|
||
| 9.6 | 无行动收件箱 | 地址栏输入 /health/action-inbox | 403 | ☐ |
|
||
| 9.7 | 无知情同意 | 地址栏输入 /health/consents | 403 | ☐ |
|
||
| 9.8 | 无 AI 分析 | 地址栏输入 /health/ai-analysis | 403 | ☐ |
|
||
| 9.9 | 无系统设置 | 地址栏输入 /settings | 403 | ☐ |
|
||
|
||
## 10. 跨角色协作验证
|
||
|
||
| # | 协作场景 | 操作 | 预期结果 | 通过 |
|
||
|---|----------|------|----------|------|
|
||
| X.1 | 标签共享 | 新建标签 → 用 doctor 账号验证 | doctor 可在患者筛选中使用新标签 | ☐ |
|
||
| X.2 | 内容发布同步 | 发布文章 → 验证患者端可见 | 小程序患者端可见已发布内容 | ☐ |
|
||
| X.3 | 积分订单联动 | 患者兑换商品 → 查看订单 | 订单出现在积分订单列表 | ☐ |
|
||
| X.4 | 线下活动报名 | 创建活动 → 小程序端报名 → 查看报名数 | 报名数实时更新 | ☐ |
|
||
| X.5 | 积分规则生效 | 修改积分规则 → 患者端操作 → 验证积分变化 | 新规则立即生效 | ☐ |
|
||
|
||
## 11. 事件链路验证
|
||
|
||
| # | 事件链路 | 触发操作 | 验证方式 | 通过 |
|
||
|---|----------|----------|----------|------|
|
||
| E.1 | 文章发布事件 | 发布文章 | 小程序患者端可见(article.published 事件消费) | ☐ |
|
||
| E.2 | 积分变动事件 | 积分规则变更 | 运营仪表盘积分动态数据更新 | ☐ |
|
||
| E.3 | 商品上架事件 | 新增积分商品 | 小程序积分商城可见新商品 | ☐ |
|
||
|
||
## 11. 小程序端(患者视角)
|
||
|
||
> operator 不在医护列表中,以普通患者身份使用小程序
|
||
|
||
| # | 测试项 | 操作 | 预期结果 | 通过 |
|
||
|---|--------|------|----------|------|
|
||
| 11.1 | 登录跳转 | operator_test 登录小程序 | 跳转到患者首页(isMedicalStaff=false) | ☐ |
|
||
| 11.2 | 患者首页 | 查看首页 | 显示体征完成度、今日待办、快捷操作(普通患者视图) | ☐ |
|
||
|
||
## 测试结果
|
||
|
||
- 测试人: _________
|
||
- 测试日期: _________
|
||
- 通过数: ___ / 总数: ___
|
||
- 问题记录:
|