这些审计记录原本堆积在 docs/audit/changes/changes/ 嵌套误产物目录下(由开发机迁移
79d3c2e 前后的不明批量操作产生)。由于同期 .gitignore 屏蔽了 docs/audit/ 全目录,
它们从未入过 git 任何分支 history。删除即永久丢失。
按 docs/specs/audit-gap-recovery/tasks.md 阶段 1 执行,将全部 96 份 D 类孤本
(主目录无同名、git history 亦无记录)复制到 docs/audit/changes/ 主目录入仓。
涵盖主题: P1-P18 全栈集成 / 多模块累积变更 / ETL bug 修复 / 业务日切 /
召回与任务引擎改造 / 租户管理与审批 / 董事会财务 / 客户与助教详情 /
DDL 基线合并 / Kiro 到 Claude Code 迁移
阶段 2(B 类内容漂移 1 份)和阶段 4(嵌套目录删除)独立推进。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.6 KiB
4.6 KiB
变更审计记录:任务列表近60天数据展示 + WXML 格式化改造
| 字段 | 值 |
|---|---|
| 日期 | 2026-03-27 23:55:19 |
| Prompt-ID | P20260327-235519 |
操作摘要
用户反馈任务列表卡片"将最近到店改为到店"、小时数和金额为0时没有显示。本次变更涉及:
xcx_tasks.pySchema 新增expected_days、ideal_interval_days、recent60d_hours、recent60d_income、customer_phone、balance字段task_manager.py重构:合并 7 次独立 ETL 连接为 1 次batch_query_for_task_list;新增 RS 范围排除逻辑(SQL 层面排除 relationship_building 任务);_build_performance_summary支持batch_data复用;新增@trace_service装饰器task-list.wxml全面改用 WXSfmt.*格式化函数(safe/money/hours/days/count 等);卡片新增近60天汇总行;新增逾期标签;新增"查看所有客户"入口;绩效卡片整体可点击
本次对话文件变更
新增文件
docs/audit/prompt_logs/prompt_log_20260327_235519.mddocs/audit/session_logs/2026-03/27/21_df263214_235045/main_01_2d5794de.md
改动注解
apps/backend/app/schemas/xcx_tasks.py
- 变更类型:修改
- 原始原因:任务列表卡片需要展示更多维度数据(预期天数、近60天课时/收入),前端需要这些字段
- 思路分析:在
TaskItem中新增expected_days、ideal_interval_days、recent60d_hours、recent60d_income四个可选字段;在TaskDetailResponse中新增customer_phone和balance。Schema 与 Service 字段保持严格一致 - 修改结果:前端可通过 camelCase 读取新字段,零值时返回 0.0 而非 None,确保前端始终能显示数值
apps/backend/app/services/task_manager.py
- 变更类型:修改
- 原始原因:(1) 性能优化——原 7 次独立 ETL 连接合并为 1 次批量查询;(2) 分页准确性——RS 范围外的 relationship_building 任务需在 SQL 层排除而非内存过滤;(3) 新增近60天汇总数据支持
- 思路分析:
- 步骤 0 预加载 RS 排除列表,构建
exclude_clause注入 COUNT 和分页 SQL(NOT (task_type='relationship_building' AND member_id=ANY(%s))) - 步骤 2-5 合并为
fdw_queries.batch_query_for_task_list()单连接批量查询 _build_performance_summary新增batch_data参数复用预查询数据- 各 service 方法添加
@trace_service装饰器用于链路追踪 - 维客线索 category→tag_color 映射改为 CSS 类名后缀(primary/success/error 等),不再用十六进制颜色
- 步骤 0 预加载 RS 排除列表,构建
- 修改结果:ETL 连接数从 7 降至 1,分页 total 与实际展示一致,卡片新增
expected_days和recent60d_*数据
apps/miniprogram/miniprogram/pages/task-list/task-list.wxml
- 变更类型:修改
- 原始原因:(1) 文本展示需统一使用 WXS 格式化防止 undefined/null 显示;(2) 卡片需展示近60天课时和收入汇总;(3) 逾期标签需可视化
- 思路分析:
- 引入
<wxs src="../../utils/format.wxs" module="fmt" />,所有文本输出改用fmt.safe()/fmt.money()/fmt.hours()/fmt.days()/fmt.count()等 WXS 函数 - card-row-2 从"最近到店:X天前 · 余额:X"改为"到店:X前 · 储值 X · 近60天 Xh | ¥X"
- 新增
expected-tag--overdue逾期标签(仅对非 relationship_building/follow_up_visit 类型显示) - 绩效卡片
perf-card整体添加bindtap="onPerformanceTap",移除内部重复绑定 - 头像改为从全局用户信息读取,支持 fallback 默认图
- 新增"查看我的所有客户"按钮入口
- 引入
- 修改结果:所有文本安全格式化,零值正确显示,卡片信息密度提升
非高风险文件简要注解
docs/audit/session_logs/2026-02/*/及2026-03/*/:session 日志索引批量更新(自动生成)docs/audit/prompt_logs/prompt_log_20260327_235519.md:本次 prompt 日志(自动生成)
合规检查
| 检查项 | 状态 |
|---|---|
| 新增迁移 SQL | 无 |
| DDL 基线 | 不涉及 |
| BD 手册 | 不涉及(无 DB schema 变更) |
| OpenAPI Spec | ⚠️ 接口代码已变更但 OpenAPI spec 未同步(api_changed=true, openapi_spec_stale=true) |
| 文档同步 | ⚠️ xcx_tasks.py → docs/contracts/openapi/backend-api.json 待同步 |
| 文档同步 | ⚠️ task_manager.py → apps/backend/docs/API-REFERENCE.md + apps/backend/README.md 待同步 |
待办
- 重新导出 OpenAPI spec:
python scripts/ops/_export_openapi.py - 更新
apps/backend/docs/API-REFERENCE.md中 TaskItem/TaskDetailResponse 字段说明