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;
 }
 public function get_stat_by_apk($id)
 {
     $ad_service = new AD();
     $ad = $ad_service->select_ad_join_source_create_time($id);
     $today = date("Y-m-d");
     $start = empty($_GET['start']) ? $today : $_GET['start'];
     $end = empty($_GET['end']) ? $today : $_GET['end'];
     $transfer_service = new TransferStat();
     $transfer_res = $transfer_service->get_app_transfer_by_ad($start, $end, $id);
     $adminStat_service = new AdminTaskStat();
     $task_stat = $adminStat_service->get_ad_task_stat_by_app($start, $end, $id);
     $limited_task_stat = $adminStat_service->get_ad_limited_task_stat_by_app($start, $end, $id);
     $task = array();
     foreach ($task_stat['aggregations']['all_app_ids']['buckets'] as $task_app) {
         if ($task_app['sum_num']['value'] || $task_app['sum_ready']['value']) {
             $task[$task_app['key']['num']] += $task_app['sum_num']['value'];
             $task[$task_app['key']['ready']] += $task_app['sum_ready']['value'];
             $task[$task_app['key']['rmb']] += $task_app['sum_rmb']['value'];
         }
     }
     $limited_task = array();
     foreach ($limited_task_stat['aggregations']['all_app_ids']['buckets'] as $task_app) {
         if ($task_app['sum_num']['value'] || $task_app['sum_ready']['value']) {
             $limited_task[$task_app['key']['num']] += $task_app['sum_num']['value'];
             $limited_task[$task_app['key']['ready']] += $task_app['sum_ready']['value'];
             $limited_task[$task_app['key']['rmb']] += $task_app['sum_rmb']['value'];
         }
     }
     $appids = implode("','", array_merge(array_keys((array) $transfer_res), array_keys($task), array_keys($limited_task)));
     $appinfo_service = new AdminAppinfo();
     $appinfo = $appinfo_service->get_apps_detail_and_account($appids);
     $result = array_merge($ad, array('start' => $start, 'end' => $end, 'ctime' => substr($ad['create_time'], 5, 5), 'apks' => array(), 'rmb1' => 0, 'device1' => 0, 'ad_app_type' => $ad['ad_app_type'] == 1 ? 'android' : 'ios', 'task_num' => 0, 'task_rmb' => 0, 'task_ready' => 0, 'limited_task_num' => 0, 'limited_task_rmb' => 0, 'limited_task_ready' => 0));
     foreach ($appinfo as $key => $value) {
         $apk = array('appid' => $key, 'appname' => $value['appname'], 'account' => $value['account'], 'userid' => $value['user_id'], 'rmb1' => $key == '5763c2eb596b7a4e511f588d4ee7e50f' || $key == 'c81bc556d5dc52b854f591320d4c951b' ? $transfer_res[$key]['rmb'] / 100 / 2 : $transfer_res[$key]['rmb'] / 100, 'device1' => (int) $transfer_res[$key]['transfer'], 'task_num' => (int) $task[$key]['num'], 'task_ready' => (int) $task[$key]['ready'], 'task_rmb' => $key == '5763c2eb596b7a4e511f588d4ee7e50f' || $key == 'c81bc556d5dc52b854f591320d4c951b' ? $task[$key]['rmb'] / 100 / 2 : $task[$key]['rmb'] / 100, 'task_ratio' => $task[$key]['ready'] ? (int) ($task[$key]['num'] / $task[$key]['ready'] * 100) : 0, 'limited_task_num' => (int) $limited_task[$key]['num'], 'limited_task_ready' => (int) $limited_task[$key]['ready'], 'limited_task_rmb' => $key == '5763c2eb596b7a4e511f588d4ee7e50f' || $key == 'c81bc556d5dc52b854f591320d4c951b' ? $limited_task[$key]['rmb'] / 100 / 2 : $limited_task[$key]['rmb'] / 100, 'limited_task_ratio' => $limited_task[$key]['ready'] ? (int) ($limited_task[$key]['num'] / $limited_task[$key]['ready'] * 100) : 0);
         $result['apks'][] = $apk;
         $result['rmb1'] += $apk['rmb1'];
         $result['device1'] += $apk['device1'];
         $result['task_num'] += $apk['task_num'];
         $result['task_rmb'] += $apk['task_rmb'];
         $result['task_ready'] += $apk['task_ready'];
         $result['limited_task_num'] += $apk['limited_task_num'];
         $result['limited_task_rmb'] += $apk['limited_task_rmb'];
         $result['limited_task_ready'] += $apk['limited_task_ready'];
     }
     $result['task_ratio'] = $result['task_ready'] ? (int) ($result['task_num'] / $result['task_ready'] * 100) : 0;
     $result['limited_task_ratio'] = $result['limited_task_ready'] ? (int) ($result['limited_task_num'] / $result['limited_task_ready'] * 100) : 0;
     $this->output(array('code' => 0, 'msg' => 'msg', 'list' => $result['apks']));
 }
 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);
 }