diff --git a/app/service/AdsInsightService.php b/app/service/AdsInsightService.php index 0c5269d..d2c7809 100644 --- a/app/service/AdsInsightService.php +++ b/app/service/AdsInsightService.php @@ -203,7 +203,8 @@ class AdsInsightService $query = BpsAdSet::alias('s') ->cache(false) // 强制不使用缓存 ->leftJoin('bps.bps_ads_insights d', "s.ad_set_id = d.ad_set_id AND s.platform_type = d.platform AND {$dateCondition}") - ->field('s.ad_set_id, s.status as status, s.name, s.account_id,s.platform_type, + ->leftJoin('bps.bps_ads_campaign c', 's.campaign_id = c.campaign_id') // 联接广告系列表 + ->field('s.ad_set_id, s.status as status, s.name, s.account_id,s.platform_type,c.name as campaign_name, COALESCE(SUM(d.assisted_purchases), 0) as assisted_purchases, COALESCE(SUM(d.last_clicked_purchases), 0) as last_clicked_purchases, COALESCE(SUM(d.clicks), 0) as clicks, @@ -216,7 +217,7 @@ class AdsInsightService COALESCE(SUM(d.revenue), 0) as revenue, COALESCE(SUM(d.total_cost), 0) as total_cost, -1 as conversion_rate, -1 as roas, -1 as ctr,-1 as net_profit,-1 as net_profit_margin,-1 as net_profit_on_ad_spend') - ->group('s.ad_set_id, s.status, s.account_id, s.name,s.platform_type') + ->group('s.ad_set_id, s.status, s.account_id, s.name,s.platform_type,c.name') ->where('s.account_id', 'in', $customerIds); // 添加 customerIds 条件 if ($status !== 0) { $query->where('s.status', '=', $status); @@ -278,6 +279,7 @@ class AdsInsightService 'platform_type' => $item['platform_type'], 'account_id' => $item['account_id'], // 映射为 customer_id 'name' => $item['name'] ?: '-', // 若 name 为空则显示 '-' + 'campaign_name' => $item['campaign_name'] ?: '-', // 若 name 为空则显示 '-' 'status' => $item['status'], 'assisted_purchases' => $item['assisted_purchases'], 'last_clicked_purchases' => $item['last_clicked_purchases'], @@ -487,7 +489,7 @@ class AdsInsightService $query = ThirdUser::alias('u') ->cache(false) // 强制不使用缓存 ->leftJoin('bps.bps_third_user_advertiser a', "u.id = a.doc_") - ->field('u.id as user_id,u.third_type as platform_type,a.advertiser_name, + ->field('u.id as user_id,u.third_type,a.advertiser_name, COALESCE(SUM(d.assisted_purchases), 0) as assisted_purchases, COALESCE(SUM(d.last_clicked_purchases), 0) as last_clicked_purchases, @@ -579,7 +581,7 @@ class AdsInsightService if (!isset($aggregatedUsers[$thirdUserId])) { $aggregatedUsers[$thirdUserId] = [ 'user_id' => $item['user_id'], - 'third_type' => $item['third_type'], + 'platform_type' => self::getPlatformType($item['third_type']), 'advertiser_name' => $item['advertiser_name'], 'assisted_purchases' => 0, 'last_clicked_purchases' => 0, @@ -1137,4 +1139,16 @@ class AdsInsightService // 获取年-月格式 return $dateObj->format('Y-m'); } + + public static function getPlatformType($thirdType) + { + $platformMapping = [ + 'facebook' => 1, + 'google' => 2, + 'tiktok' => 3, + ]; + + return $platformMapping[$thirdType] ?? null; // 如果不存在的第三方类型,返回 null + } + }