Просмотр исходного кода

chore: auto bump version and changelog [skip ci]

iwt 1 неделя назад
Родитель
Сommit
ba64c63a5c

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-f66cedad691bb59195d27a4286c2e69260abdee2
+90fd3694c8342a42fc82034ea6d3106b83d12229

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1606",
+  "version": "1.0.1607",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.1606",
+      "version": "1.0.1607",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1607",
+  "version": "1.0.1608",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 21 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,27 @@
 
 ---
 
+## v1.0.1608 (2026-10-14)
+
+### Bug 修复
+- 解析完成后清理 OSS 下载中转缓存(.jdcloud-cache 用后即删)
+- 采集链路三重加固——防止非菌群报告/类型不匹配报告静默入库
+
+### 其他
+- - 仅删除 .jdcloud-cache 缓存文件(getFilePath 下载产物),本地磁盘直存原文件不动
+- - 解析成功/失败/异常所有路径均清理;重试时自动重新下载
+- 
+- 采集校验 matched 1/23 pass=false 仍照常入库,前端显示"内容未采集完整"。
+- 加固(ReportCollectService.collect 健康管道):
+- ① 采集指标校验 pass=false → 阻止自动入库,标记失败由管理端人工处理/重传
+- ② gut_flora 家族类型解析结果必须含菌群实质数据(gutFlora/indicators 非空),
+-    只解析出 overview 的报告判定为内容不符
+- ③ 指纹识别类型与用户所选报告类型不一致(非 DAN)→ 阻止入库并明确提示
+- runCollectValidation 三个重载改为返回 boolean(跳过校验返回 true)。
+- DAN 管道分流不受影响(指纹命中 dan_* 仍走 collectDanReport)。
+- 
+
+
 ## v1.0.1607 (2026-10-13)
 
 ### 重构

+ 22 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1607
+> 当前版本: v1.0.1608
 
 ## 历史版本
 
@@ -8,6 +8,27 @@
 
 ---
 
+## v1.0.1608 (2026-10-14)
+
+### Bug 修复
+- 解析完成后清理 OSS 下载中转缓存(.jdcloud-cache 用后即删)
+- 采集链路三重加固——防止非菌群报告/类型不匹配报告静默入库
+
+### 其他
+- - 仅删除 .jdcloud-cache 缓存文件(getFilePath 下载产物),本地磁盘直存原文件不动
+- - 解析成功/失败/异常所有路径均清理;重试时自动重新下载
+- 
+- 采集校验 matched 1/23 pass=false 仍照常入库,前端显示"内容未采集完整"。
+- 加固(ReportCollectService.collect 健康管道):
+- ① 采集指标校验 pass=false → 阻止自动入库,标记失败由管理端人工处理/重传
+- ② gut_flora 家族类型解析结果必须含菌群实质数据(gutFlora/indicators 非空),
+-    只解析出 overview 的报告判定为内容不符
+- ③ 指纹识别类型与用户所选报告类型不一致(非 DAN)→ 阻止入库并明确提示
+- runCollectValidation 三个重载改为返回 boolean(跳过校验返回 true)。
+- DAN 管道分流不受影响(指纹命中 dan_* 仍走 collectDanReport)。
+- 
+
+
 ## v1.0.1607 (2026-10-13)
 
 ### 重构

+ 17 - 0
docs/superpowers/specs/2026-10-13-health-checkin-task-linkage-design.md

@@ -274,6 +274,23 @@ HealthMealController.create(record)
 返回任务列表 → 刷新 → 进度 1/1,任务自动完成 ✅
 ```
 
+## 完成逻辑分支矩阵
+
+判定入口统一在打卡 Controller 的 `create()` 挂钩中,依据两个条件分流:**①是否带 `taskId`;②(若带)反查 `tasks` 表得到的任务真实类型**。
+
+| taskId 参数 | 反查任务类型 | isBackfill | 调用方法 | 效果 |
+|:---:|:---|:---:|:---|:---|
+| 无 | —(不反查) | 0 | `updateProgress(userId, taskKey, 1)` | 累计今日对应 `taskKey` 的每日任务进度,无匹配任务则 `log.warn` 跳过 |
+| 无 | —(不反查) | 1 | 无 | 补打不回写,仅入库 |
+| 有 | `isDailyProgress=1`(每日进度型) | 0 | `updateProgress(userId, taskKey, 1)` | 累计进度,`progress >= target_value` 时自动完成并发奖 |
+| 有 | `isDailyProgress=1`(每日进度型) | 1 | 无 | 补打不回写 |
+| 有 | 一次性任务(`actionType` ∈ {diet,sleep,exercise} 且非每日进度型) | 0 | `completeTask(taskId, memberId, photoUrl, content, "text")` | 直接完成任务,发任务积分 |
+| 有 | 一次性任务 | 1 | 无 | 补打不回写 |
+| 有 | 任务不存在 / px已删除 | 0 | 无 | 打卡正常入库,仅 `log.warn` |
+| 有 | 已由其他打卡完成(status=completed) | 0 | `completeTask` 内部校验拒绝 | 打卡正常,任务状态不变,前端仅提示"打卡成功" |
+
+**关键约定**:分流以**任务真实类型**为准,而非依赖前端是否正确携带 `taskId`;错误处理统一 `try-catch`,不阻断打卡主流程与积分发放。
+
 ## 边界情况与错误处理
 
 | 场景 | 行为 |