PKG板块:按pkg/account可选呈现+pkg/account筛选+排序; 客户分类板块加排序; 数据改为pkg×account明细

This commit is contained in:
2026-09-11 17:08:11 +08:00
parent 0cd8d81f47
commit 088e38cda1
3 changed files with 259 additions and 65 deletions
+11 -8
View File
@@ -3,7 +3,7 @@
# 每小时被平台执行;UTC+8 过11点且当天未更新则补跑,查询 T-1(前一天)。
# 产出 data.json:
# overall/cn/international : 每天一行,持续叠加
# pkg_midas / pkg_ms : 每个pkg按天的revenue,保留14天(前端算DoD)
# pkg_midas / pkg_ms : {dt:{pkg:{account:rev}}} 保留14天(前端按模式聚合/算DoD)
# cust_daily / cust_detail : 客户分类,保留14天
# ============================================================
set -euo pipefail
@@ -180,17 +180,18 @@ print(f' superset T-1行={len(sup_prev)} (全部{len(sup)}) ; report行={len(re
# ---- 汇总:无_API account revenue (来自Superset attr_platform) ----
sup_acc_rev=defaultdict(float) # account(小写) -> rev
sup_pkg_rev=defaultdict(float) # pkg -> rev (Midas)
sup_pkg_acc=defaultdict(lambda:defaultdict(float)) # pkg -> {account -> rev} (Midas, account=attr_platform)
for r in sup_prev:
acc=norm(r.get('attr_platform'))
rev=float(r.get('revenue(还原前)') or 0)
sup_acc_rev[acc]+=rev
pkg=r.get('pkg name(EN)') or ''
sup_pkg_rev[pkg]+=rev
if rev:
sup_pkg_acc[pkg][r.get('attr_platform') or acc]+=rev
# ---- 汇总:带_API account revenue (来自report, 按account_id映射, 排除18) ----
rep_acc_rev=defaultdict(float) # _API名(小写) -> rev
rep_pkg_rev=defaultdict(float) # pkg -> rev (MS, 排除account18)
rep_pkg_acc=defaultdict(lambda:defaultdict(float)) # pkg -> {account -> rev} (MS, 排除account18)
for r in rep:
aid=r.get('advertiser_account_id')
rev=float(r.get('revenues') or 0)
@@ -200,7 +201,9 @@ for r in rep:
if name:
rep_acc_rev[norm(name)]+=rev
pkg=r.get('package_name') or ''
rep_pkg_rev[pkg]+=rev
disp = name if name else ('acct_%s'%aid)
if rev:
rep_pkg_acc[pkg][disp]+=rev
# 统一取某 account 收入:无_API走superset,带_API走report
def acc_rev(acc):
@@ -225,9 +228,9 @@ intl_row['DSP international']=round(intl_total,2)
overall_row={'dt':PREV_DATE,'DSP total revenue':round(cn_total+intl_total,2),
'DSP CN revenue':round(cn_total,2),'DSP international':round(intl_total,2)}
# ============ 2.1 PKG-Midas / 2.2 PKG-MS (当天pkg->rev) ============
pkg_midas={pkg:round(v,4) for pkg,v in sup_pkg_rev.items() if v} # Midas: superset
pkg_ms={pkg:round(v,4) for pkg,v in rep_pkg_rev.items() if v} # MS: report(已排除18)
# ============ 2.1 PKG-Midas / 2.2 PKG-MS (当天 pkg -> {account: rev}) ============
pkg_midas={pkg:{a:round(v,4) for a,v in accs.items() if v} for pkg,accs in sup_pkg_acc.items() if accs}
pkg_ms={pkg:{a:round(v,4) for a,v in accs.items() if v} for pkg,accs in rep_pkg_acc.items() if accs}
# ============ 3.x 客户分类 (当天) ============
# 每个 account 的 T-1 收入