Explorar el Código

chore: auto bump version and changelog [skip ci]

iwt hace 2 semanas
padre
commit
b8803f433b

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-66e2701257444b09d261e1c6c7c6a2679f4f072c
+60e52660248f2dc420b1af943272939045b6862e

+ 1 - 1
cfc-web/package.json

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

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

@@ -4,6 +4,49 @@
 
 
 ---
 ---
 
 
+## v1.0.1814 (2026-10-28)
+
+### 文档
+- 设计稿入库 + 计划文档补齐裁定
+
+### 其他
+- - 补记主理人裁定:§4.3 禁用态淡出已移除+pointer-events;§10 富/智按周口径落地
+- 
+- 2. 新增「内容吸引力 · 停留时段热力」:复用已预取的 articleReads/productViews,按 0-23 点聚合近30天真实停留时长,返回 dwellByHour/dwellByHourTotal/dwellByHourPeak。
+- 3. Dashboard 渲染 24 小时热力图(颜色深度=相对峰值停留),含时段轴、图例、合计,帮助运营把握内容推送黄金时段;商品卡片副文案同步改「按累计停留排序」。
+- Co-Authored-By: WorkBuddy <workbuddy@tencent.com>
+- 
+- 2. 统计口径修正:文章热度排名由 view_count(每次打开+1的虚高指标)改为 article_reading_records 真实阅读记录聚合;商品销量本就来自真实 product_orders,统一加"真实"标识。
+- 3. 商品停留埋点:新增 product_view_records 表 + POST /api/stats/product-view 接口 + 小程序 dwellTracker 埋点(onLoad/onUnload 上报浏览时长),补齐此前缺失的商品停留时长数据。
+- Co-Authored-By: WorkBuddy <workbuddy@tencent.com>
+- 
+- T29-B2: 报告代传功能修复·第二批——权限越权与安全策略收敛 (B2-1~B2-6)
+-      否则 code=403);删除 ensureUserFamily 兜底建家庭,无家庭改为返回空列表
+- B2-2 proxyParsePreview 增加 familyId 绑定校验:非平台角色且 familyId 不在有效家庭集内 → 拒绝,
+-      校验发生在建草稿/写文件之前,越权不产生副作用
+- B2-3 auditConfirm 增加草稿归属校验(非 admin 仅能确认自己创建的草稿,admin 不受限)+
+-      subjectId 归属家庭一致性校验(跨家庭篡改 → 明确错误,不再静默跨家庭绑定)
+- B2-4 FamilyAccessInterceptor 收紧:有效家庭集为空且请求携带 familyId → 403(此前直接放行);
+-      平台角色(admin/operator/finance)直通,与 /api/admin 语义一致
+-      getEffectiveFamilyIds 口径补全:并入 family_members 反查 + guide_families(status=binding) 绑定,
+-      使「空集」严格等价于「无任何访问渠道」,避免误伤成长规划师等合法用户
+- B2-5 proxy-parse/proxy-confirm 移入 JwtInterceptor.LOGIN_REQUIRED_PATHS:无 token 直接 401
+-      (此前降级为匿名放行到 controller,仅返回业务 500)
+- B2-6 proxyParsePreview 补齐三层校验编排注释:角色校验 / familyId 绑定 / 拦截器兜底及各自返回码
+- 测试:新增/更新 6 个测试类共 37 项全部通过(拦截器 11、有效家庭集 5、成员列表 4、
+- 代传绑定 6、审核确认 8、登录必需 3);另有 5 项失败 + 2 项错误经基线 worktree 复跑确认为
+- 改动前既已存在(DanReportParseServiceTest / FoodRecommendServiceTest / ServiceRoleApproveTest)。
+- 不改前端、不新增 DB 迁移、不改 schema。
+- 
+
+### Bug 修复
+- 修复 StatsController 4 处 lambda 捕获非 effectively-final 局部变量的编译错误(subList 重赋值)——原 ee71f7716 导致 origin/cfclub 编译不过
+
+### 新功能
+- 商品停留改按累计排序 + 新增停留时段热力图
+- 后台Dashboard重设计 + 真实行为数据口径
+
+
 ## v1.0.1813 (2026-10-28)
 ## v1.0.1813 (2026-10-28)
 
 
 ### 文档
 ### 文档

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

@@ -1,6 +1,6 @@
 # 更新日志
 # 更新日志
 
 
-> 当前版本: v1.0.1813
+> 当前版本: v1.0.1814
 
 
 ## 历史版本
 ## 历史版本
 
 
@@ -8,6 +8,49 @@
 
 
 ---
 ---
 
 
+## v1.0.1814 (2026-10-28)
+
+### 文档
+- 设计稿入库 + 计划文档补齐裁定
+
+### 其他
+- - 补记主理人裁定:§4.3 禁用态淡出已移除+pointer-events;§10 富/智按周口径落地
+- 
+- 2. 新增「内容吸引力 · 停留时段热力」:复用已预取的 articleReads/productViews,按 0-23 点聚合近30天真实停留时长,返回 dwellByHour/dwellByHourTotal/dwellByHourPeak。
+- 3. Dashboard 渲染 24 小时热力图(颜色深度=相对峰值停留),含时段轴、图例、合计,帮助运营把握内容推送黄金时段;商品卡片副文案同步改「按累计停留排序」。
+- Co-Authored-By: WorkBuddy <workbuddy@tencent.com>
+- 
+- 2. 统计口径修正:文章热度排名由 view_count(每次打开+1的虚高指标)改为 article_reading_records 真实阅读记录聚合;商品销量本就来自真实 product_orders,统一加"真实"标识。
+- 3. 商品停留埋点:新增 product_view_records 表 + POST /api/stats/product-view 接口 + 小程序 dwellTracker 埋点(onLoad/onUnload 上报浏览时长),补齐此前缺失的商品停留时长数据。
+- Co-Authored-By: WorkBuddy <workbuddy@tencent.com>
+- 
+- T29-B2: 报告代传功能修复·第二批——权限越权与安全策略收敛 (B2-1~B2-6)
+-      否则 code=403);删除 ensureUserFamily 兜底建家庭,无家庭改为返回空列表
+- B2-2 proxyParsePreview 增加 familyId 绑定校验:非平台角色且 familyId 不在有效家庭集内 → 拒绝,
+-      校验发生在建草稿/写文件之前,越权不产生副作用
+- B2-3 auditConfirm 增加草稿归属校验(非 admin 仅能确认自己创建的草稿,admin 不受限)+
+-      subjectId 归属家庭一致性校验(跨家庭篡改 → 明确错误,不再静默跨家庭绑定)
+- B2-4 FamilyAccessInterceptor 收紧:有效家庭集为空且请求携带 familyId → 403(此前直接放行);
+-      平台角色(admin/operator/finance)直通,与 /api/admin 语义一致
+-      getEffectiveFamilyIds 口径补全:并入 family_members 反查 + guide_families(status=binding) 绑定,
+-      使「空集」严格等价于「无任何访问渠道」,避免误伤成长规划师等合法用户
+- B2-5 proxy-parse/proxy-confirm 移入 JwtInterceptor.LOGIN_REQUIRED_PATHS:无 token 直接 401
+-      (此前降级为匿名放行到 controller,仅返回业务 500)
+- B2-6 proxyParsePreview 补齐三层校验编排注释:角色校验 / familyId 绑定 / 拦截器兜底及各自返回码
+- 测试:新增/更新 6 个测试类共 37 项全部通过(拦截器 11、有效家庭集 5、成员列表 4、
+- 代传绑定 6、审核确认 8、登录必需 3);另有 5 项失败 + 2 项错误经基线 worktree 复跑确认为
+- 改动前既已存在(DanReportParseServiceTest / FoodRecommendServiceTest / ServiceRoleApproveTest)。
+- 不改前端、不新增 DB 迁移、不改 schema。
+- 
+
+### Bug 修复
+- 修复 StatsController 4 处 lambda 捕获非 effectively-final 局部变量的编译错误(subList 重赋值)——原 ee71f7716 导致 origin/cfclub 编译不过
+
+### 新功能
+- 商品停留改按累计排序 + 新增停留时段热力图
+- 后台Dashboard重设计 + 真实行为数据口径
+
+
 ## v1.0.1813 (2026-10-28)
 ## v1.0.1813 (2026-10-28)
 
 
 ### 文档
 ### 文档