@@ -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 < Alert type = "error" showIcon message = { overviewError ? ? '数据大盘加载失败' } / > ;
}
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() {
< h3 > 变 现 < / h3 >
< span >
{ cpsAvailable
? ( adError ? '广告收益接口当前后端不可用,美团 CPS 已接入' : '广告收益与美团 CPS 已接入' )
? ( adError ? '广告收益接口当前后端不可用,美团/JD CPS 已接入' : '广告收益与美团/JD CPS 已接入' )
: ( adError ? '广告收益接口当前后端不可用,订单/佣金数据待接' : '广告收益已接入,订单/佣金数据待接' ) }
< / span >
< / div >
@@ -620,7 +627,7 @@ export default function DashboardPage() {
< RevenueCard
title = "CPS 收入"
value = { cpsRevenueText }
meta = { [ { label : '来源' , value : cpsAvailable ? '美团已接, 淘宝/京东 暂空' : '订单/佣金待接' } ] }
meta = { [ { label : '来源' , value : cpsAvailable ? '美团、京东 已接; 淘宝暂空' : '订单/佣金待接' } ] }
/ >
< RevenueCard
title = "ARPU"
@@ -634,19 +641,19 @@ export default function DashboardPage() {
< div className = "sub-label cps-sub-label" >
< span > CPS 收 益 < / span >
< button type = "button" onClick = { syncMeituanCps } disabled = { cpsSyncing } >
{ cpsSyncing ? '刷新中' : '刷新美团 订单' }
< button type = "button" onClick = { syncCpsOrders } disabled = { cpsSyncing } >
{ cpsSyncing ? '刷新中' : '刷新 CPS 订单' }
< / button >
< / div >
< div className = "grid g4" >
< RevenueCard
title = "总 CPS 收益"
value = { cpsRevenueText }
meta = { [ { label : '来源' , value : cpsAvailable ? '美团订单佣金,淘宝/京东 暂空' : '订单/佣金待接' } ] }
meta = { [ { label : '来源' , value : cpsAvailable ? '美团+京东 订单佣金,淘宝暂空' : '订单/佣金待接' } ] }
/ >
< RevenueCard
title = "美团 CPS"
value = { cpsRevenueText }
value = { meituanCpsRevenueText }
meta = { [
{ label : '订单量' , value : cpsAvailable ? fmtInt ( data ? . cps . meituan_order_count ) : '待订单数据' } ,
{
@@ -659,7 +666,15 @@ export default function DashboardPage() {
accent = "yellow"
/ >
< RevenueCard title = "淘宝 CPS" value = "--" meta = { [ { label : '状态' , value : '后续接入后填写' } ] } accent = "red" / >
< RevenueCard title = "京东 CPS" value = "--" meta = { [ { label : '状态' , value : '后续接入后填写' } ] } accent = "red" / >
< RevenueCard
title = "京东 CPS"
value = { jdCpsRevenueText }
meta = { [
{ label : '有效订单' , value : cpsAvailable ? fmtInt ( data ? . cps . jd_order_count ) : '待订单数据' } ,
{ label : '无效订单' , value : cpsAvailable ? fmtInt ( data ? . cps . jd_invalid_count ? ? 0 ) : '待订单数据' } ,
] }
accent = "red"
/ >
< / div >
< div className = "sub-label" > 广 告 收 益 < / div >