You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dianshang-qianduan/docs/superpowers/specs/2026-08-07-product-developm...

53 lines
3.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 产品开发关键因素第 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` 和前端静态契约测试、生产构建。