From 57ead02783ba68cdc1c611c8fc6fa71b6f29ba65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=BA=AA?= Date: Fri, 12 Jun 2026 08:00:01 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20=E6=AF=8F=E6=97=A5=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=A4=87=E4=BB=BD=20-=202026-06-12=2008:00:01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- memory/2026-06-11-1013.md | 19 ++++++++++++++++++ memory/2026-06-11-1501.md | 13 ++++++++++++ scripts/sales_leads_full_refresh.py | 31 +++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 memory/2026-06-11-1013.md create mode 100644 memory/2026-06-11-1501.md diff --git a/memory/2026-06-11-1013.md b/memory/2026-06-11-1013.md new file mode 100644 index 0000000..4dbb2cc --- /dev/null +++ b/memory/2026-06-11-1013.md @@ -0,0 +1,19 @@ +# Session: 2026-06-11 10:13:57 GMT+8 + +- **Session Key**: agent:main:feishu:direct:ou_e63ce6b760ad39382852472f28fbe2a2 +- **Session ID**: b3bf0782-33c8-4554-90ba-0c18d5c5e30b +- **Source**: feishu + +## Conversation Summary + +user: 运行fill_leads_sheet.py +assistant: 脚本运行完成,结果汇总: + +**吴迪 (2026-06):** +- 有效析出 24 条,匹配到 9 个账号 +- 转化 5 人,转化率 20.8% +- 退费率 0.0% + +**曲慧萌:** 24 行数据中没有有效手机号,未匹配到账号。 + +数据已回写到飞书表格。 diff --git a/memory/2026-06-11-1501.md b/memory/2026-06-11-1501.md new file mode 100644 index 0000000..3c83d09 --- /dev/null +++ b/memory/2026-06-11-1501.md @@ -0,0 +1,13 @@ +# Session: 2026-06-11 15:01:45 GMT+8 + +- **Session Key**: agent:main:feishu:direct:ou_e63ce6b760ad39382852472f28fbe2a2 +- **Session ID**: 991b400d-5b45-45fb-bddc-f576fe3adac3 +- **Source**: feishu + +## Conversation Summary + +user: 运行fill_leads_sheet.py +assistant: 运行完成,汇总: + +- **曲慧萌**:24 行数据,无有效手机号,跳过 +- **吴迪**:26 行数据,9 个有效手机号全部匹配到账号,5 人已转化(转化率 19.2%),退费率 0.0%,数据已回写 diff --git a/scripts/sales_leads_full_refresh.py b/scripts/sales_leads_full_refresh.py index 8e59c10..a335e41 100644 --- a/scripts/sales_leads_full_refresh.py +++ b/scripts/sales_leads_full_refresh.py @@ -606,9 +606,37 @@ def write_sales_sheets(token, all_entries, phone_map, db_info): # ═══ Step 5: 汇总到「订单汇总」sheet ═══ +def clear_summary_sheet(token): + """先清空订单汇总 sheet 的旧数据(A~V列,从第3行开始),再写入新数据。""" + log(" 检查订单汇总 sheet 现有数据...") + try: + rows = read_sheet(token, SUMMARY_SHEET_ID, "A3:A5000") + last_data_row = 2 + for i, row in enumerate(rows): + if row and any(cell for cell in row if cell): + last_data_row = 3 + i + + if last_data_row < 3: + log(" 订单汇总 sheet 无旧数据,跳过清空") + return + + log(f" 清空 A3:V{last_data_row}({last_data_row - 2} 行旧数据)...") + chunk_size = 500 + for start_row in range(3, last_data_row + 1, chunk_size): + end_row = min(start_row + chunk_size - 1, last_data_row) + empty_values = [[""] * 22] * (end_row - start_row + 1) + range_str = f"A{start_row}:V{end_row}" + put_values(token, SUMMARY_SHEET_ID, range_str, empty_values) + time.sleep(0.1) + log(" 清空完成") + except Exception as e: + log(f" 清空异常: {e}") + + def write_summary_sheet(token, all_entries, phone_map, db_info): """ 将三个销售 sheet 中 K=是(已下单)的行汇总到「订单汇总」sheet。 + 先清空旧数据,再全量写入。 订单汇总 sheet 的列结构(A~X): A: 销售归属, B: 微信昵称, C: 进线日期, D: 体验节数, E: 手机号, F: 用户年级, G: 课史/跟进, H: 用户ID, I: 注册日期, J: 下载渠道, @@ -617,6 +645,9 @@ def write_summary_sheet(token, all_entries, phone_map, db_info): S: 当前行课进度, T: 最近行课时间, U: 累计学习时长(min), V: 更新时间, W: 渠道归属(公式), X: 有效成单(公式) """ + # 先清空旧数据 + clear_summary_sheet(token) + log(" 汇总订单数据...") # 收集所有 K=是 的行