From f3001d31648cf9b35a74b0d412110aa78bb69c1b Mon Sep 17 00:00:00 2001 From: chenyuan Date: Fri, 7 Aug 2026 14:56:58 +0800 Subject: [PATCH] docs: specify product development factors step three --- ...roduct-development-factors-step3-design.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 docs/superpowers/specs/2026-08-07-product-development-factors-step3-design.md diff --git a/docs/superpowers/specs/2026-08-07-product-development-factors-step3-design.md b/docs/superpowers/specs/2026-08-07-product-development-factors-step3-design.md new file mode 100644 index 0000000..5ea4918 --- /dev/null +++ b/docs/superpowers/specs/2026-08-07-product-development-factors-step3-design.md @@ -0,0 +1,52 @@ +# 产品开发关键因素第 3 步设计 + +## 目标 + +为学生端“产品开发关键因素”实训补齐第 3 步“商业化及市场反馈”分析页。学生对成功产品与失败产品分别完成三项固定维度分析,保存后进入第 4 步,但不提交整个任务。 + +## 范围与约束 + +- 仅修改学生端页面及其学生答案校验接口;不调整教师端、任务配置端或其他模块。 +- 延续现有 `product-development-factors` 单页多步骤页面、答案存储和本地草稿机制。 +- 不新增数据库表或字段:第 3 步内容持久化到现有答案记录的 `step3Answer`,进度写入 `currentStep`。 +- 成功保存第 3 步后,保存动作固定为 `SAVE`、`submitted: false`、`currentStep: 4`;不得调用任务提交动作。 + +## 学生页面 + +当 `currentStep === 2` 时展示标题“商业化及市场反馈角度分析,填写下表:”,表头为“维度 / 评估项 / 成功产品 / 失败产品”。 + +固定三行及评估项: + +| 维度 | 评估项 | +| --- | --- | +| 供应链与成本控制 | 产品成本是否可控?是否支持规模化?是否具备备选供应链?关键元器件(如芯片、传感器)有≥2家可替换供应商 | +| 商业模式 | 盈利模式是否清晰?硬件销售毛利率≥50%,或有订阅服务(如云存储、AI 功能包)。是否构建“数据 - 反馈 - 迭代”闭环?产品使用数据可回传,驱动功能优化与新版本开发 | +| 市场反馈 | 是否处于需求上升期?功能、设计、服务、品牌是否有差异化壁垒?用户是否高留存、高互动、低退货? | + +每行的成功产品与失败产品列各提供多行文本输入。六个输入均为必填;保存按钮为“保存并进入第 4 步”,清空按钮沿用现有行为。页面恢复已保存答案和本地草稿;导出内容与清空逻辑覆盖前三步。 + +若任务配置少于四步,保存仍成功,提示“已保存,当前任务尚未配置第 4 步”,并留在当前页;否则切换到第 4 步占位页。 + +## 前端数据流 + +- 定义 `STEP_THREE_FACTOR_ROWS` 和 `stepThreeRows`,结构与前两步相同:`dimension`、`criteria`、`successAnalysis`、`failedAnalysis`。 +- 在 `buildDraft` 中新增 `stepThree`;在加载答案与草稿时恢复第 3 步。 +- 仅第 3 步保存时组装 `{ factors: [{ dimension, successAnalysis, failedAnalysis }] }` 发往校验接口;校验通过后,保存 `step3Answer`。 +- 演示模式使用与正式接口相同的固定维度和六项非空规则,保证离线体验一致。 + +## 后端校验接口 + +新增 `POST /api/student-training-answers/product-development-factors/step-3/validate`。 + +- 仅允许已登录、`roleId == 4` 的学生调用;未登录返回 401,非学生返回 403。 +- 请求体为 `factors` 数组,每项含 `dimension`、`successAnalysis`、`failedAnalysis`。 +- 必须且只能提交一次下列三个维度:供应链与成本控制、商业模式、市场反馈。 +- 每个维度的成功产品与失败产品分析去除空白后都必须有内容。 +- 合法请求返回 `{ valid: true, message: "校验通过" }`;缺项、重复、伪造维度或空内容返回明确的 400 错误信息。 + +## 测试 + +- 后端服务测试覆盖:完整合法数据、空内容、伪造或重复维度、非学生身份。 +- 控制器测试覆盖:接口把认证学生与请求参数传给第 3 步校验服务并返回结果。 +- 前端静态契约测试覆盖:三项固定维度、`step3Answer` 持久化、校验 API、六项非空演示校验,以及只保存进入第 4 步、不提交任务的行为。 +- 最终运行后端 `mvn -B test` 和前端静态契约测试、生产构建。