Files
Neo-ZQYY/docs/audit/changes/2026-04-20__historical-batch-pre-audit.md
Neo 80bda9b991 chore(audit): 2026-04-20 历史批次预审 + 文档同步 + .gitignore 修正
- 新增 docs/audit/changes/2026-04-20__historical-batch-pre-audit.md
  157 文件分批盘点审计(7 条主线 + 10 项高/中风险 + 2 份迁移 SQL DDL 清单)
- 补追 docs/audit/changes/2026-04-15__meituan-settle-core-sync.md
  原审计产物因 .gitignore 屏蔽长期未入仓,本次一并追回
- 刷新 docs/audit/audit_dashboard.md(33 条审计记录)
- .gitignore 白名单放行 docs/audit/changes/*.md 与 audit_dashboard.md
  同时屏蔽 changes/changes/ 嵌套误产物目录
- 新增 docs/specs/audit-gap-recovery/tasks.md
  扫描嵌套目录发现 96 份 D 类孤本(从未入过 git history),
  生成独立 PRD 供单开任务清理与补追
- 文档同步(高风险项):
  - apps/backend/docs/API-REFERENCE.md (+69)
  - apps/miniprogram/README.md (+50)
  - apps/etl/connectors/feiqiu/docs/architecture/data_flow.md (+52/-2)
  - apps/etl/connectors/feiqiu/docs/architecture/system_overview.md (+5/-3)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 06:32:58 +08:00

24 KiB
Raw Blame History

变更审计记录2026-04-20 历史累积批次预审

字段
日期 2026-04-20 06:01:35
分类 历史批次预审(方案 C详细
触发时间窗口 2026-04-15 ~ 2026-04-20最后一次 commit 后 5 天累积)
覆盖文件数 156
高风险文件数 54
新迁移 SQL 2
参与 spec 7+

操作摘要

本次审计是"历史累积盘点"——156 个文件来自 HEAD (79d3c2e 开发机迁移) 之后 5 天的多次会话改动,用户本次会话无新改动。由于改动跨会话累积,缺失单次 /audit 的即时上下文,本次通过 git diff + 交叉比对 docs/audit/changes/ 历史审计与 docs/specs/ 现行规范还原语义上下文。

改动跨 6 个模块backend / etl feiqiu / miniprogram / db / docs / 工具脚本)和 7 条主线开发机迁移路径基线搬迁、rns1-customer-coach-api + 04-miniapp-core-business 联合实施、P19 指数回测框架Phase 1+2、Core 维度层启用、客户项目标签稳定性优化、美团结算导入收尾、运维工具与分析扩展。

2 个迁移 SQL 均已在开发库执行schema 基线与任务代码一致。~95% 路径同步改动(开发机迁移衍生)为低风险;实质性业务变更集中在 16 个 backend + 22 个 miniprogram + 13 个 ETL 文件,全部可追溯到既有 spec。7 项高风险待验证项已在"风险与回滚"章节单独列出。

主线归类

主线 1开发机迁移路径同步~95% 改动量来源)

  • 根目录迁移 C:\NeoZQYYC:\Project\NeoZQYY
  • 涵盖:.env / .env.template / .mcp.json / apps/backend/.env.local / apps/etl/connectors/feiqiu/.env / scripts/ops/*.py / tools/db/*.py / tests/test_property_*.py / docs/specs/**/*.md / docs/deployment/*.md / docs/migrate/*.md / docs/mcp/*.md / docs/ops/*.md / docs/README.md / _DEL/**/*.md
  • 风险:无(纯路径同步)

主线 2rns1-customer-coach-api + 04-miniapp-core-business spec 实施

  • 后端 16 文件:配置 4 / 路由 schema 5 / 服务 9
  • 小程序 22 文件:配置 5 / i18n typings 2 / 服务 1 / 工具组件 3 / 页面 11
  • 关键改动
    • coach-service-records 新页面(管理者视角业绩明细,需 view_board_coach 权限)
    • performance-records 拆分:去除 coachId 分支,恢复助教自查单一职责
    • fdw_queries 重构:get_service_records_summary() 直接 SQL 聚合、get_last_visit_days() 改用 consumption_summaryget_consumption_records() 按结算单粒度聚合
    • build_performance_summary() 公开化,coach-detailtask-list 数据源统一
    • isScattered 散客标记跨端贯通
    • task_generator 回访宽限 48h → 72h新增 UPSERT 替代策略和 Step 5 清理保底任务
    • recall_detector settle_type=3 限制 + 门店级 resolved 召回解除

主线 3P19 指数回测框架Phase 1+2

  • DDLdws_member_assistant_relation_index / dws_member_winback_index / dws_member_newconv_index 新增 stat_date DATE NOT NULL DEFAULT CURRENT_DATE,唯一约束扩展 (site_id, member_id[, assistant_id], stat_date)app schema 视图改 DISTINCT ON + ORDER BY stat_date DESC
  • 任务relation_index / winback_index / newconv_index 改日快照模式(按 stat_date 删除 + 插入),批量写入优化
  • 新建DWS_INDEX_BACKFILL + DWS_TASK_SIMULATION 两个工具任务
  • task_engine 升级为双模式HTTP 实时 / 推演回测)
  • 前置member_index_base STOP 分流改为 OLD

主线 4Core 维度层启用(承接 2026-04-15 美团结算审计后续)

  • 新建 CORE_DIM_SYNC 任务DWD → core 4 维度表 TRUNCATE+INSERT
  • core.sql 注释更新:定位为"跨平台统一维度层"
  • 修复 app 视图空查询问题
  • task_registry + orchestration/task_registry.py 注册新任务

主线 5客户项目标签稳定性优化

  • member_project_tagLAST_30/60_DAYS(固定日期窗口)改为 LAST_30_VISITS(最近 30 次消费)
  • 配套迁移 SQL20260411_member_project_tag_visit_based.sqlDELETE 旧窗口数据 + 新增 cfg_area_category 配置行)

主线 6美团结算数据导入已有 2026-04-15 审计覆盖)

  • dwd_groupbuy_redemption 新增 6 个 mt_* 字段(mt_settlement_price / mt_gross_income / mt_service_fee / mt_marketing_fee / mt_other_adjust / mt_import_time
  • 本次审计仅作"基线同步"确认:db/etl_feiqiu/schemas/dwd.sql + docs/database/ddl/etl_feiqiu__dwd.sql 已更新;apps/etl/connectors/feiqiu/docs/database/DWD/main/BD_manual_dwd_groupbuy_redemption.md 同步
  • 主审计记录docs/audit/changes/2026-04-15__meituan-settle-core-sync.md(本批次不重复审计)

主线 7运维工具与分析扩展

  • 新增脚本:scripts/ops/churned_customer_report.py(流失客户回访报告,~1137 行),scripts/ops/simulate_historical_tasks.py(历史任务推演,~524 行)
  • 新增目录:tools/task-analysis/(任务报告工具 + 7 份历史报告)
  • 新增启动:start-admin.bat
  • 新增报告:excel_analysis_report.txt / sheet_structure.txt(根目录中间产物)
  • demo-miniprogram SDK 1.6.28 → 1.6.29;项目名归一化

变更文件

后端 backend (16)

  • apps/backend/app/config.py:路径注释更新(开发机迁移)
  • apps/backend/.env.local:路径同步
  • apps/backend/auth_only.txt:测试产物刷新
  • apps/backend/auth_only_results.txt:测试产物刷新
  • apps/backend/auth_test_results.txt:测试产物刷新
  • apps/backend/app/routers/xcx_coaches.py新增 GET /xcx/coaches/{id}/banner 轻量端点(+16
  • apps/backend/app/routers/xcx_performance.py关键——新增 coach_id 可选参数 + 权限分流 view_board_coach+29/-11
  • apps/backend/app/schemas/xcx_coaches.pyPerformanceMetrics 6→25 字段、新增 CoachBannerResponse / CoachTaskStats+49/-8
  • apps/backend/app/schemas/xcx_customers.pyConsumptionRecord + foodDetailCustomerNote + creator_name/creator_role+3
  • apps/backend/app/schemas/xcx_performance.pyDateGroupRecord + is_scattered+1
  • apps/backend/app/services/board_service.py:狭义召回改从 coach_tasks 统计(+38/-38
  • apps/backend/app/services/coach_service.py关键——新增 get_coach_banner()get_coach_detail 重构 + store_name/task_stats、fdw 查询预容错(+194/-194
  • apps/backend/app/services/customer_service.pynotes JOIN auth.users 获取创建者、结算单粒度消费记录重构(+256/-395
  • apps/backend/app/services/fdw_queries.py关键——新增 get_service_records_summary()、修复 get_last_visit_days 改用 consumption_summaryget_consumption_records 按结算单粒度(+219/-395
  • apps/backend/app/services/performance_service.pyassistant_id_override + 散客标记 + summary 直接 SQL 聚合(+34/-34
  • apps/backend/app/services/recall_detector.py关键——settle_type=3 双重限制 + 门店级 resolved 召回解除 + 72h 宽限期(+109/-109
  • apps/backend/app/services/task_generator.py关键——回访 48h→72h、UPSERT 替代策略、Step 5 清理保底任务(+194/-194
  • apps/backend/app/services/task_manager.py_build_performance_summary → build_performance_summary 公开化、current_tier 改用数组下标(+18/-18
  • apps/backend/app/services/task_registry.py:注册 CORE_DIM_SYNC / DWS_ASSISTANT_ORDER_CONTRIBUTION / DWS_INDEX_BACKFILL+6/-1

说明:apps/backend/ 下文件总计 16 个(含 .env.local 和 3 份 auth 测试产物),其余均为实质业务逻辑改动。

ETL feiqiu (13)

  • apps/etl/connectors/feiqiu/.env:路径迁移 + API_TOKEN 续期(不列值)
  • apps/etl/connectors/feiqiu/orchestration/task_registry.py:注册 CORE_DIM_SYNC + DWS_INDEX_BACKFILL
  • apps/etl/connectors/feiqiu/tasks/dws/__init__.py:导出 CoreDimSyncTask
  • apps/etl/connectors/feiqiu/tasks/dws/core_dim_sync_task.py [新建]+174DWD → core 4 维度表 TRUNCATE+INSERT
  • apps/etl/connectors/feiqiu/tasks/dws/member_project_tag_task.pyLAST_30/60_DAYS → LAST_30_VISITS
  • apps/etl/connectors/feiqiu/tasks/dws/task_engine.py关键——升级双模式HTTP 实时 / 推演回测)(+767/-96
  • apps/etl/connectors/feiqiu/tasks/dws/index/member_index_base.pySTOP 分流改 OLD+2/-1
  • apps/etl/connectors/feiqiu/tasks/dws/index/newconv_index_task.py:日快照模式(+93/-30
  • apps/etl/connectors/feiqiu/tasks/dws/index/relation_index_task.py:日快照 + 批量写入优化(+90/-27
  • apps/etl/connectors/feiqiu/tasks/dws/index/winback_index_task.py:日快照 + 365 天保留策略 + execute_batch
  • apps/etl/connectors/feiqiu/tasks/utility/index_backfill_task.py [新建]DWS_INDEX_BACKFILL 工具任务
  • apps/etl/connectors/feiqiu/tasks/utility/task_simulation_task.py [新建]DWS_TASK_SIMULATION 工具任务
  • apps/etl/connectors/feiqiu/scripts/research_coupon_details.py:路径迁移(+1
  • apps/etl/connectors/feiqiu/docs/database/DWD/main/BD_manual_dwd_groupbuy_redemption.mdmt_* 6 字段说明(+6
  • apps/etl/connectors/feiqiu/docs/database/DWS/main/BD_manual_cfg_area_category.md:美洲豹赛台 BILLIARD
  • apps/etl/connectors/feiqiu/docs/database/DWS/main/BD_manual_dws_member_project_tag.md:新窗口文档同步
  • apps/etl/connectors/feiqiu/docs/etl_tasks/README.mdCore 层段落新增

小程序 miniprogram (22)

  • apps/miniprogram/project.config.jsonJSON 格式标准化
  • apps/miniprogram/project.miniapp.jsonJSON 格式标准化
  • apps/miniprogram/project.private.config.jsonJSON 格式标准化
  • apps/miniprogram/miniprogram/app.miniapp.jsonJSON 格式标准化
  • apps/miniprogram/miniprogram/app.json:新增 coach-service-records 路由(+1
  • apps/miniprogram/i18n/base.jsoni18n 更新
  • apps/miniprogram/typings/types/wx/lib.wx.miniapp.d.ts:微信 API 类型更新
  • apps/miniprogram/miniprogram/services/api.ts关键——新增 fetchCoachBanner(coachId)fetchPerformanceRecords 新增 coachId 可选参数(+28/-1
  • apps/miniprogram/miniprogram/utils/format.wxs:新增 daysAgo()+11
  • apps/miniprogram/miniprogram/utils/perf-progress.ts [新建]+125进度条动画参数 + 工具函数单一源
  • apps/miniprogram/miniprogram/components/perf-progress-bar/perf-progress-bar.wxssCSS 变量化(+1/-1
  • apps/miniprogram/miniprogram/pages/board-coach/board-coach.tsformatCount 简化(+4/-4
  • apps/miniprogram/miniprogram/pages/coach-detail/coach-detail.ts关键——进度条去重 + performance 字段扩展(+143/-94
  • apps/miniprogram/miniprogram/pages/coach-detail/coach-detail.wxml:属性传参 + 散客标记 + Recent 限制 5 条(+18/-4
  • apps/miniprogram/miniprogram/pages/coach-detail/coach-detail.wxss:散客置灰样式(+4
  • apps/miniprogram/miniprogram/pages/coach-service-records/coach-service-records.json [新建]+14
  • apps/miniprogram/miniprogram/pages/coach-service-records/coach-service-records.ts [新建]+200+):权限守卫 checkPageAccess('view_board_coach')fetchCoachBanner + fetchPerformanceRecords(coach_id)
  • apps/miniprogram/miniprogram/pages/coach-service-records/coach-service-records.wxml [新建]+150+):助教 banner + 月份切换 + 日期分组
  • apps/miniprogram/miniprogram/pages/coach-service-records/coach-service-records.wxss [新建]+200+):样式同 performance-records
  • apps/miniprogram/miniprogram/pages/customer-detail/customer-detail.tsfoodDetail + phoneFull + 复制改用 phoneFull+7/-2
  • apps/miniprogram/miniprogram/pages/customer-detail/customer-detail.wxml:手机号脱敏 + 食品类目动态 + notes 创建者(+8/-4
  • apps/miniprogram/miniprogram/pages/customer-detail/customer-detail.wxss:食品标签长文本支持(+9
  • apps/miniprogram/miniprogram/pages/customer-records/customer-records.wxml:食品类目动态同步(+4/-2
  • apps/miniprogram/miniprogram/pages/customer-records/customer-records.wxss:食品标签样式同步(+9/-1
  • apps/miniprogram/miniprogram/pages/performance-records/performance-records.ts:变更日志(拆分助教视角)(+1
  • apps/miniprogram/miniprogram/pages/performance-records/performance-records.wxml:散客标记(+2/-1
  • apps/miniprogram/miniprogram/pages/performance-records/performance-records.wxssbanner 字体 + 散客置灰(+10/-4
  • apps/miniprogram/miniprogram/pages/task-list/task-list.ts:进度条逻辑外包到 perf-progress.ts+107/-62净 -90
  • apps/miniprogram/miniprogram/pages/task-list/task-list.wxmlfmt.days → fmt.daysAgo+6/-4

数据库 db (6)

  • db/etl_feiqiu/migrations/2026-04-12__add_stat_date_to_index_tables.sql [新建]stat_date 字段 + 唯一约束扩展 + 索引重建 + app 视图 DISTINCT ON(详见下方 DDL 清单)
  • db/etl_feiqiu/migrations/20260411_member_project_tag_visit_based.sql [新建]:美洲豹赛台配置 + 清理旧窗口数据(详见下方 DDL 清单)
  • db/etl_feiqiu/schemas/app.sql:同步 3 视图 DISTINCT ON 改写(+40/-40
  • db/etl_feiqiu/schemas/core.sql:注释更新,定位为跨平台统一维度层(+6
  • db/etl_feiqiu/schemas/dwd.sqlmt_* 6 字段(对应 2026-04-15 美团审计)
  • db/etl_feiqiu/schemas/dws.sql3 表 stat_date + 约束 + 索引 + v_member_recall_priority 改写(+133/-88
  • db/README.mdcore 层注释补充

文档 docs (40+)

95% 为路径同步(C:\NeoZQYY → C:\Project\NeoZQYYDDL 基线刷新仅 dws / zqyy_app biz 有实质内容;无新 spec。

根文档

  • docs/README.md:路径同步
  • docs/assistant-task-detail-report.md:历史报告(内容保留)

DDL 基线auto-gen+201/-110 集中在 dws/biz

  • docs/database/ddl/etl_feiqiu__app.sql:基线刷新
  • docs/database/ddl/etl_feiqiu__core.sql:基线刷新
  • docs/database/ddl/etl_feiqiu__dwd.sql:基线刷新 + mt_* 字段
  • docs/database/ddl/etl_feiqiu__dws.sql:基线刷新 + stat_date + 视图
  • docs/database/ddl/etl_feiqiu__meta.sql:基线刷新
  • docs/database/ddl/etl_feiqiu__ods.sql:基线刷新
  • docs/database/ddl/zqyy_app__app.sql:基线刷新
  • docs/database/ddl/zqyy_app__auth.sql:基线刷新
  • docs/database/ddl/zqyy_app__biz.sql:基线刷新(有内容)
  • docs/database/ddl/zqyy_app__public.sql:基线刷新

部署/迁移/MCP/运维

  • docs/deployment/EXPORT-PATHS.md:路径同步 + LF→CRLF 标准化
  • docs/deployment/LAUNCH-CHECKLIST.md:路径同步 + LF→CRLF 标准化
  • docs/mcp/WEIXIN-DEVTOOLS-MCP.md:路径同步
  • docs/migrate/*.md × 2:路径同步
  • docs/ops/init-test-user.md:路径同步

Specs约 28 份,全部路径同步无进度变更)

  • docs/specs/*/tasks.md × 约 18pytest 命令路径同步
  • docs/specs/*/design.md × 约 10pytest 命令路径同步

工具/脚本/测试/配置 (其余约 43)

95% 路径迁移,实质新增 2 个运维脚本 + 1 个工具目录 + 1 个启动 bat。

根配置 5

  • .env:路径同步
  • .env.template:路径同步
  • .mcp.json:路径同步
  • .playwright-mcp/:新增目录
  • uv.lock:大规模格式重排(不审跨 lockfile 内容)

根中间产物 2

  • excel_analysis_report.txtExcel 分析中间产物
  • sheet_structure.txtSheet 结构中间产物

scripts/ops 12

  • scripts/ops/ai_backfill.py:路径同步
  • scripts/ops/backfill_coach_area_hours.py:路径同步
  • scripts/ops/backfill_finance_area_daily.py:路径同步
  • scripts/ops/backfill_index_snapshots.py:路径同步
  • scripts/ops/check_and_refresh_audit.py:路径同步
  • scripts/ops/etl_unified_analysis.py:路径同步
  • scripts/ops/gen_integration_report.py:路径同步
  • scripts/ops/init_test_user.py:路径同步
  • scripts/ops/start-admin.ps1:路径同步
  • scripts/ops/churned_customer_report.py [新建]:流失客户回访报告(~1137 行)
  • scripts/ops/simulate_historical_tasks.py [新建]:历史任务推演(~524 行)

tools 3 + 新建子目录

  • tools/db/*.py × 3:路径同步
  • tools/task-analysis/ [新建目录]:任务报告工具 + 7 份历史报告

tests 7

  • tests/test_property_*.py × 7:常量路径同步

apps/demo-miniprogram 4

  • SDK 1.6.28 → 1.6.29 + 项目名归一化:
    • apps/demo-miniprogram/i18n/base.json
    • apps/demo-miniprogram/miniprogram/app.miniapp.json
    • apps/demo-miniprogram/project.miniapp.json
    • apps/demo-miniprogram/project.private.config.json

_DEL 归档 4

  • _DEL/MIGRATION-PLAYBOOK.md:路径同步
  • _DEL/miniprogram-h5-conversion/steering/action-manual.md:路径同步
  • _DEL/weixin-devtools-mcp.md:路径同步
  • _DEL/weixin-devtools/steering/workflow.md:路径同步

根新增启动

  • start-admin.bat:根目录启动引导(新建)

其他配置

  • .claude/settings.json:环境配置更新

数据库变更

迁移 1db/etl_feiqiu/migrations/2026-04-12__add_stat_date_to_index_tables.sql

  • 执行状态:已执行(从 schema 基线一致性 + 任务代码已引用 stat_date 推断)
  • DDL 清单
    1. dws.dws_member_assistant_relation_index
      • ADD COLUMN stat_date DATE NOT NULL DEFAULT CURRENT_DATE
      • DROP CONSTRAINT 原唯一约束 (site_id, member_id, assistant_id)
      • ADD CONSTRAINT 新唯一约束 (site_id, member_id, assistant_id, stat_date)
      • DROP INDEX 旧索引(如有)
      • CREATE INDEX 新索引 (site_id, stat_date)
      • UPDATE 回填已有行 stat_date = CURRENT_DATE
    2. dws.dws_member_winback_index:同上,唯一约束变 (site_id, member_id, stat_date)
    3. dws.dws_member_newconv_index:同上,唯一约束变 (site_id, member_id, stat_date)
    4. app.v_dws_member_assistant_relation_index:重写 SELECT DISTINCT ON (site_id, member_id, assistant_id) ... ORDER BY site_id, member_id, assistant_id, stat_date DESC
    5. app.v_dws_member_winback_index:同上 DISTINCT ON (site_id, member_id) ... ORDER BY ..., stat_date DESC
    6. app.v_dws_member_newconv_index:同上 DISTINCT ON (site_id, member_id) ... ORDER BY ..., stat_date DESC
    7. dws.v_member_recall_priority:改写以依赖新视图
  • 影响对象3 张 DWS 表 + 4 张视图 + 4 个新索引
  • 回滚 SQL文件末尾提供TRUNCATE 过期快照 → 恢复原唯一约束 → 删除 stat_date 列)
  • 兼容性stat_date NOT NULL + DEFAULT CURRENT_DATE,安全;大表 ALTER 因 DATE 列小,锁表风险低

迁移 2db/etl_feiqiu/migrations/20260411_member_project_tag_visit_based.sql

  • 执行状态:已执行(member_project_tag_task 已改为 LAST_30_VISITS 模式)
  • DDL 清单
    1. dws.cfg_area_categoryINSERT ... ON CONFLICT DO NOTHING 幂等新增 ('美洲豹赛台', 'BILLIARD', '中式/追分')
    2. dws.dws_member_project_tagDELETE WHERE time_window IN ('LAST_30_DAYS', 'LAST_60_DAYS')
  • 影响对象1 条配置新增 + 旧窗口数据清理
  • 回滚 SQL:恢复 DELETE 数据(需从备份) + DELETE 新增配置行
  • 兼容性:无破坏性(纯数据操作 + 幂等配置)

风险与回滚

高风险项(需人工验证或测试)

  1. task_generator UPSERT + Step 5 清理apps/backend/app/services/task_generator.py72h 宽限期 + 双任务替代策略 + 保底任务清理——业务逻辑复杂,需回归测试各种任务替代路径
  2. recall_detector settle_type=3 双重限制apps/backend/app/services/recall_detector.pysettle_type=3order_assistant_type=2 才计入;门店级召回自动解除(新增 resolved 状态)——需验证对历史数据的影响
  3. fetchPerformanceRecords coach_id 参数权限apps/backend/app/routers/xcx_performance.py + apps/miniprogram/miniprogram/services/api.ts):管理者跨级查询需要 view_board_coach 权限——需 e2e 权限测试防越权
  4. coach-service-records 新页面权限守卫apps/miniprogram/miniprogram/pages/coach-service-records/*onShowcheckPageAccess('view_board_coach')URL 参数 coachId 需后端二次验证防枚举
  5. fdw_queries 消费汇总表口径统一apps/backend/app/services/fdw_queries.pyget_last_visit_days / batch_query_for_task_list 改用 v_dws_member_consumption_summary 替代 v_dwd_assistant_service_log——下游多调用方,需验证聚合无重复
  6. isScattered 散客标记端到端(跨 backend/schemas + 小程序多页):后端 member_id ≤ 0 自动标记——需验证所有调用方语义一致
  7. task_engine 双模式分支apps/etl/connectors/feiqiu/tasks/dws/task_engine.pyHTTP 实时 + 推演回测双路径,需独立 APP_DB_DSN 连接业务库

中风险项

  • PerformanceMetrics schema 扩展6→25 字段):前端多页依赖,需字段可用性保证
  • current_tier 语义修正tier_id 主键 → tier_nodes 数组下标 0-based前端档位展示语义对应
  • 指数任务日快照模式DELETE 策略从全量变 (site_id, stat_date),回填任务需防重跑

回滚策略

  • 迁移 SQL:两份回滚脚本已内嵌(文件末尾注释块)
  • 后端代码git revert 对应文件即可(未 commitgit checkout HEAD -- <file> 可立即回退)
  • 小程序代码:同上
  • ETL 任务:可禁用 CORE_DIM_SYNC / DWS_INDEX_BACKFILL / DWS_TASK_SIMULATION 任务的编排注册

验证

SQL 验证3 条起步)

-- 验证 stat_date 已生效
SELECT COUNT(DISTINCT stat_date) FROM dws.dws_member_winback_index WHERE site_id = 1;

-- 验证 member_project_tag 新窗口已写入
SELECT DISTINCT time_window FROM dws.dws_member_project_tag;
-- 应只返回 LAST_30_VISITS

-- 验证 core 维度表非空CORE_DIM_SYNC 已跑过)
SELECT COUNT(*) FROM core.dim_assistant;
SELECT COUNT(*) FROM core.dim_member;

功能验证

  • 小程序:登录 coach 账号打开 task-list 查看绩效卡;登录 admin 账号从 board-coach 点击助教卡进 coach-service-records
  • 后端pytest apps/backend/tests/ 跑现有测试
  • ETLpython -m cli.main --dry-run --tasks CORE_DIM_SYNC,DWS_MEMBER_PROJECT_TAG,WINBACK_INDEX,RELATION_INDEX,NEWCONV_INDEX

合规检查

文档同步缺口(预扫描识别的 25 项)

已有文档覆盖(免补齐)

  • 美团 mt_* 字段 → 已在 docs/audit/changes/2026-04-15__meituan-settle-core-sync.md 审计覆盖 + BD_manual_dwd_groupbuy_redemption.md 已更新
  • stat_date 迁移 → db/etl_feiqiu/migrations/ 已有完整 SQLdocs/database/ddl/etl_feiqiu__dws.sql 已同步
  • member_project_tag 新窗口 → BD_manual_dws_member_project_tag.md 已同步

待补齐高风险项(建议后续单独任务处理,本次审计仅标注缺口,不强制补齐)

  • apps/backend/docs/API-REFERENCE.md:需增补 xcx/coaches/{id}/bannerxcx/performancecoach_id 参数说明、xcx/customersfoodDetail / phoneFull / notes.creator* 字段
  • apps/miniprogram/README.md:需增补 coach-service-records 新页面说明
  • apps/etl/connectors/feiqiu/docs/architecture/:建议补充 orchestration/task_registry.py 新增任务(CORE_DIM_SYNC / DWS_INDEX_BACKFILL / DWS_TASK_SIMULATION

状态清单

状态
迁移 SQL 回滚脚本 已内嵌
DDL 基线同步 已同步dws/app 一致)
代码→文档映射(美团/stat_date/project_tag 已覆盖
代码→文档映射backend API / miniprogram 新页 / ETL 新任务) 待补齐(已列入后续任务)
Spec 与实现对应 全部可追溯

下一步建议

  1. 提交本基线(本次审计后可作为 commit 起点)
  2. 后续新改动走标准 /audit 流程(单独审计、小颗粒度)
  3. 高风险 7 项应在 commit 前或上线前完成端到端测试
  4. 文档补齐列入待办,非阻断本次提交