Bläddra i källkod

docs: API_REFERENCE.md 三个打卡接口补 taskId 参数说明

iwt 1 vecka sedan
förälder
incheckning
5ef327d61b
1 ändrade filer med 46 tillägg och 2 borttagningar
  1. 46 2
      docs/superpowers/api/API_REFERENCE.md

+ 46 - 2
docs/superpowers/api/API_REFERENCE.md

@@ -509,8 +509,16 @@ find cfc-backend/src/main/java -name "*XxxService.java" -o -name "*XxxController
 
 | actionType | 行为 | 返回字段 |
 |-----------|------|---------|
+| `minigame` | 跳转小游戏页 | — |
+| `focus` | 跳转专注计时器页 | — |
+| `survey` | 跳转问卷填写页 | — |
+| `article` | 跳转文章中心页 | — |
+| `activity` | 跳转活动列表页 | — |
 | `cart` | 自动加购,返回加购结果 | `execution.extra` 含 `cartAdded=true`、`productId`、`quantity` |
 | `order` | 先加购,再创建 pending 订单 | `execution.extra` 含 `orderId`、`orderNo`(成功时)或 `orderFailed=true`、`orderError`(失败时) |
+| `diet` | 跳转饮食打卡页(`/pages/growth/diet-checkin?taskId={id}`) | — |
+| `sleep` | 跳转睡眠打卡页(`/pages/growth/sleep-checkin?taskId={id}`) | — |
+| `exercise` | 跳转运动打卡页(`/pages/growth/exercise-checkin?taskId={id}`) | — |
 
 **下单失败常见原因:** 缺默认收货地址、商品已下架、库存不足、配送方式校验失败。失败时加购结果保留,任务状态正常置 `in_progress`,前端可引导用户去购物车/结算页手动完成。
 
@@ -584,9 +592,45 @@ find cfc-backend/src/main/java -name "*XxxService.java" -o -name "*XxxController
 | `POST /api/mind/emotion/analyze-url` | 照片情绪识别(URL方式,走 LangGraph DeepFace) |
 | `POST /api/health-status/get` | 健康现状档案获取 |
 | `POST /api/health-status/save` | 健康现状档案保存 |
-| `POST /api/health/exercise/list` | 运动打卡列表 |
-| `POST /api/health/exercise/create` | 创建运动打卡(支持 stepCount 微信步数) |
 | `POST /api/health/exercise/sync-wechat-steps` | 同步微信运动步数(传 encryptedData+iv,返回当日步数与近30天数据) |
+| `POST /api/health/meal/list` | 饮食打卡列表 |
+| `POST /api/health/meal/create` | 创建饮食打卡(支持 taskId 任务联动 + isBackfill 补打) |
+| `POST /api/health/meal/daily` | 获取某天的饮食记录 |
+| `POST /api/health/meal/weekly` | 获取某周食材频次与营养汇总 |
+| `POST /api/health/meal/alerts` | 获取食材摄入预警 |
+| `POST /api/health/sleep/list` | 睡眠打卡列表 |
+| `POST /api/health/sleep/create` | 创建睡眠打卡(支持 taskId 任务联动) |
+| `POST /api/health/exercise/list` | 运动打卡列表 |
+| `POST /api/health/exercise/create` | 创建运动打卡(支持 taskId 任务联动 + stepCount 微信步数) |
+
+#### 健康打卡任务联动(`taskId` 参数)
+
+饮食/睡眠/运动打卡接口均支持可选 `taskId` 参数(Long),用于将打卡记录与任务系统联动。
+
+**请求体新增参数:**
+
+| 参数 | 类型 | 必填 | 说明 |
+|------|------|------|------|
+| `taskId` | Long | ❌ | 关联任务ID;为 null 时仅存打卡记录,不触发任务逻辑 |
+
+**联动逻辑:**
+
+| 场景 | 行为 |
+|------|------|
+| `taskId` 指向 `tasks.is_daily_progress=1` 的任务 | 调用 `TaskService.updateProgress(userId, taskKey, 1)` 累加进度,达标后自动 completed + 发放积分/能量 |
+| `taskId` 指向普通任务(`is_daily_progress=0`) | 调用 `TaskService.completeTask(taskId, memberId, ...)` 直接完成 |
+| `taskId` 为 null | 仅存打卡记录 + 发放 5CF 打卡积分,不触发任务逻辑 |
+| 补打(`isBackfill=1`)| **忽略 taskId**,不触发任何任务逻辑 |
+
+**taskKey 约定(每日进度型任务):**
+
+| actionType | taskKey | 匹配方式 |
+|-----------|---------|---------|
+| `diet` | `"DIET"` | title 精确匹配 OR title 以 `"[DIET]"` 前缀匹配 |
+| `sleep` | `"SLEEP"` | 同上 |
+| `exercise` | `"EXERCISE"` | 同上 |
+
+前端跳转路径:`/pages/growth/{type}-checkin?taskId={id}`(由 `tasks.vue` 的 `navigateByAction()` 自动构造)
 
 ### 4.8 商品与订单(`/api/product/*`)