ai_member_xiaoxi/memory/2026-05-06.md
2026-05-07 08:00:01 +08:00

2.8 KiB
Raw Permalink Blame History

2026-05-06 工作日志

任务1学而思/讯飞/希沃/京东方月度渠道订单报表

  • [李承龙需求] 创建按月汇总四个渠道订单的 Python 脚本
  • 脚本路径:/root/.openclaw/workspace/scripts/monthly_channel_order_report.py
  • 渠道映射: 仅端内 key_from='app-active-h5-0-0'sale_channel: 21=学而思, 22=讯飞, 26=希沃, 27=京东方
  • 输出格式: 四个渠道各一个 Sheet每月按天展示学而思/希沃/京东方只显示有订单日期,讯飞显示全月每天)
  • 指标差异:
    • 学而思/希沃/京东方订单数、GMV、CPS分成学而思×0.45希沃×0.4京东方×0.3)、订单号(分号拼接)
    • 讯飞订单数、GMV、新增注册download_channel LIKE '%讯飞%'、CPA分成新增注册×7、订单号
  • 退费剔除: NOT EXISTS (bi_refund_order.status=3) AND order_status != 4
  • 测试运行: 2026-04 月份,新增注册 537讯飞订单合计 15 单GMV 14585 元
  • 订单号格式问题: Excel 科学计数法 → 设置单元格为文本格式解决
  • psycopg2 转义: LIKE 中 % 需写成 %%psycopg2 的 %s 占位符冲突)

任务2销售线索用户分析报表

  • [李承龙需求] 输入包含462个用户ID的Excel输出每个用户+角色的完整画像报表
  • 脚本路径:/root/.openclaw/workspace/scripts/lead_user_analysis.py
  • 重要口径修正(李承龙确认):
    • 体验课定义: 固定为 L1 U00(L01-L05) + L2 U00(L01-L05) 共10节课不通过 expire_time 区分
    • L1 chapter_id: 343, 344, 345, 346, 348
    • L2 chapter_id: 55, 56, 57, 58, 59
    • 完成时间:bi_user_chapter_play_recordplay_status=1 记录的最早 updated_at(非 created_at
  • 报表列: 用户ID、角色ID、用户注册时间、角色创建时间、L1序章5节完成时间、L2序章5节完成时间、购买时间、购买课包名称、支付金额、购买渠道key_from、是否退款、退款金额
  • 分表规则: bi_user_chapter_play_record_{0..7},分表号 = user_id % 8
  • 重要关联: bi_user_chapter_play_record.user_id = bi_vala_app_character.id角色ID非 account_id
  • 退款条件: bi_refund_order.status=3 AND bi_vala_order.order_status=4
  • 结果: 533行462个用户 × 533个有效角色235个完成L1序章139个完成L2序章53行有购买10行有退款
  • 踩坑记录:
    • 子会话按旧口径执行后被 kill最终主会话亲自重写脚本
    • ALL_CHAPTERS 的值是 "L1_U00_L01"COL_ORDER 是 "L1_U00_L01_完成时间",不匹配导致全部为空,修复后正确
    • datetime 写入 Excel 需去掉时区信息 dt.tz_localize(None)
    • play_record 分表查询需遍历 0-7 共 8 个分表