ai_member_xiaoxi/memory/2026-06-08-1608.md
2026-06-09 08:00:01 +08:00

5.9 KiB
Raw Permalink Blame History

Session: 2026-06-08 16:08:24 GMT+8

  • Session Key: agent:main:feishu:direct:ou_e63ce6b760ad39382852472f28fbe2a2
  • Session ID: d4693f57-ecd6-4d66-b7e4-5d69f293dc60
  • Source: feishu

Conversation Summary

user: https://makee-interactive.feishu.cn/sheets/NoZqsFi47hIOHEt9j8WcfRtbnug这个表是你创建的你应该具有完整的读和写的权限现在我们要针对sheet“小龙”“吴迪”“成都”“订单汇总”创建一个脚本。 首先对于sheet“小龙”“吴迪”“成都”我需要你读取E列的手机号然后通过XXTEA加密去用户表里面通过加密手机号进行关联匹配然后填上H列到V列的数据第V列为操作更新的时间。 然后将上述三个sheet里面有下单的用户整理到sheet“订单汇总”中。 有任何问题可以向我提。先不要动表格,先生成脚本,并且向我解释表格里面每一列你的理解和计算口径。 assistant: Let我先读取表格结构和现有的加密脚本理解清楚后再动手。

assistant: Let我先读取四个 sheet 的表头和几行数据,理解列结构。

assistant: 现在我对表格结构有了清晰的理解。让我再看看成都 sheet 的数据和现有的 phone_encrypt 依赖。

assistant: 现在我已经完整理解了表格结构和现有逻辑。让我先确认一下 XXTEA 加密依赖是否可用,然后生成脚本。

assistant: 现在我对表格结构、现有逻辑和加密方式都有了完整理解。让我生成脚本。

assistant: 文件被截断了,让我继续完成脚本。

assistant: 脚本被截断了,让我重新完整写入。

assistant: 脚本已生成并通过语法检查。下面是完整的列说明。


📊 表格列结构说明

四个 sheet 的 A~V 列结构完全一致(共 22 列),订单汇总额外有 W/X 公式列。

👤 手填列(销售手动填写,脚本不动)

名称 说明
A 销售归属 销售姓名:小龙 / 吴迪 / Tom / Bob
B 微信昵称 用户微信昵称
C 进线日期 线索进入日期,格式如 6月7日,脚本会解析为 2026-06-07 用于日期比较
E 手机号 11 位明文手机号,脚本的核心输入
F 用户年级 如"大班""一年级"
G 课史/跟进 课程历史/跟进备注,脚本不动此列

🤖 自动列(脚本计算填写)

名称 计算口径
D 体验节数 bi_user_course_detail 统计 expire_time IS NULL(体验课)的记录数。只补空,不覆盖已有值
H 用户ID E 列手机号 → XXTEA 加密 → bi_vala_app_account.tel_encrypt 精确匹配 → 取 id。查不到留空
I 注册日期 bi_vala_app_account.created_at,格式 YYYY-MM-DD只补空
J 下载渠道 bi_vala_app_account.download_channel,经中文映射表转换(如 Apple App Store苹果)。只补空
K 是否下单 三个条件同时满足才写"是":①有支付成功订单 ②非全额退清 ③下单日 ≥ 进线日期。全额退清则清空
L 下单日期 最近一笔订单的 pay_success_date,格式 YYYY-MM-DD
M 成交渠道 订单的 key_from 原始值(如 sales-adp-bj-wd-0app-active-h5-0-0
N 产品 通过 goods_id 映射商品名(如 瓦拉英语level1+2瓦拉英语年包
O 下单金额(GMV) 该用户所有订单 pay_amount_int 之和 ÷ 100含退费。0 留空
P 退款金额 该用户所有退费成功(status=3)的 refund_amount_int 之和 ÷ 100取整。0 留空
Q 实际收入(GSV) GMV 退款金额。0 留空
R 激活课程 bi_vala_seasonal_ticketseason_package_levelA1→A1体验课A2→A2体验课
S 当前行课进度 最近完成的课时,格式 L1-S0-U00-L03(从 bi_level_unit_lesson 映射)
T 最近行课时间 最近完成课时的日期,格式 YYYY-MM-DD
U 累计学习时长(min) 所有组件 interval_time 求和 ÷ 60000分钟
V 更新时间 脚本执行时间,格式 YYYY-MM-DD HH:MM:SS

订单汇总额外列

名称 说明
W 渠道归属 🔵 公式列,自动判断:销转 / 达人 / 端内 / 直购
X 有效成单 🔵 公式列1=计单0=全额退

🔧 脚本核心规则

  1. E→HXXTEA 精确匹配,查不到留空(不用前三后四模糊匹配)
  2. D/I/J 只补空:已有值不覆盖
  3. K=是:有订单 + 非全额退清 + L(下单日) ≥ C(进线日期)
  4. 全额退清GMV = 退款金额 且 > 0 → K/O/P/Q 全部清空
  5. O/P/Q:值为 0 时留空不写
  6. G 列不动

📁 脚本位置

scripts/sales_leads_full_refresh.py

运行方式:

python3 scripts/sales_leads_full_refresh.py

有几个问题想确认:

  1. 订单汇总的写入方式:目前设计是全量覆盖(每次运行把 A~V 列从第 3 行开始全部重写W/X 公式列不动。这样每次运行后订单汇总就是最新的下单用户列表。这个逻辑对吗?还是需要追加(只加新的,不删旧的)?

  2. 日期解析C 列进线日期目前是 6月7日 这种格式,脚本按当年解析为 2026-06-07。跨年场景(如 12 月→1 月)需要特殊处理吗?

  3. 订单汇总中同一用户多行:如果同一个手机号在三个 sheet 中都出现且都下单了,订单汇总会出现多行(每个销售归属一行)。这是期望行为吗? user: 1、全部覆盖 2、不需要特殊处理就都按照当年处理 3、是的 assistant: 好的,三点都确认了,脚本逻辑完全对齐。现在可以运行吗? user: 脚本名字发给我 assistant: scripts/sales_leads_full_refresh.py