用户使用场景 · 平台运营(Admin / Web 管理端)
来源:AGENTS.md(维度配置与知识库管理、关系类型 CRUD、文章发布-审核、报告解析中台、数据迁移、sfms 只读源)、API_REFERENCE.md(/api/admin/* 大量控制器)、cfc-web/、cfc-frontend/pages/admin、黑盒方案 A-01~A-16。
关联用例:test-cases/admin.md(TC-A-01~TC-A-16)。
场景 A-1:管理端登录与看板
用户故事:作为运营,我想登录管理端看全局数据,以便做决策。
- 角色:平台运营
- 前置条件:已分配 admin 账号(手机号 + 密码)。
- 主流程
- 管理端密码登录 → 进入 Dashboard。
- 看板统计加载成功(任务总量/完成率等)。
- 异常/边界:错误密码不签发 token;看板接口超时友好提示。
- 关联需求/设计:
AdminController/AdminAuthController;StatsController /api/stats。
- 关联用例:TC-A-01, TC-A-02
场景 A-2:报告解析中台(类型注册 / 未知聚类)
用户故事:作为运营,我想管理报告解析类型并对未知报告做自学习,以便扩大解析覆盖。
- 角色:平台运营
- 前置条件:
gut_flora 已注册。
- 主流程
- 打开报告解析中台 → 类型列表返回 ≥1 条(含 gut_flora)。
- 注册新报告类型(typeId/显示名/解析路径/threshold)→ 保存成功,列表可见。
- 重复注册同 typeId → 被拒绝。
- 打开未知报告聚类 → 查看聚类下上传,可自学习生成类型。
- 异常/边界:解析路径非法 → 校验拦截;未知聚类无数据时正常空态。
- 关联需求/设计:
AdminReportParserController /api/admin/report-parser/*;健康报告解析特性。
- 关联用例:TC-A-05, TC-A-06, TC-A-07
场景 A-3:文章发布-审核闭环与标题去重
用户故事:作为运营,我想发文章经过审核上线,且标题不重复。
- 角色:平台运营
- 前置条件:待发布文章素材就绪。
- 主流程
- 创建文章 → 提交审核 → 通过。
- 创建 1s 内返回成功(无超时);审核通过后 C 端可见。
- 同标题重复创建 → 第二次被拦截(标题已存在)。
- 异常/边界:长文(8000 字)创建+更新稳定;审核驳回退回草稿。
- 关联需求/设计:文章发布-审核系统;
AdminArticleController;/api/articles/*。
- 关联用例:TC-A-08, TC-A-09
场景 A-4:关系类型 / 勋章 / 供应商 CRUD
用户故事:作为运营,我想维护关系类型、勋章和供应商,以便前端与业务可用。
- 角色:平台运营
- 前置条件:对应管理页可访问。
- 主流程
- 关系类型新增/编辑/停用 → 家长端关系选择器同步生效。
- 创建勋章(名称/图标/触发条件/门槛)→ 200 成功,badgeId 自动生成,列表可见。
- 新增供应商(昵称/手机号/真实姓名)→ 200 成功,列表 name=昵称;同手机号重复保存被拒或可控覆盖。
- 异常/边界:字段缺失/类型错误 → 400 + 字段提示(非 500);停用关系类型不影响历史数据。
- 关联需求/设计:关系类型 CRUD(Web
RelationshipTypes.vue);勋章/供应商管理接口。
- 关联用例:TC-A-10, TC-A-11, TC-A-12
场景 A-5:活动提交审核 / 撤回
用户故事:作为运营,我想管理活动全生命周期,可随时撤回重编辑。
- 角色:平台运营
- 前置条件:草稿活动存在。
- 主流程
- 草稿活动提交审核 → 通过 → 撤回 → 退回草稿。
- 已发布活动可撤回、退回草稿重新编辑。
- 异常/边界:全流程无 500;状态机合法流转。
- 关联需求/设计:
AdminActivityController 等;活动报名特性。
- 关联用例:TC-A-13
场景 A-6:知识库管理与数据迁移
用户故事:作为运营,我想维护知识库并做 sfms→cfc 数据迁移。
- 角色:平台运营
- 前置条件:知识条目/迁移源就绪。
- 主流程
- 删除知识条目 → 200 成功,列表移除,无 500。
- 执行 sfms→cfc 迁移 → 接口返回成功,关键业务表数据量更新。
- 异常/边界:迁移失败回滚并给出明确错误;多数据源
SfmsDataSourceConfig 只读。
- 关联需求/设计:知识库管理;多数据源;
DatabaseInitializer 迁移。
- 关联用例:TC-A-14, TC-A-15
场景 A-7:全局参数校验(不再裸 500)
用户故事:作为质量保障,我想确认所有管理接口对非法入参返回 400 而非 500。
- 角色:平台运营(测试视角)
- 前置条件:各管理页接口可用。
- 主流程
- 各管理接口传空 body / 错类型字段。
- 返回 400 + 具体字段提示(不再裸 500「服务器内部错误」)。
- 异常/边界:覆盖新增接口;回归防止回退。
- 关联需求/设计:统一
Result<T>;全局异常处理。
- 关联用例:TC-A-16