From 464d8dd1831d828a0f83713c3c507574ddc09fb7 Mon Sep 17 00:00:00 2001 From: lowmaster-chen <1119780489@qq.com> Date: Tue, 30 Jun 2026 10:23:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A1=A5=E9=BD=90=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=A7=E7=9B=98=E4=BA=AC=E4=B8=9C=20CPS=20=E4=B8=8E=E9=87=91?= =?UTF-8?q?=E5=B8=81=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改了什么:数据大盘总收入/CPS 收入纳入京东 CPS;京东 CPS 卡片展示有效/无效订单;刷新按钮改为同步全部 CPS 订单;ARPU 展示产品确认的昨日活跃用户分母;激励视频金币展示真实值并标注已计入领券奖励。 验证方式:npx tsc --noEmit;浏览器验证 /dashboard 已显示京东 CPS、ARPU 分母和激励视频金币。 --- src/app/(main)/dashboard/page.tsx | 49 ++++++++++++++++++++----------- src/lib/types.ts | 5 ++++ 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/app/(main)/dashboard/page.tsx b/src/app/(main)/dashboard/page.tsx index 3fe8427..c2d03de 100644 --- a/src/app/(main)/dashboard/page.tsx +++ b/src/app/(main)/dashboard/page.tsx @@ -381,19 +381,25 @@ export default function DashboardPage() { const regularTaskCoinTotal = periodData?.coins.regular_task_coin_total ?? ((signinCoinTotal ?? 0) + (signinBoostCoinTotal ?? 0) + (taskCoinTotal ?? 0)); - const cpsCommissionCents = data?.cps.meituan_commission_cents; const cpsAvailable = data?.cps.available === true; + const meituanCpsCommissionCents = data?.cps.meituan_commission_cents; + const jdCpsCommissionCents = data?.cps.jd_commission_cents; + const totalCpsCommissionCents = cpsAvailable + ? (meituanCpsCommissionCents ?? 0) + (jdCpsCommissionCents ?? 0) + : null; const totalRevenueYuan = - adReport?.total_revenue_yuan == null && (!cpsAvailable || cpsCommissionCents == null) + adReport?.total_revenue_yuan == null && totalCpsCommissionCents == null ? null - : (adReport?.total_revenue_yuan ?? 0) + (cpsAvailable ? (cpsCommissionCents ?? 0) / 100 : 0); + : (adReport?.total_revenue_yuan ?? 0) + ((totalCpsCommissionCents ?? 0) / 100); const yesterdayTrendPoint = periodData?.trend?.[periodData.trend.length - 1]; const yesterdayActiveUsers = yesterdayTrendPoint?.active_users ?? null; const arpuYuan = totalRevenueYuan == null || yesterdayActiveUsers == null || yesterdayActiveUsers <= 0 ? null : totalRevenueYuan / yesterdayActiveUsers; - const cpsRevenueText = cpsAvailable ? fmtCents(cpsCommissionCents) : '--'; + const cpsRevenueText = cpsAvailable ? fmtCents(totalCpsCommissionCents) : '--'; + const meituanCpsRevenueText = cpsAvailable ? fmtCents(meituanCpsCommissionCents) : '--'; + const jdCpsRevenueText = cpsAvailable ? fmtCents(jdCpsCommissionCents) : '--'; const cpsHitRate = !cpsAvailable || data?.cps.meituan_hit_rate == null ? '--' : pct(data.cps.meituan_hit_rate); const retentionValue = periodData?.users.retention_rate == null @@ -464,7 +470,7 @@ export default function DashboardPage() { return ; } - const syncMeituanCps = async () => { + const syncCpsOrders = async () => { setCpsSyncing(true); try { const resp = await api.post<{ @@ -476,12 +482,13 @@ export default function DashboardPage() { params: { date_from: range.start.format('YYYY-MM-DD'), date_to: range.end.format('YYYY-MM-DD'), + platform: 'all', }, }); message.success(`已同步 ${resp.data.fetched} 单`); setRefreshKey((v) => v + 1); } catch { - message.error('美团订单刷新失败'); + message.error('CPS 订单刷新失败'); } finally { setCpsSyncing(false); } @@ -597,7 +604,7 @@ export default function DashboardPage() {

变现

{cpsAvailable - ? (adError ? '广告收益接口当前后端不可用,美团 CPS 已接入' : '广告收益与美团 CPS 已接入') + ? (adError ? '广告收益接口当前后端不可用,美团/京东 CPS 已接入' : '广告收益与美团/京东 CPS 已接入') : (adError ? '广告收益接口当前后端不可用,订单/佣金数据待接' : '广告收益已接入,订单/佣金数据待接')} @@ -620,33 +627,33 @@ export default function DashboardPage() {
CPS 收益 -
- - + +
广告收益
@@ -719,7 +734,7 @@ export default function DashboardPage() { value={fmtInt(comparisonRewardCoinTotal)} status="比价相关发放" /> - +