|
|
@@ -1,748 +1,748 @@
|
|
|
-# 任务管理模块需求分析
|
|
|
-
|
|
|
-**版本**: 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 实体字段
|
|
|
-
|
|
|
-```java
|
|
|
-// 基础字段
|
|
|
-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端任务管理页显示重点
|
|
|
-
|
|
|
-- **任务列表页**: `id`、`title`、`points`、`category`、`deadline`、`status`、`needReview`、`childId`、`createdAt`
|
|
|
-- **筛选条件**: 任务标题、状态、家庭
|
|
|
-- **统计信息**:总任务数、今日任务数
|
|
|
-- **适用场景**:后台查看、检索、按家庭定位任务
|
|
|
-
|
|
|
-#### 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 | 模板任务标记 |
|
|
|
+# 任务管理模块需求分析
|
|
|
+
|
|
|
+**版本**: 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 实体字段
|
|
|
+
|
|
|
+```java
|
|
|
+// 基础字段
|
|
|
+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端任务管理页显示重点
|
|
|
+
|
|
|
+- **任务列表页**: `id`、`title`、`points`、`category`、`deadline`、`status`、`needReview`、`childId`、`createdAt`
|
|
|
+- **筛选条件**: 任务标题、状态、家庭
|
|
|
+- **统计信息**:总任务数、今日任务数
|
|
|
+- **适用场景**:后台查看、检索、按家庭定位任务
|
|
|
+
|
|
|
+#### 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 | 模板任务标记 |
|