05-admin.md 5.1 KB

用户使用场景 · 平台运营(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 账号(手机号 + 密码)。
  • 主流程
    1. 管理端密码登录 → 进入 Dashboard。
    2. 看板统计加载成功(任务总量/完成率等)。
  • 异常/边界:错误密码不签发 token;看板接口超时友好提示。
  • 关联需求/设计:AdminController/AdminAuthController;StatsController /api/stats。
  • 关联用例:TC-A-01, TC-A-02

场景 A-2:报告解析中台(类型注册 / 未知聚类)

用户故事:作为运营,我想管理报告解析类型并对未知报告做自学习,以便扩大解析覆盖。

  • 角色:平台运营
  • 前置条件:gut_flora 已注册。
  • 主流程
    1. 打开报告解析中台 → 类型列表返回 ≥1 条(含 gut_flora)。
    2. 注册新报告类型(typeId/显示名/解析路径/threshold)→ 保存成功,列表可见。
    3. 重复注册同 typeId → 被拒绝。
    4. 打开未知报告聚类 → 查看聚类下上传,可自学习生成类型。
  • 异常/边界:解析路径非法 → 校验拦截;未知聚类无数据时正常空态。
  • 关联需求/设计:AdminReportParserController /api/admin/report-parser/*;健康报告解析特性。
  • 关联用例:TC-A-05, TC-A-06, TC-A-07

场景 A-3:文章发布-审核闭环与标题去重

用户故事:作为运营,我想发文章经过审核上线,且标题不重复。

  • 角色:平台运营
  • 前置条件:待发布文章素材就绪。
  • 主流程
    1. 创建文章 → 提交审核 → 通过。
    2. 创建 1s 内返回成功(无超时);审核通过后 C 端可见。
    3. 同标题重复创建 → 第二次被拦截(标题已存在)。
  • 异常/边界:长文(8000 字)创建+更新稳定;审核驳回退回草稿。
  • 关联需求/设计:文章发布-审核系统;AdminArticleController;/api/articles/*。
  • 关联用例:TC-A-08, TC-A-09

场景 A-4:关系类型 / 勋章 / 供应商 CRUD

用户故事:作为运营,我想维护关系类型、勋章和供应商,以便前端与业务可用。

  • 角色:平台运营
  • 前置条件:对应管理页可访问。
  • 主流程
    1. 关系类型新增/编辑/停用 → 家长端关系选择器同步生效。
    2. 创建勋章(名称/图标/触发条件/门槛)→ 200 成功,badgeId 自动生成,列表可见。
    3. 新增供应商(昵称/手机号/真实姓名)→ 200 成功,列表 name=昵称;同手机号重复保存被拒或可控覆盖。
  • 异常/边界:字段缺失/类型错误 → 400 + 字段提示(非 500);停用关系类型不影响历史数据。
  • 关联需求/设计:关系类型 CRUD(Web RelationshipTypes.vue);勋章/供应商管理接口。
  • 关联用例:TC-A-10, TC-A-11, TC-A-12

场景 A-5:活动提交审核 / 撤回

用户故事:作为运营,我想管理活动全生命周期,可随时撤回重编辑。

  • 角色:平台运营
  • 前置条件:草稿活动存在。
  • 主流程
    1. 草稿活动提交审核 → 通过 → 撤回 → 退回草稿。
    2. 已发布活动可撤回、退回草稿重新编辑。
  • 异常/边界:全流程无 500;状态机合法流转。
  • 关联需求/设计:AdminActivityController 等;活动报名特性。
  • 关联用例:TC-A-13

场景 A-6:知识库管理与数据迁移

用户故事:作为运营,我想维护知识库并做 sfms→cfc 数据迁移。

  • 角色:平台运营
  • 前置条件:知识条目/迁移源就绪。
  • 主流程
    1. 删除知识条目 → 200 成功,列表移除,无 500。
    2. 执行 sfms→cfc 迁移 → 接口返回成功,关键业务表数据量更新。
  • 异常/边界:迁移失败回滚并给出明确错误;多数据源 SfmsDataSourceConfig 只读。
  • 关联需求/设计:知识库管理;多数据源;DatabaseInitializer 迁移。
  • 关联用例:TC-A-14, TC-A-15

场景 A-7:全局参数校验(不再裸 500)

用户故事:作为质量保障,我想确认所有管理接口对非法入参返回 400 而非 500。

  • 角色:平台运营(测试视角)
  • 前置条件:各管理页接口可用。
  • 主流程
    1. 各管理接口传空 body / 错类型字段。
    2. 返回 400 + 具体字段提示(不再裸 500「服务器内部错误」)。
  • 异常/边界:覆盖新增接口;回归防止回退。
  • 关联需求/设计:统一 Result<T>;全局异常处理。
  • 关联用例:TC-A-16