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

chore(xaf): 入池 T30 报告类型→商品链接配置 (P1/fullstack)

spec docs/superpowers/specs/2026-10-30-report-type-product-link-design.md 已合入 cfclub
需求: 小程序上传报告页菌群/DAN 可链商品,后台可配哪种可链、链哪个商品
方案: report_type_registry+linked_product_id; POST /api/report-parser/types/links;
report-upload.vue 叠加查看商品入口; ReportTypeManagement.vue 加商品选择器
Agnes Agent 1 неделя назад
Родитель
Сommit
23c5f0964e
1 измененных файлов с 44 добавлено и 14 удалено
  1. 44 14
      tools/xaf_agent_hub/tasks_backlog.json

+ 44 - 14
tools/xaf_agent_hub/tasks_backlog.json

@@ -877,7 +877,7 @@
     "priority": "P1",
     "priority": "P1",
     "module": "cfc-frontend",
     "module": "cfc-frontend",
     "instance": "",
     "instance": "",
-    "status": "dispatched",
+    "status": "done",
     "spec": "docs/superpowers/specs/2026-09-09-team-hierarchy-design.md",
     "spec": "docs/superpowers/specs/2026-09-09-team-hierarchy-design.md",
     "entity": "TreeNode.vue",
     "entity": "TreeNode.vue",
     "gap_kinds": [
     "gap_kinds": [
@@ -889,7 +889,8 @@
     "session_id": "ses_e7356bed8ffeBfKFRYMrSRuwFX",
     "session_id": "ses_e7356bed8ffeBfKFRYMrSRuwFX",
     "dispatched_at": "2026-10-30 19:54:25",
     "dispatched_at": "2026-10-30 19:54:25",
     "dispatched_to": "lan-248",
     "dispatched_to": "lan-248",
-    "model": "axonhub/deepseek"
+    "model": "axonhub/deepseek",
+    "done_at": "2026-10-30 21:57:34"
   },
   },
   {
   {
     "id": "GAP-2026-09-09-team-hierarch",
     "id": "GAP-2026-09-09-team-hierarch",
@@ -958,7 +959,7 @@
     "priority": "P1",
     "priority": "P1",
     "module": "cfc-backend",
     "module": "cfc-backend",
     "instance": "",
     "instance": "",
-    "status": "dispatched",
+    "status": "done",
     "spec": "docs/superpowers/specs/2026-09-02-product-gift-selection-design.md",
     "spec": "docs/superpowers/specs/2026-09-02-product-gift-selection-design.md",
     "entity": "GiftItemVO.java",
     "entity": "GiftItemVO.java",
     "gap_kinds": [
     "gap_kinds": [
@@ -970,7 +971,8 @@
     "session_id": "ses_e733b56b3ffeE70oldy3cLhRRe",
     "session_id": "ses_e733b56b3ffeE70oldy3cLhRRe",
     "dispatched_at": "2026-10-30 20:24:20",
     "dispatched_at": "2026-10-30 20:24:20",
     "dispatched_to": "pub-iwintrue",
     "dispatched_to": "pub-iwintrue",
-    "model": "etotem/deepseek"
+    "model": "etotem/deepseek",
+    "done_at": "2026-10-30 21:57:34"
   },
   },
   {
   {
     "id": "GAP-2026-09-01-cf-commission",
     "id": "GAP-2026-09-01-cf-commission",
@@ -978,7 +980,7 @@
     "priority": "P1",
     "priority": "P1",
     "module": "cfc-backend",
     "module": "cfc-backend",
     "instance": "",
     "instance": "",
-    "status": "dispatched",
+    "status": "done",
     "spec": "docs/superpowers/plans/2026-09-01-cf-commission-redesign.md",
     "spec": "docs/superpowers/plans/2026-09-01-cf-commission-redesign.md",
     "entity": "cfc-backend/src/main/java/com/etotem/cfc/controller/CfCouponController.java",
     "entity": "cfc-backend/src/main/java/com/etotem/cfc/controller/CfCouponController.java",
     "gap_kinds": [
     "gap_kinds": [
@@ -990,7 +992,8 @@
     "session_id": "ses_e733b7545ffeRxN2rNiRJDxz3C",
     "session_id": "ses_e733b7545ffeRxN2rNiRJDxz3C",
     "dispatched_at": "2026-10-30 20:24:12",
     "dispatched_at": "2026-10-30 20:24:12",
     "dispatched_to": "lan-248",
     "dispatched_to": "lan-248",
-    "model": "axonhub/deepseek"
+    "model": "axonhub/deepseek",
+    "done_at": "2026-10-30 21:57:34"
   },
   },
   {
   {
     "id": "GAP-verify-activity-detail-r",
     "id": "GAP-verify-activity-detail-r",
@@ -998,7 +1001,7 @@
     "priority": "P2",
     "priority": "P2",
     "module": "cfc-backend",
     "module": "cfc-backend",
     "instance": "",
     "instance": "",
-    "status": "pending",
+    "status": "dispatched",
     "spec": "docs/superpowers/plans/verify/verify-activity-detail-redesign.md",
     "spec": "docs/superpowers/plans/verify/verify-activity-detail-redesign.md",
     "entity": "- 需求2(海报模板):管理端模板 CRUD、小程序端选择/预览、三种绘制引擎、渲染兜底均健壮 → 放行;但\"元素位置与样式可配置\"未实现,属需求范围缩水,作为遗留项另行评估,**不阻塞本次放行**。",
     "entity": "- 需求2(海报模板):管理端模板 CRUD、小程序端选择/预览、三种绘制引擎、渲染兜底均健壮 → 放行;但\"元素位置与样式可配置\"未实现,属需求范围缩水,作为遗留项另行评估,**不阻塞本次放行**。",
     "gap_kinds": [
     "gap_kinds": [
@@ -1006,7 +1009,11 @@
     ],
     ],
     "prompt": "请核对需求/设计文档 docs/superpowers/plans/verify/verify-activity-detail-redesign.md 与实际实现的差距,并完成以下差距项:\n\n文档主题:verify activity detail redesign\n所属模块:cfc-backend\n\n检测到的差距:\n  - [标记为「设计完成但未实现」的内容] - 需求2(海报模板):管理端模板 CRUD、小程序端选择/预览、三种绘制引擎、渲染兜底均健壮 → 放行;但\"元素位置与样式可配置\"未实现,属需求范围缩水,作为遗留项另行评估,**\n\n任务来源:sync_gap_tasks(巡检发现空闲会话且任务池为空时自动生成)。\n要求:先阅读该文档对应章节,确认差距真实存在(若已实现请如实说明并标记为无需改动),然后按文档口径实现/补齐,完成后自行提交并推送。",
     "prompt": "请核对需求/设计文档 docs/superpowers/plans/verify/verify-activity-detail-redesign.md 与实际实现的差距,并完成以下差距项:\n\n文档主题:verify activity detail redesign\n所属模块:cfc-backend\n\n检测到的差距:\n  - [标记为「设计完成但未实现」的内容] - 需求2(海报模板):管理端模板 CRUD、小程序端选择/预览、三种绘制引擎、渲染兜底均健壮 → 放行;但\"元素位置与样式可配置\"未实现,属需求范围缩水,作为遗留项另行评估,**\n\n任务来源:sync_gap_tasks(巡检发现空闲会话且任务池为空时自动生成)。\n要求:先阅读该文档对应章节,确认差距真实存在(若已实现请如实说明并标记为无需改动),然后按文档口径实现/补齐,完成后自行提交并推送。",
     "generated_from": "sync_gap_tasks",
     "generated_from": "sync_gap_tasks",
-    "generated_at": "2026-10-30 20:24:02"
+    "generated_at": "2026-10-30 20:24:02",
+    "session_id": "ses_e72e582fdffeu1I28Mbb9oNOeX",
+    "dispatched_at": "2026-10-30 21:58:05",
+    "dispatched_to": "pub-iwintrue",
+    "model": "etotem/deepseek"
   },
   },
   {
   {
     "id": "SOP-MEMBER",
     "id": "SOP-MEMBER",
@@ -1014,9 +1021,13 @@
     "priority": "P0",
     "priority": "P0",
     "module": "cfc-backend",
     "module": "cfc-backend",
     "instance": "",
     "instance": "",
-    "status": "pending",
+    "status": "dispatched",
     "spec": "docs/superpowers/specs/2026-10-30-sop-gap-fix.md",
     "spec": "docs/superpowers/specs/2026-10-30-sop-gap-fix.md",
-    "prompt": "执行 docs/superpowers/specs/2026-10-30-sop-gap-fix.md 的 SOP-MEMBER:①membership_levels 种子 FREE=0/BASIC=2/FAMILY=4/PREMIUM=10;②FAMILY 定价改 19800/59400/198000 分并同步 sys_config member_fee_family/member_fee_family_yearly/member_upgrade_threshold=198000,道具 member1980 与下单金额自洽;③FamilyMemberService.addMember 加 max_children 强校验(count>=max 拒绝新增,存量超限不删除)。完成后 git commit+push 并回报。"
+    "prompt": "执行 docs/superpowers/specs/2026-10-30-sop-gap-fix.md 的 SOP-MEMBER:①membership_levels 种子 FREE=0/BASIC=2/FAMILY=4/PREMIUM=10;②FAMILY 定价改 19800/59400/198000 分并同步 sys_config member_fee_family/member_fee_family_yearly/member_upgrade_threshold=198000,道具 member1980 与下单金额自洽;③FamilyMemberService.addMember 加 max_children 强校验(count>=max 拒绝新增,存量超限不删除)。完成后 git commit+push 并回报。",
+    "session_id": "ses_e72e5c3e4ffeODUTR8tT588W1y",
+    "dispatched_at": "2026-10-30 21:57:49",
+    "dispatched_to": "lan-248",
+    "model": "axonhub/deepseek"
   },
   },
   {
   {
     "id": "SOP-HIDE",
     "id": "SOP-HIDE",
@@ -1024,9 +1035,13 @@
     "priority": "P0",
     "priority": "P0",
     "module": "cfc-backend+cfc-frontend",
     "module": "cfc-backend+cfc-frontend",
     "instance": "",
     "instance": "",
-    "status": "pending",
+    "status": "dispatched",
     "spec": "docs/superpowers/specs/2026-10-30-sop-gap-fix.md",
     "spec": "docs/superpowers/specs/2026-10-30-sop-gap-fix.md",
-    "prompt": "执行 docs/superpowers/specs/2026-10-30-sop-gap-fix.md 的 SOP-HIDE:FREE 用户五维自检隐藏富/行/心分项+familyData+趋势+AI解读,深度报告隐藏 microbiome/disease/ai_analysis,响应加 masked:true 标志,前端显示升级引导。BASIC+ 全量。完成后 git commit+push 并回报。"
+    "prompt": "执行 docs/superpowers/specs/2026-10-30-sop-gap-fix.md 的 SOP-HIDE:FREE 用户五维自检隐藏富/行/心分项+familyData+趋势+AI解读,深度报告隐藏 microbiome/disease/ai_analysis,响应加 masked:true 标志,前端显示升级引导。BASIC+ 全量。完成后 git commit+push 并回报。",
+    "session_id": "ses_e72e5e156ffeut0MQZsCmI9DMd",
+    "dispatched_at": "2026-10-30 21:57:41",
+    "dispatched_to": "lan-248",
+    "model": "axonhub/deepseek"
   },
   },
   {
   {
     "id": "SOP-ATTRIB",
     "id": "SOP-ATTRIB",
@@ -1034,8 +1049,23 @@
     "priority": "P1",
     "priority": "P1",
     "module": "cfc-backend+cfc-frontend",
     "module": "cfc-backend+cfc-frontend",
     "instance": "",
     "instance": "",
-    "status": "pending",
+    "status": "dispatched",
     "spec": "docs/superpowers/specs/2026-10-30-sop-gap-fix.md",
     "spec": "docs/superpowers/specs/2026-10-30-sop-gap-fix.md",
-    "prompt": "执行 docs/superpowers/specs/2026-10-30-sop-gap-fix.md 的 SOP-ATTRIB:①application.yml app.attribution.enabled false→true;②前端 utils/api.js 新增 getAttributionConfirmQuestions;③survey-questionnaire.vue 识别 dimension===family_attribution 走 B2 动态下发并按 ConfirmQuestionVO 渲染(date/single/text/multi+条件题)。完成后 git commit+push 并回报。"
+    "prompt": "执行 docs/superpowers/specs/2026-10-30-sop-gap-fix.md 的 SOP-ATTRIB:①application.yml app.attribution.enabled false→true;②前端 utils/api.js 新增 getAttributionConfirmQuestions;③survey-questionnaire.vue 识别 dimension===family_attribution 走 B2 动态下发并按 ConfirmQuestionVO 渲染(date/single/text/multi+条件题)。完成后 git commit+push 并回报。",
+    "session_id": "ses_e72e5a1afffeJJWt0FaAUv7nwx",
+    "dispatched_at": "2026-10-30 21:57:58",
+    "dispatched_to": "lan-189",
+    "model": "opencode/deepseek-v4.1-flash-free"
+  },
+  {
+    "id": "T30",
+    "title": "报告类型→商城商品链接配置(菌群/DAN 可链商品,后台可配)",
+    "priority": "P1",
+    "module": "fullstack",
+    "instance": "",
+    "status": "pending",
+    "spec": "docs/superpowers/specs/2026-10-30-report-type-product-link-design.md",
+    "prompt": "规格 2026-10-30-report-type-product-link-design.md:小程序上传报告页支持的报告类型中,菌群检测(DAN)报告支持直接链到商城商品,且哪种报告可链接、链接到哪个商品可在后台配置。方案:①数据库 report_type_registry 加 linked_product_id BIGINT NULL 列(DatabaseInitializer ensureColumn 迁移 + schema.sql 同步,幂等);②后端 ReportTypeRegistry 实体 + 字段;ReportParserAdminController /types/save 支持保存 linkedProductId,/types 返回含该字段;新增 POST /api/report-parser/types/links(小程序公开)返回 is_active=1 AND linked_product_id IS NOT NULL 的记录,含 productName;③小程序 cfc-frontend/pages/health/report-upload.vue 叠加「查看商品」入口(gut_flora/dan_a2 等配置了链接的项右侧箭头+商品名,点击跳 /pages/discover-detail/product-detail/product-detail?id=),未配置链接项保持纯展示;cfc-frontend/utils/api.js 加 getReportTypeLinks();④后台 cfc-web/src/views/admin/ReportTypeManagement.vue 编辑对话框加关联商品下拉(来自 /api/admin/product/list 等),列表加关联商品列,保存传 linkedProductId。验收:①小程序上传页菌群/DAN 显示查看商品并跳转正确详情页;②后台配置/清除链接后小程序刷新生效;③未配置项不显示入口;④mvn clean compile 与两前端 npm build 通过;⑤迁移幂等、老数据 NULL 正常。铁律:后端统一 @PostMapping;小程序禁用 ?. / CSS Grid / :key 表达式。",
+    "note": "spec 已合入 cfclub commit 9a8299c92"
   }
   }
 ]
 ]