任务管理模块需求分析
版本: 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)
- 可选值:
学习类 / 生活类 / 运动类 / 其他
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-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 (创建者删除)
四、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} |
家庭统计 |
五、前端页面
| 页面 |
路径 |
功能 |
| 创建任务 |
/pages/tasks/create-task |
任务表单 |
| 任务列表 |
/pages/tasks/tasks |
任务查看/管理 |
| 今日任务 |
首页嵌入 |
孩子查看任务 |
六、待完善功能
| 功能 |
优先级 |
说明 |
| 任务模板管理 |
P1 |
模板库CRUD |
| 批量操作 |
P2 |
批量删除/审核 |
| 任务时长显示 |
P2 |
前端展示 |
| AI审核 |
P1 |
调用AI服务自动审核 |
| 消息推送 |
P1 |
微信模板消息提醒 |
七、数据库迁移
| 迁移 |
字段 |
说明 |
| 迁移20 |
template_id |
重复任务模板追踪 |
| 迁移21 |
is_template |
模板任务标记 |