task-requirements.md 36 KB

任务管理模块需求分析

版本: V1.2 更新时间: 2026-04-13


一、需求清单概览

需求ID 描述 优先级 状态
TASK-001 家长可创建任务,设置任务名称 P0 ✅ 已实现
TASK-002 设置任务积分值(1-10分,默认2分) P0 ✅ 已实现
TASK-003 设置任务截止时间(精确到分钟) P0 ✅ 已实现
TASK-004 设置任务重复(每日/每周) P0 ✅ 已实现
TASK-005 设置任务分类(学习类/生活类/运动类/其他) P0 ✅ 已实现
TASK-006 任务模板功能 P1 ⚠️ 部分实现
TASK-007 设置审核方式 P1 ⚠️ 部分实现
TASK-008 孩子可查看今日任务列表 P0 ✅ 已实现
TASK-009 孩子点击"完成"按钮提交任务 P0 ✅ 已实现
TASK-010 任务完成方式设置 P2 ⚠️ 待完善
TASK-011 任务时长设置 P2 ⚠️ 待完善
TASK-012A 打卡支持照片上传 P0 ✅ 已实现
TASK-012B 打卡支持视频上传 P0 ✅ 已实现
TASK-012C 打卡支持录音上传 P0 ✅ 已实现
TASK-012D 打卡支持文字描述 P0 ✅ 已实现
TASK-012E 打卡支持倒计时功能 P0 ✅ 已实现
TASK-012F 倒计时结束时语音提醒 P0 ✅ 已实现
TASK-013 任务提醒通知 P1 ✅ 已实现
TASK-014 任务历史记录查询 P1 ✅ 已实现
TASK-015 任务统计分析报表 P1 ✅ 已实现
TASK-016 批量操作任务 P2 ❌ 未实现

二、需求详细描述

2.1 任务创建(TASK-001~005)

TASK-001: 创建任务,设置任务名称

  • 描述: 家长可以创建任务,设置任务名称
  • 必填: 是
  • 字段: title (String, 最大100字符)
  • 验证: 不能为空
  • 实现位置: TaskService.createTask()

TASK-002: 设置任务积分值

  • 描述: 积分值范围1-10分,默认2分
  • 必填: 是
  • 字段: points (Integer)
  • 默认值: 2
  • 验证: 1-10分

TASK-003: 设置任务截止时间

  • 描述: 精确到分钟,支持多孩子任务和家长任务
  • 必填: 是
  • 字段: deadline (DateTime)
  • 前端: 多级日期时间选择器(年/月/日/时/分)

TASK-004: 设置任务重复

  • 描述: 支持每日重复、每周重复
  • 字段: repeatType (String)
  • 可选值: none / daily / weekly
  • 定时任务: RepeatTaskGenerator 每天05:00执行

TASK-005: 设置任务分类

  • 描述: 学习类/生活类/运动类/小游戏类/其他
  • 字段: category (String)
  • 可选值: 学习类 / 生活类 / 运动类 / 小游戏类 / 其他
  • 说明: 小游戏类是一种任务类型,孩子通过完成在线小游戏获得积分奖励
  • 小游戏列表:
    • 舒尔特方格 - 专注力训练
    • 猜数字 (1a2b) - 逻辑推理训练
    • 数独 - 策略与数学思维训练

2.2 任务模板与审核(TASK-006~007)

TASK-006: 任务模板功能

  • 描述: 通过任务模板快速创建
  • 状态: ⚠️ 部分实现
  • 待完善: 模板库管理、模板选择UI

TASK-007: 设置审核方式

  • 描述: 设置审核人类型
  • 字段: reviewType (String)
  • 可选值:
    • creator - 创建者审核
    • parent - 家长审核
    • teacher - 成长规划师审核
    • ai - AI自动审核

2.3 任务查看与完成(TASK-008~011)

TASK-008: 孩子查看今日任务

  • 描述: 孩子可查看今日需完成的任务列表
  • 实现: GET /api/tasks/today?childId={id}
  • 返回: 当日所有 pending / completed 状态的任务

TASK-009: 孩子完成任务

  • 描述: 孩子点击完成按钮提交任务
  • 实现: POST /api/tasks/{id}/complete
  • 参数: childId, photoUrl(可选)

TASK-010: 任务完成方式设置

  • 描述: 支持多种完成方式
  • 字段: completeTypes (JSON数组)
  • 可选值:
    • checkin - 打卡
    • text - 文本
    • audio - 语音
    • image - 图片
    • video - 视频

TASK-011: 任务时长设置

  • 字段: duration (Integer, 分钟)
  • 描述: 任务预计耗时

2.4 打卡功能(TASK-012A~F)

需求ID 描述 实现
TASK-012A 照片上传 ✅ 文件上传API
TASK-012B 视频上传 ✅ 文件上传API
TASK-012C 录音上传 ✅ 文件上传API
TASK-012D 文字描述 ✅ CompleteTaskDTO.text
TASK-012E 倒计时功能 ✅ 前端组件
TASK-012F 语音提醒 ✅ 前端TTS

2.5 小游戏任务类型(TASK-017A~C)

说明:小游戏是任务分类的一种形式,属于"小游戏类"任务。孩子完成小游戏后获得积分奖励,与普通任务采用相同的积分计算逻辑。

TASK-017A: 小游戏任务-舒尔特方格

  • 描述: 专注力训练游戏,在方格中按顺序点击数字
  • 游戏代码: schulte
  • 游戏参数: gridSize (5x5, 6x6等)
  • 积分规则: 根据完成时间计算,参考 MiniGameService.completeGame()
  • 状态: ✅ 已实现
  • API:
    • POST /api/mini-game/list - 获取小游戏列表
    • POST /api/mini-game/complete - 完成任务获得积分

TASK-017B: 小游戏任务-猜数字(1a2b)

  • 描述: 逻辑推理游戏,猜测4位数字并获取A、B提示
  • 游戏代码: 1a2b
  • 积分规则: 用时越短分数越高,120秒内完成得满分
  • 状态: ✅ 已实现
  • 特殊逻辑: 用时判断(不是次数判断)

TASK-017C: 小游戏任务-数独

  • 描述: 策略与数学思维训练游戏,完成9x9数独
  • 游戏代码: sudoku
  • 难度等级: easy, medium, hard
  • 积分规则: 根据完成时间和难度计算
  • 验证逻辑: 行、列、3x3宫格都必须正确

小游戏任务与普通任务的关系

特性 普通任务 小游戏任务
任务分类 学习类/生活类/运动类/其他 小游戏类
完成方式 打卡/文本/图片/视频 游戏完成回调
积分计算 基础分+超额分 按游戏规则计算
审核流程 可选需审核 直接完成即时获积分
历史记录 任务历史 统一记录在任务历史中

2.6 任务提醒与统计(TASK-013~016)

TASK-013: 任务提醒通知

  • 描述: 在任务截止前发送提醒
  • API:
    • GET /api/tasks/reminder/{childId} - 30分钟内到期
    • GET /api/tasks/upcoming/{childId}?minutes=60 - 自定义时间
    • GET /api/tasks/overdue/{childId} - 已超时任务

TASK-014: 任务历史记录查询

  • 描述: 查看历史任务并支持筛选
  • API: GET /api/tasks/history/filter/{childId}
  • 筛选条件: 状态、时间范围

TASK-015: 任务统计分析报表

  • 描述: 统计任务完成情况
  • API:
    • GET /api/tasks/statistics/{childId} - 概览统计
    • GET /api/tasks/statistics/category/{childId} - 分类统计
    • GET /api/tasks/statistics/date/{childId}?days=7 - 日期统计
    • GET /api/tasks/statistics/family/{familyId} - 家庭统计

TASK-016: 批量操作任务

  • 描述: 批量删除、批量审核
  • 状态: ❌ 未实现

三、任务数据模型

3.1 Task 实体字段

// 基础字段
private Long id;
private Long familyId;       // 家庭ID
private Long creatorId;      // 创建者ID
private String title;        // 任务名称
private String description;  // 任务描述

// 执行者信息
private String executorType; // child/parent
private Long executorId;     // 执行者ID
private Long childId;        // 孩子ID(兼容)

// 积分与时间
private Integer points;      // 积分值
private Date deadline;      // 截止时间

// 分类与审核
private String category;     // 分类
private Integer needReview; // 是否需要审核
private String reviewType;   // 审核人类型
private String status;       // 任务状态
private Date completedAt;    // 完成时间

// 重复设置(TASK-004)
private String repeatType;  // none/daily/weekly
private Long templateId;    // 模板ID
private Integer isTemplate; // 是否模板

// POINT-002:超额积分
private String bonusRule;   // JSON格式规则

// POINT-009:积分有效期
private Integer pointsExpireDays; // 有效期天数

// 扩展字段
private String taskType;    // onetime/recurring
private String frequency;   // daily/weekly/monthly
private Integer maxFrequency; // 周期内最多次数
private String completeTypes; // 完成方式JSON
private Date earliestStart;  // 最早开始
private Date latestEnd;      // 最晚结束

3.2 状态流转说明

pending → completed (孩子完成)
pending → completed (审核通过)
completed → pending (审核拒绝)
pending → cancelled (创建者删除)

3.3 任务属性分组与职责边界

说明:以下内容从业务视角定义任务对象的完整属性。前端展示时,应按角色和阶段裁剪字段;后端存储时,宜将“任务定义”和“执行记录”分开管理。

A. 基础信息

字段 含义 创建时 执行时 审核时 完成后
title 任务标题 必填,可编辑 只读 只读 只读
description 任务描述 可选,可编辑 只读 只读 只读
category 任务分类 必填,可编辑 只读 只读 只读
taskType 任务类型(一次性/重复) 必填,可编辑 只读 只读 只读
templateId 模板来源 选择模板时自动带入 只读 只读 只读

B. 执行对象

字段 含义 创建时 执行时 审核时 完成后
creatorId 创建人 系统生成 只读 只读 只读
familyId 所属家庭 系统生成 只读 只读 只读
executorType 执行者类型 必填,可编辑 只读 只读 只读
executorId / childId 执行者ID/孩子ID 必填,可编辑 只读 只读 只读

C. 规则信息

字段 含义 创建时 执行时 审核时 完成后
points 奖励积分 必填,可编辑 只读 只读 只读
deadline 截止时间 必填,可编辑 只读 只读 只读
earliestStart 最早开始时间 可选,可编辑 只读 只读 只读
latestEnd 最晚结束时间 可选,可编辑 只读 只读 只读
duration 预计时长 可选,可编辑 只读 只读 只读
completeTypes 完成方式 必填,可编辑 只读 只读 只读
needReview 是否需要审核 必填,可编辑 只读 只读 只读
reviewType 审核方式 需要审核时可选 只读 只读 只读
repeatType 重复规则 选择重复任务时可选 只读 只读 只读
bonusRule 超额积分规则 可选,可编辑 只读 只读 只读
pointsExpireDays 积分有效期 可选,可编辑 只读 只读 只读

D. 执行与提交信息

字段 含义 创建时 执行时 审核时 完成后
status 当前状态 系统初始化 可随流程变化 可随流程变化 归档只读
completedAt 完成时间 为空 记录提交或完成时间 可查看 只读
completedBy 实际完成人 为空 孩子提交时生成 可查看 只读
completeContent 完成说明/文本 为空 孩子填写 可查看 只读
completeMedia 完成附件(图/音/视频) 为空 孩子上传 可查看 只读
overtimeFlag 超时标记 系统计算 可刷新 可查看 只读

E. 审核信息

字段 含义 创建时 执行时 审核时 完成后
reviewerId 审核人ID 为空 只读 家长/成长规划师填写 只读
reviewTime 审核时间 为空 只读 审核通过时生成 只读
reviewResult 审核结果 为空 只读 通过/驳回/退回补充 只读
reviewComment 审核意见 为空 只读 可填写 只读

F. 系统信息

字段 含义 创建时 执行时 审核时 完成后
id 任务ID 系统生成 只读 只读 只读
createdAt 创建时间 系统生成 只读 只读 只读
updatedAt 更新时间 系统生成 系统更新 系统更新 只读
isTemplate 是否模板任务 可选 只读 只读 只读
templateId 模板关联 可选 只读 只读 只读

3.4 阶段展示、角色与字段变更规则

3.4.1 创建阶段

  • 可见角色: 家长、管理员、成长规划师
  • 可编辑角色: 任务创建人
  • 主要内容: 标题、描述、分类、执行对象、积分、截止时间、时长、完成方式、是否审核、审核方式、重复规则、提醒规则、模板来源
  • 字段规则:
    • 发布前允许修改全部业务字段
    • 发布后建议锁定积分、截止时间、执行对象、审核方式、重复规则,避免任务含义被改变

3.4.2 执行阶段

  • 可见角色: 孩子、家长、成长规划师(按家庭权限)
  • 可编辑角色: 孩子仅可填写提交内容;家长不可直接修改孩子的提交结果
  • 主要内容: 任务标题、任务说明、剩余时间、奖励积分、完成要求、附件上传入口、提醒信息
  • 字段规则:
    • 任务定义字段只读
    • 孩子可更新提交内容、补充说明、附件
    • 系统记录实际开始时间、提交时间、超时标记

3.4.3 提交阶段

  • 可见角色: 孩子、家长
  • 可编辑角色: 孩子
  • 主要内容: 提交说明、图片/视频/录音/文字、计时结果、是否完成
  • 字段规则:
    • 允许在审核前补充材料的,提交内容可再次编辑
    • 审核提交后,提交内容进入只读,避免争议

3.4.4 审核阶段

  • 可见角色: 家长、成长规划师
  • 可编辑角色: 审核人
  • 主要内容: 孩子的提交内容、完成时间、是否超时、历史修改记录、审核意见
  • 字段规则:
    • 审核人可填写审核结果与意见
    • 审核通过后,任务结果和积分流水应固定,不再覆盖原记录
    • 审核驳回时,应保留原提交内容和驳回原因

3.4.5 完成阶段

  • 可见角色: 全部相关角色
  • 可编辑角色: 原则上无;仅保留申诉或补审入口
  • 主要内容: 最终状态、实际完成时间、获得积分、审核结果、审核意见、附件证据、历史记录
  • 字段规则:
    • 任务主体只读
    • 若发生积分回滚或补审,必须保留操作流水

3.5 推荐的状态流转说明

为便于前端和接口统一理解,建议将业务流程描述为:

草稿 → 待执行 → 执行中 → 待提交 → 待审核 → 已完成
                         ↘ 已驳回 / 已过期 / 已取消
  • 草稿: 仅创建人可见,未发布
  • 待执行: 任务已发布,等待孩子开始
  • 执行中: 孩子已开始执行或已领取任务
  • 待提交: 已完成动作,等待提交结果
  • 待审核: 已提交,等待家长/成长规划师确认
  • 已完成: 审核通过或自动通过
  • 已驳回: 审核不通过,等待补充或重做
  • 已过期: 超过截止时间仍未完成
  • 已取消: 创建人主动撤销

3.6 Web端与小程序端字段展示矩阵

说明:Web端以管理与配置为主,小程序端以查看与执行为主。下表用于统一页面展示边界,避免前后端对同一字段理解不一致。

3.6.1 任务主对象字段

字段 Web端任务列表 Tasks.vue Web端模板页 TaskTemplates.vue 小程序任务列表 tasks.vue 小程序创建页 create-task.vue 创建后可改
title 显示 显示 显示 填写 否(发布后锁定)
description 不显示 编辑/显示 显示 填写 仅允许补充说明
category 显示 显示/筛选 显示 填写
points 显示 显示/编辑 显示 填写 不建议改
deadline 显示 不直接展示 显示 填写
status 显示 不展示 显示(完成/未完成) 不展示 系统变更
needReview 显示 显示/编辑 创建页可设 创建页可设
childId / childIds 显示(childId) 不展示 创建页选择孩子 创建页选择孩子
repeatType 不展示 编辑 不展示 创建页可设
completeTypes 不展示 编辑 创建页可设 创建页可设
duration 不展示 显示/编辑 创建页可设 创建页可设 仅补充说明类变更
createdAt 显示 显示 不展示 不展示 系统字段
templateId 不展示 不直接展示 模板选择后自动带入 模板选择后自动带入 系统字段

3.6.2 Web端任务管理页显示重点

  • 任务列表页: idtitlepointscategorydeadlinestatusneedReviewchildIdcreatedAt
  • 筛选条件: 任务标题、状态、家庭
  • 统计信息:总任务数、今日任务数
  • 适用场景:后台查看、检索、按家庭定位任务

3.6.3 Web端任务模板页显示重点

  • 列表字段:模板名称、分类、积分、难度、推荐年龄、时长、任务性质、是否需要审核、启用状态、创建时间
  • 编辑字段:标题、描述、分类、积分、难度、推荐年龄、预计时长、完成方式、任务性质、频率、周期次数、是否审核、审核方式、按分类审核
  • 适用场景:统一模板配置,供任务创建复用

3.6.4 小程序任务列表页显示重点

  • 孩子视图: 任务标题、积分、截止时间、完成按钮、已完成标识
  • 家长视图: 今日任务列表、添加任务入口、家长任务列表
  • 适用场景: 任务执行、快速完成、家庭日常管理

3.6.5 小程序创建页显示重点

  • 基础字段: 任务名称、任务描述、选择孩子、积分、分类、截止时间、重复设置、是否需要审核
  • 扩展字段: 当任务模板可用时,可自动带入标题、描述、分类、积分、完成方式、审核设置等
  • 适用场景: 快速创建单次或重复任务

3.6.6 字段展示规则建议

  • 管理端可见更多配置项,如模板、难度、审核细则、启用开关
  • 小程序端优先展示执行所需信息,避免把模板配置、规则细节全部暴露给孩子
  • 创建后高敏感业务字段尽量只读,包括积分、截止时间、审核方式、重复规则和执行对象

3.7 关键字段生命周期矩阵

说明:本节描述字段在各阶段的写入主体、锁定时机和只读边界。其粒度高于 3.6,适合用于约束前端表单和后端接口。

字段 创建阶段 执行阶段 提交阶段 审核阶段 完成阶段
title 创建人填写 只读 只读 只读 只读
description 创建人填写 只读 只读 只读 只读
category 创建人填写 只读 只读 只读 只读
points 创建人填写 只读 只读 只读 只读
deadline 创建人填写 只读 只读 只读 只读
childId / childIds 创建人选择 只读 只读 只读 只读
repeatType 创建人选择 只读 只读 只读 只读
completeTypes 创建人选择 只读 只读 只读 只读
needReview 创建人选择 只读 只读 只读 只读
reviewType 创建人选择 只读 只读 只读 只读
duration 创建人填写 只读 只读 只读 只读
earliestStart 创建人填写 只读 只读 只读 只读
latestEnd 创建人填写 只读 只读 只读 只读
status 系统初始化 系统更新 系统更新 系统更新 归档只读
completedAt 为空 执行开始时可为空 孩子提交时写入 审核时可查看 只读
completedBy 为空 为空 孩子提交时写入 审核时可查看 只读
completeContent 为空 孩子可填写 孩子可补充 审核人可查看 只读
completeMedia 为空 孩子可上传 孩子可补充 审核人可查看 只读
overtimeFlag 系统计算 系统更新 系统更新 审核时可查看 只读
reviewerId 为空 只读 只读 审核人写入 只读
reviewTime 为空 只读 只读 审核通过或驳回时写入 只读
reviewResult 为空 只读 只读 审核人写入 只读
reviewComment 为空 只读 只读 审核人写入 只读

3.7.1 生命周期规则

  • 创建阶段: 任务定义字段应一次性写入,默认仅允许在发布前修改。
  • 执行阶段: 任务定义应冻结,孩子仅执行任务,不得修改任务规则本身。
  • 提交阶段: 仅允许写入完成内容、附件和提交时间,不得覆盖任务定义。
  • 审核阶段: 仅允许写入审核人、审核结果和审核意见,提交内容应保留原始记录。
  • 完成阶段: 任务主体和审核记录均应只读,仅保留申诉、补审或积分回滚入口。

3.7.2 推荐的写入边界

  • 任务定义类字段:title、description、category、points、deadline、childId / childIds、repeatType、completeTypes、needReview、reviewType、duration、earliestStart、latestEnd。
  • 执行结果类字段:status、completedAt、completedBy、completeContent、completeMedia、overtimeFlag。
  • 审核结果类字段:reviewerId、reviewTime、reviewResult、reviewComment。
  • 系统字段:id、createdAt、updatedAt、templateId、isTemplate。

3.8 字段总览汇总表

说明:本表适合用于评审、排期和页面对齐。它将“字段、含义、责任归属、端侧展示、可改阶段”合并呈现。

字段 含义 责任归属 Web端 小程序端 创建后是否可改 归属阶段
title 任务名称 家长/创建人 列表显示 / 模板编辑 列表显示 / 创建页填写 创建
description 任务描述 家长/创建人,孩子可补充 模板编辑 任务详情/创建页填写 仅补充说明 创建 / 提交
category 任务分类 家长/创建人 列表显示 / 模板编辑 列表显示 / 创建页填写 创建
points 奖励积分 家长/创建人 列表显示 / 模板编辑 列表显示 / 创建页填写 不建议改 创建
deadline 截止时间 家长/创建人 列表显示 创建页填写 创建
childId / childIds 执行孩子(单选/多选) 家长/创建人 列表显示 childId 创建页选择孩子 创建
repeatType 重复规则 家长/创建人 模板编辑 创建页可设 创建
completeTypes 完成方式 家长/创建人 模板编辑 创建页可设 创建
needReview 是否审核 家长/创建人 列表显示 / 模板编辑 创建页可设 创建
reviewType 审核方式 家长/创建人 模板编辑 创建页可设 创建
duration 预计时长 家长/创建人 模板显示 / 编辑 创建页可设 仅补充说明类调整 创建
status 当前状态 系统 列表显示 任务列表显示 系统变更 执行 / 审核
completedAt 完成时间 系统 历史/详情 完成结果展示 提交 / 审核
completedBy 完成人 孩子提交 历史/详情 完成结果展示 提交
completeContent 完成说明 孩子提交,家长审核 详情/审核页 提交页填写 可在审核前补充 提交
completeMedia 完成附件 孩子提交,家长审核 详情/审核页 提交页上传 可在审核前补充 提交
overtimeFlag 超时标记 系统 列表/详情 列表/结果提示 系统变更 执行 / 提交
reviewerId 审核人 审核人 审核页 不直接展示 审核
reviewTime 审核时间 系统记录 审核页 结果展示 审核
reviewResult 审核结果 审核人 审核页 结果展示 审核
reviewComment 审核意见 审核人 审核页 结果展示 审核
templateId 模板来源 系统 模板页关联 模板自动带入 创建
isTemplate 模板标记 系统 模板页状态 不直接展示 创建
createdAt 创建时间 系统 列表显示 不展示 系统
updatedAt 更新时间 系统 列表/详情 不展示 系统
id 任务ID 系统 列表显示 不展示 系统

3.8.1 责任边界补充说明

  • 家长/创建人负责: 任务定义字段的填写与首次发布,包括标题、描述、分类、积分、截止时间、执行孩子、重复规则、完成方式、审核方式和时长。
  • 孩子负责: 提交执行结果,包括完成说明、附件和实际完成状态。
  • 审核人负责: 输出审核结果、审核意见以及是否通过的最终判断。
  • 系统负责: 状态流转、时间戳、超时标记、模板关联、创建时间和更新时间。

3.9 阶段 × 角色 × 动作矩阵

说明:本表用于统一“谁在什么阶段做什么”,避免文档仅描述字段而忽略流程责任。

阶段 家长/创建人 孩子 审核人 系统
创建阶段 创建任务、选择孩子、设置积分/截止时间/完成方式/审核方式/重复规则、选择模板、发布任务 一般不参与;如有任务建议,仅提交申请不直接生效 可作为模板审核人或指定审核人,但不直接参与任务创建 校验必填项、生成任务ID、写入创建时间、初始化状态
执行阶段 查看任务进度、必要时调整未发布任务;发布后原则上不改规则 查看任务、领取/开始任务、阅读执行要求 查看待审核任务预览,不修改任务定义 记录任务状态变化、计算超时、发送提醒
提交阶段 查看孩子提交内容、等待审核 填写完成说明、上传图片/视频/录音、提交完成结果、必要时补充材料 查看提交内容,准备审核 记录提交时间、提交内容、附件信息、提交次数
审核阶段 根据需要参与审核或查看审核结果 根据审核意见补充材料或重新提交 审核通过/驳回/退回补充,填写审核意见 记录审核结果、审核时间、审核人,触发积分变更
完成阶段 查看最终结果、积分变更和历史记录 查看完成结果、获得积分或驳回原因 查看审核归档和历史记录 归档任务、保留流水、生成统计数据

3.9.1 动作规则说明

  • 创建阶段: 仅家长/创建人可定义任务,孩子不直接参与任务生效。
  • 执行阶段: 孩子为主要执行者,家长负责监督,系统负责提醒与超时判断。
  • 提交阶段: 孩子负责提交,家长负责查看,系统负责记录提交证据。
  • 审核阶段: 审核人负责最终判断,孩子仅在需要时补充材料。
  • 完成阶段: 任务主体冻结,仅保留查看、统计和补审能力。

3.10 接口级字段清单

说明:本节按接口维度列出任务创建、任务完成与任务审核所需字段,并补充请求示例与返回语义。该清单用于前后端联调、接口文档和参数校验。

3.10.1 创建任务接口

接口POST /api/tasks

字段 是否必填 说明 责任主体
title 任务名称 家长/创建人
childId / childIds 执行孩子(单选/多选) 家长/创建人
points 奖励积分 家长/创建人
category 任务分类 家长/创建人
deadline 截止时间 家长/创建人
description 任务描述 家长/创建人
repeatType 重复规则 家长/创建人
completeTypes 完成方式 家长/创建人
needReview 是否需要审核 家长/创建人
reviewType 审核方式 家长/创建人
duration 预计时长 家长/创建人
earliestStart 最早开始时间 家长/创建人
latestEnd 最晚结束时间 家长/创建人
templateId 模板来源 系统/家长
bonusRule 超额积分规则 家长/创建人
pointsExpireDays 积分有效期 家长/创建人

校验要求

  • 必填项不得为空。
  • points 应符合积分范围约束。
  • deadline 应合法且不得早于当前时间。
  • 若选择模板,系统可自动回填模板字段。

3.10.2 完成任务接口

接口POST /api/tasks/{id}/complete

字段 是否必填 说明 责任主体
childId 完成任务的孩子 孩子
completeContent / text 完成说明 孩子
completeMedia 完成附件 孩子
photoUrl 图片地址(如适用) 孩子
audioUrl 语音地址(如适用) 孩子
videoUrl 视频地址(如适用) 孩子
completedAt 完成时间 系统/孩子

校验要求

  • childId 应与任务执行对象一致。
  • 提交内容应符合任务配置的完成方式。
  • 系统应记录提交时间、提交内容和附件信息,并据规则判断是否进入待审核。

3.10.3 审核任务接口

接口POST /api/tasks/{id}/review

字段 是否必填 说明 责任主体
reviewResult 审核结果(通过/驳回/退回补充) 审核人
reviewerId 审核人 审核人
reviewComment 审核意见 审核人
reviewTime 审核时间 系统/审核人

校验要求

  • 审核人应具备该任务的审核权限。
  • 任务状态应处于待审核阶段。
  • 系统应在审核完成后更新任务状态,并触发积分发放或回滚逻辑。

3.10.4 请求示例

创建任务示例

字段 示例值 说明
title 整理书桌 任务名称
description 把书桌上的书本、文具和杂物整理干净 任务描述
childId 10001 执行孩子
points 5 奖励积分
category 生活类 任务分类
deadline 2026-04-20T20:00:00 截止时间
repeatType none 重复规则
completeTypes ["checkin", "image"] 完成方式
needReview 1 需要审核
reviewType parent 审核方式
duration 20 预计时长

完成任务示例

字段 示例值 说明
childId 10001 完成任务的孩子
completeContent 已经整理完毕,桌面已清空 完成说明
completeMedia ["https://example.com/upload/task/20260414/desk-1.jpg"] 完成附件
completedAt 2026-04-14T19:30:00 完成时间

审核任务示例

字段 示例值 说明
reviewerId 9001 审核人
reviewResult approved 审核结果
reviewComment 整理得很整齐,符合要求 审核意见
reviewTime 2026-04-14T19:40:00 审核时间

3.10.5 返回结果说明

场景 成功返回 失败原因
创建任务 任务ID、创建时间、初始状态 必填字段缺失、截止时间非法、积分超出范围、执行对象无效
完成任务 完成结果、积分变动信息、当前状态 任务不存在、任务状态不允许完成、孩子不匹配、提交内容不符合要求
审核任务 审核结果、审核时间、最终状态、积分处理结果 审核权限不足、任务未进入待审核状态、审核结果参数非法

3.10.6 状态建议

场景 建议状态 说明
创建任务成功 待执行 / 待发布 任务已创建,等待孩子执行或等待正式发布
完成任务成功且无需审核 已完成 系统可直接结算积分并结束流程
完成任务成功且需要审核 待审核 任务进入家长/审核人确认阶段
审核通过 已完成 任务正式完成,积分结算生效
审核驳回 已驳回 任务回到补充材料或重做流程
审核退回补充 待提交 孩子补充材料后再次提交

四、API接口汇总

4.1 任务管理

方法 路径 功能 权限
POST /api/tasks 创建任务 家长/成长规划师
GET /api/tasks/today 今日任务 孩子
POST /api/tasks/{id}/complete 完成任务 孩子
POST /api/tasks/{id}/review 审核任务 家长/成长规划师
GET /api/tasks/history 历史记录 孩子/家长
GET /api/tasks/pending-review 待审核任务 家长/成长规划师
DELETE /api/tasks/{id} 删除任务 创建者

4.2 任务提醒统计

方法 路径 功能
GET /api/tasks/reminder/{childId} 需要提醒的任务
GET /api/tasks/upcoming/{childId} 即将到期任务
GET /api/tasks/overdue/{childId} 已超时任务
GET /api/tasks/history/filter/{childId} 带筛选历史
GET /api/tasks/statistics/{childId} 统计概览
GET /api/tasks/statistics/category/{childId} 分类统计
GET /api/tasks/statistics/date/{childId} 日期统计
GET /api/tasks/statistics/family/{familyId} 家庭统计

4.3 小游戏任务(任务类型为"小游戏类")

方法 路径 功能
POST /api/mini-game/list 获取小游戏列表
POST /api/mini-game/{gameCode} 获取游戏详情
POST /api/mini-game/all 获取所有小游戏(管理端)
PUT /api/mini-game/{id}/status 更新游戏状态
POST /api/mini-game/complete 完成任务获得积分

五、前端页面一览

页面 路径 功能
创建任务 /pages/tasks/create-task 任务表单
任务列表 /pages/tasks/tasks 任务查看/管理
今日任务 首页嵌入 孩子查看任务

六、待完善事项

功能 优先级 说明
任务模板管理 P1 模板库CRUD
批量操作 P2 批量删除/审核
任务时长显示 P2 前端展示
AI审核 P1 调用AI服务自动审核
消息推送 P1 微信模板消息提醒

七、数据库变更

迁移 字段 说明
迁移20 template_id 重复任务模板追踪
迁移21 is_template 模板任务标记