Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4053bb3fa8 |
@@ -194,7 +194,16 @@ type AdRevenueDetailRow = AdRevenueRecord & { source_adn?: string | null };
|
||||
|
||||
// 展开行(逐条事件展开)- 该条的发奖复算明细(还原金币审计的 eCPM/因子1/份数/LT/因子2 等列)
|
||||
const DETAIL_COLUMNS: ColumnsType<AdRevenueDetailRow> = [
|
||||
{ title: '来源广告网络', dataIndex: 'source_adn', width: 110, render: (value: string | null) => value || '-' },
|
||||
{
|
||||
title: '来源广告网络',
|
||||
dataIndex: 'source_adn',
|
||||
width: 110,
|
||||
render: (value: string | null) => value?.trim() || (
|
||||
<Tooltip title="该历史记录没有可唯一确认的 SDK 广告来源,未猜测填充。">
|
||||
<span>未上报</span>
|
||||
</Tooltip>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: 'eCPM(元)',
|
||||
dataIndex: 'ecpm',
|
||||
@@ -1102,7 +1111,11 @@ export default function AdRevenueReportPage() {
|
||||
style={{ marginTop: 8 }}
|
||||
rowKey="record_id"
|
||||
columns={DETAIL_COLUMNS}
|
||||
dataSource={r.sub_rewards.map((detail) => ({ ...detail, source_adn: r.adn }))}
|
||||
dataSource={r.sub_rewards.map((detail) => ({
|
||||
...detail,
|
||||
// 一次比价/领券可能由不同 ADN 连续填充,优先显示本条发奖记录的来源。
|
||||
source_adn: detail.adn ?? r.adn,
|
||||
}))}
|
||||
pagination={false}
|
||||
size="small"
|
||||
scroll={{ x: 900 }}
|
||||
@@ -1118,7 +1131,10 @@ export default function AdRevenueReportPage() {
|
||||
style={{ marginTop: 8 }}
|
||||
rowKey="record_id"
|
||||
columns={DETAIL_COLUMNS}
|
||||
dataSource={[{ ...r.reward_detail, source_adn: r.adn }]}
|
||||
dataSource={[{
|
||||
...r.reward_detail,
|
||||
source_adn: r.reward_detail.adn ?? r.adn,
|
||||
}]}
|
||||
pagination={false}
|
||||
size="small"
|
||||
scroll={{ x: 900 }}
|
||||
|
||||
@@ -122,31 +122,13 @@ const renderReview = (f: Feedback) => {
|
||||
|
||||
// 机型 / OS版本(提交反馈时的端环境;改版前历史反馈无 → -)
|
||||
const renderDeviceOs = (f: Feedback) => {
|
||||
const modelName = f.device_model_name || f.device_model;
|
||||
const rawModel =
|
||||
f.device_model_name && f.device_model_name !== f.device_model ? f.device_model : null;
|
||||
const romHasVersion = /\d/.test(f.rom_name || '');
|
||||
const vendorOs = [
|
||||
f.rom_name,
|
||||
f.rom_version && !romHasVersion ? f.rom_version : null,
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(' ');
|
||||
const os = [
|
||||
vendorOs || null,
|
||||
f.android_version ? `Android ${f.android_version}` : null,
|
||||
]
|
||||
const os = [f.android_version ? `Android ${f.android_version}` : null, f.rom_name]
|
||||
.filter(Boolean)
|
||||
.join(' · ');
|
||||
if (!modelName && !os) return <Text type="secondary">-</Text>;
|
||||
if (!f.device_model && !os) return <Text type="secondary">-</Text>;
|
||||
return (
|
||||
<Space direction="vertical" size={0}>
|
||||
<Text>{modelName || '-'}</Text>
|
||||
{rawModel ? (
|
||||
<Text type="secondary" style={{ fontSize: 12 }}>
|
||||
{[f.device_manufacturer, rawModel].filter(Boolean).join(' · ')}
|
||||
</Text>
|
||||
) : null}
|
||||
<Text>{f.device_model || '-'}</Text>
|
||||
{os ? (
|
||||
<Text type="secondary" style={{ fontSize: 12 }}>
|
||||
{os}
|
||||
@@ -370,7 +352,7 @@ export default function FeedbacksPage() {
|
||||
{
|
||||
title: '机型 / OS版本',
|
||||
key: 'device',
|
||||
width: 180,
|
||||
width: 150,
|
||||
render: (_: unknown, f: Feedback) => renderDeviceOs(f),
|
||||
},
|
||||
{
|
||||
|
||||
+2
-3
@@ -377,10 +377,7 @@ export interface Feedback {
|
||||
// 提交端环境快照:提交版本号 / 机型OS版本;改版前的历史反馈为 null
|
||||
app_version: string | null;
|
||||
device_model: string | null;
|
||||
device_model_name: string | null;
|
||||
device_manufacturer: string | null;
|
||||
rom_name: string | null;
|
||||
rom_version: number | null;
|
||||
android_version: string | null;
|
||||
// 联表瞬态:展示完整手机号(点手机号查该用户全部反馈)
|
||||
phone: string | null;
|
||||
@@ -545,6 +542,8 @@ export interface AdRevenueRecord {
|
||||
expected_coin: number;
|
||||
actual_coin: number;
|
||||
matched: boolean;
|
||||
adn: string | null; // 本条发奖对应的实际填充 ADN
|
||||
slot_id: string | null; // 本条发奖对应的底层 mediation rit
|
||||
}
|
||||
|
||||
// 广告收益报表:按日期汇总的一天(按天趋势图用;全量,不受分页影响)
|
||||
|
||||
Reference in New Issue
Block a user