public function ad_stat_by_date($ymd, $monthly) { $value = array(); if ($monthly) { $start = $ymd . '-01'; $end = date('Y-m-d', mktime(0, 0, 0, substr($ymd, 5, 2) + 1, 0, substr($ymd, 0, 4))); } else { $start = $ymd; $end = $ymd; } $transferStat_service = new TransferStat(); $transfer_res = $transferStat_service->get_ad_transfer_by_ads($start, $end, ""); $happy_lock_transfer = $transferStat_service->get_all_ad_happy_lock_transfer($start, $end); $click = $transferStat_service->get_offer_click_total($start, $end); $adminStat_service = new AdminTaskStat(); $task = $adminStat_service->get_ad_task_stat($start, $end); $limited_task = $adminStat_service->get_ad_limited_task_stat($start, $end); $es_task = $adminStat_service->get_all_ad_happy_lock_task($start, $end); $es_limited_task = $adminStat_service->get_all_ad_happy_lock_limited_task($start, $end); $nativeStat_service = new NativeStat(); $native = $nativeStat_service->get_native_stat_ad($start, $end); $native_transfer = $nativeStat_service->get_native_transfer_stat_by_ad($start, $end); $callback = $transferStat_service->get_income_stat_ios($start, $end); $install = $transferStat_service->get_offer_install_stat_ad($start, $end); $happy_lock_task = array(); foreach ($es_task['aggregations']['all_ad_ids']['buckets'] as $ad_task) { $happy_lock_task[$ad_task['key']] = $ad_task['sum_rmb']['value']; } $happy_lock_limited_task = array(); foreach ($es_limited_task['aggregations']['all_ad_ids']['buckets'] as $ad_task) { $happy_lock_limited_task[$ad_task['key']] = $ad_task['sum_rmb']['value']; } $ad_ids = array_unique(array_merge(array_keys((array) $transfer_res), array_keys((array) $click), array_keys((array) $task), array_keys((array) $limited_task), array_keys((array) $install), array_keys((array) $native), array_keys((array) $native_transfer), array_keys((array) $callback))); foreach ($ad_ids as $ad_id) { $stat = array('id' => $ad_id, 'rmb1' => round((isset($transfer_res[$ad_id]) ? ($transfer_res[$ad_id]['rmb'] - $happy_lock_transfer[$ad_id]['rmb'] / 2) / 100 : 0) + ($task[$ad_id]['rmb'] + $limited_task[$ad_id]['rmb'] - $happy_lock_task[$ad_id] / 2 - $happy_lock_limited_task[$ad_id] / 2) / 100, 2), 'device1' => (int) $transfer_res[$ad_id]['transfer'], 'native' => (int) $native[$ad_id], 'native_transfer' => (int) $native_transfer[$ad_id], 'task_num' => $task[$ad_id]['num'] + $limited_task[$ad_id]['num'], 'task_rmb' => ($task[$ad_id]['rmb'] + $limited_task[$ad_id]['rmb'] - $happy_lock_task[$ad_id] / 2 - $happy_lock_limited_task[$ad_id] / 2) / 100, 'task_ready' => $task[$ad_id]['ready'], 'click' => $click[$ad_id], 'install' => $install[$ad_id], 'callback' => $callback[$ad_id]); $value[$ad_id] = $stat; } return $value; }
private function get_total_data($start, $end, $me) { $ad_service = new AD(); $filters = array('salesman' => $me); $ad_info = $ad_service->get_all_basic_ad_info($filters); $adids = array_keys((array) $ad_info); $transfer_service = new TransferStat(); $transfer = $transfer_service->get_ad_transfer_by_ads($start, $end, ''); $quote_service = new Quote(); $adquote = $quote_service->get_ad_quote_by_owner($start, $end, $me); $adminTask_service = new AdminTaskStat(); $task = $adminTask_service->get_ad_task_outcome_by_sale($start, $end, $me); // 本月数据*4 + 我的广告 $income_total = 0; $out_total = 0; $stat_total = 0; $cpa_total = 0; foreach ($adids as $adid) { if (!in_array($adid, $adids)) { continue; } $income = (int) $adquote[$adid]['income']; $out = (int) $transfer[$adid]['rmb'] + (int) $task[$adid]; $stat = (int) $transfer[$adid]['transfer']; $cpa = (int) $adquote[$adid]['cpa']; $income_total += $income; $out_total += $out; $stat_total += $stat; $cpa_total += $cpa; } return array($income_total, $out_total, $stat_total, $cpa_total); }