Files
Neo-ZQYY/docs/audit/changes/2026-03-27__task-list-recent60d-and-wxml-formatting.md
Neo 14a12342b5 chore(audit): 补追 96 份未入仓审计孤本 — 覆盖 2026-02-26 ~ 2026-04-08
这些审计记录原本堆积在 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>
2026-04-20 06:35:42 +08:00

4.6 KiB
Raw Blame History

变更审计记录任务列表近60天数据展示 + WXML 格式化改造

字段
日期 2026-03-27 23:55:19
Prompt-ID P20260327-235519

操作摘要

用户反馈任务列表卡片"将最近到店改为到店"、小时数和金额为0时没有显示。本次变更涉及

  1. xcx_tasks.py Schema 新增 expected_daysideal_interval_daysrecent60d_hoursrecent60d_incomecustomer_phonebalance 字段
  2. task_manager.py 重构:合并 7 次独立 ETL 连接为 1 次 batch_query_for_task_list;新增 RS 范围排除逻辑SQL 层面排除 relationship_building 任务);_build_performance_summary 支持 batch_data 复用;新增 @trace_service 装饰器
  3. task-list.wxml 全面改用 WXS fmt.* 格式化函数safe/money/hours/days/count 等卡片新增近60天汇总行新增逾期标签新增"查看所有客户"入口;绩效卡片整体可点击

本次对话文件变更

新增文件

  • docs/audit/prompt_logs/prompt_log_20260327_235519.md
  • docs/audit/session_logs/2026-03/27/21_df263214_235045/main_01_2d5794de.md

改动注解

apps/backend/app/schemas/xcx_tasks.py

  • 变更类型:修改
  • 原始原因任务列表卡片需要展示更多维度数据预期天数、近60天课时/收入),前端需要这些字段
  • 思路分析:在 TaskItem 中新增 expected_daysideal_interval_daysrecent60d_hoursrecent60d_income 四个可选字段;在 TaskDetailResponse 中新增 customer_phonebalance。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 和分页 SQLNOT (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 等),不再用十六进制颜色
  • 修改结果ETL 连接数从 7 降至 1分页 total 与实际展示一致,卡片新增 expected_daysrecent60d_* 数据

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.pydocs/contracts/openapi/backend-api.json 待同步
文档同步 ⚠️ task_manager.pyapps/backend/docs/API-REFERENCE.md + apps/backend/README.md 待同步

待办

  • 重新导出 OpenAPI specpython scripts/ops/_export_openapi.py
  • 更新 apps/backend/docs/API-REFERENCE.md 中 TaskItem/TaskDetailResponse 字段说明