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