50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
||
"""第二步:查询 parent_address 并合并生成最终 Excel"""
|
||
import csv
|
||
import os
|
||
import sys
|
||
|
||
# 配置
|
||
DB_WELFARE_OUTPUT = '/root/.openclaw/workspace/output/welfare_step1_result.txt'
|
||
FINAL_OUTPUT = '/root/.openclaw/workspace/output/福利品用户名单.xlsx'
|
||
|
||
# 读取第一步结果
|
||
orders = []
|
||
with open(DB_WELFARE_OUTPUT, 'r') as f:
|
||
reader = csv.DictReader(f)
|
||
for row in reader:
|
||
orders.append(row)
|
||
|
||
print(f"读取订单数: {len(orders)}")
|
||
|
||
# 获取所有 account_id
|
||
account_ids = sorted(set(row['用户ID'] for row in orders))
|
||
print(f"唯一用户数: {len(account_ids)}")
|
||
|
||
# 情况分布统计
|
||
from collections import Counter
|
||
case_dist = Counter(row['来源情况'] for row in orders)
|
||
print("\n=== 情况分布(按订单行数)===")
|
||
for k, v in case_dist.most_common():
|
||
print(f" {k}: {v}")
|
||
|
||
# 检查重复 trade_no
|
||
trade_nos = [row['交易号'] for row in orders]
|
||
trade_dup = [t for t, c in Counter(trade_nos).items() if c > 1]
|
||
if trade_dup:
|
||
print(f"\n⚠️ 重复 trade_no: {trade_dup}")
|
||
else:
|
||
print("\n✅ 无重复 trade_no")
|
||
|
||
# 生成 account_id 列表用于第二步查询
|
||
ids_str = ','.join(account_ids)
|
||
print(f"\n准备查询 parent_address,共 {len(account_ids)} 个用户")
|
||
print(f"account_id 列表已保存")
|
||
|
||
# 保存 account_ids 供 psql 使用
|
||
with open('/root/.openclaw/workspace/output/welfare_account_ids.txt', 'w') as f:
|
||
for aid in account_ids:
|
||
f.write(f"{aid}\n")
|
||
|
||
print("Done.")
|