2.6 KiB
2.6 KiB
| name | slug | version | description |
|---|---|---|---|
| 福利品用户名单 | welfare-user-list | 1.0.0 | 统计拥有两个年包课包(level1+level2 / 双level1 / 双level2)的福利品发放用户,关联收货地址并生成多 Sheet Excel。 |
When to Use
用户提到"福利品"、"两个年包"、"发福利"、"level1+level2用户"、"双年包用户统计"时触发。
Core Rules
-
先确认日期范围。 如果用户未指定日期范围,默认不限制日期;用户可以指定
pay_success_date的起止日期(含当日)。 -
三步执行流程:
- 第一步: 读入
scripts/welfare_query.sql,将${DATE_FILTER}替换为实际日期条件(有日期则AND pay_success_date::date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD',无则注释掉),在vala_bi库执行,结果保存到output/welfare_step1_result.txt - 第二步: 从第一步结果提取
account_id列表,查询vala_class.parent_address获取收货地址(name, phone_number, region, address),保存到output/parent_address_result.txt - 第三步: 运行
python3 skills/welfare-user-list/scripts/welfare_merge.py output/welfare_step1_result.txt [起始日期] [结束日期]生成最终 Excel
- 第一步: 读入
-
三种判定情况:
- 情况1:goods_id=61(level1+2)且无任何退费
- 情况2:goods_id IN (31,60) 至少 2 笔有效订单,最多 1 笔 400 元部分退费
- 情况3:goods_id IN (31,60) 至少 1 笔无退费 + goods_id=61 有 1 笔退费 1999 元
-
数据清洗: 剔除 pay_amount_int < 100,000 分的异常低价订单;输出前按 (account_id, trade_no) 去重。
-
输出 Excel 三个 Sheet: 福利品用户名单(完整订单明细)、统计汇总、用户地址汇总(按用户去重仅保留地址字段)。
-
发送文件时附上统计摘要: 总用户数、有/无地址数、三种情况用户分布。
Quick Reference
| 内容 | 文件 |
|---|---|
| SQL 查询模板 | scripts/welfare_query.sql |
| Python 合并脚本 | scripts/welfare_merge.py |
| 数据库连接 | 见 TOOLS.md:vala_bi(订单/退费)和 vala_class(地址) |
| 年包 goods_id | 31(level2/年包)、60(level1)、61(level1+2) |
| 退费关键金额 | 400 元 = 40,000 分 / 1999 元 = 199,900 分 |
| goods_id=61 价格 | 3,598 元 |
Database Credentials
使用 TOOLS.md 中已有的 Online PostgreSQL 只读连接:
- 主机:
bj-postgres-16pob4sg.sql.tencentcdb.com:28591 - 数据库:
vala_bi(订单/退费/账号表)、vala_class(parent_address 表) - 用户:
ai_member,密码从secrets.env中$PG_ONLINE_PASSWORD读取