Example #1
0
 /**
  * "ASP:API"による媒体リスト取得処理実行
  */
 public static function executeForGetAutoBaitaiListByApi(&$core, $mediaCompanyId)
 {
     require_once ABS_ASP_LIB . "baitai_info/GetAutoBaitaiListByApi.php";
     $baitaiObj = new GetAutoBaitaiListByApi($core);
     return $baitaiObj->getBaitaiResultListFromAsp($mediaCompanyId);
 }
Example #2
0
 /**
  * 媒体リスト追加処理メソッド
  */
 public function addBaitaiList($select_date = null)
 {
     // 自動媒体情報取得ASPリスト取得
     $mediaCompanyIdArray = AutoBaitaiInfo::$mediaCompanyIdArray;
     $autoBaitaiResultListGroupByAsp = array();
     $errorAutoBaitaiListGroupByAsp = array();
     $csvData = array();
     // 自動媒体情報取得ASPの成果リスト取得
     foreach ($mediaCompanyIdArray as $key => $mediaCompanyId) {
         $getBaitaiListObj = new GetAutoBaitaiListByApi($this->_core);
         list($autoBaitaiResultList, $errorAutoBaitaiList) = $getBaitaiListObj->getBaitaiResultListFromAsp($mediaCompanyId, $select_date);
         $autoBaitaiResultListGroupByAsp[$mediaCompanyId] = $autoBaitaiResultList;
         $errorAutoBaitaiListGroupByAsp[$mediaCompanyId] = $errorAutoBaitaiList;
     }
     //Soapで取得した値
     //正常データ
     $log_autoBaitaiResultListGroupByAsp = print_r($autoBaitaiResultListGroupByAsp, true);
     tmp_isogai_outpug_AddAutoBaitaiList_log(" 正常成果リスト:autoBaitaiResultListGroupByAsp=" . $log_autoBaitaiResultListGroupByAsp);
     //エラーデータ
     $log_errorAutoBaitaiListGroupByAsp = print_r($errorAutoBaitaiListGroupByAsp, true);
     tmp_isogai_outpug_AddAutoBaitaiList_log(" エラー成果リスト:errorAutoBaitaiListGroupByAsp=" . $log_errorAutoBaitaiListGroupByAsp);
     // 表示用
     $today = date('Y/m/d');
     $yesterday = date('Y-m-d', strtotime('-1 day', strtotime($today)));
     if (strlen($select_date) == 0) {
         $target_date = $yesterday;
     } else {
         $target_date = $select_date;
     }
     // メール件名
     $subject = "媒体情報反映結果({$today})";
     // メール文面を設定
     $mail_message .= "***処理案件***************************************************" . "\r\n";
     // 自動媒体情報取得済み成果レコードを取得
     foreach ($autoBaitaiResultListGroupByAsp as $mediaCompanyId => $autoBaitaiResultList) {
         // ASPライブラリ:クラス生成
         $aspLib =& $this->getAspLib($mediaCompanyId);
         if (empty($aspLib) == false) {
             // 照合データを取得
             $autoBaitaiResultList = $this->getBaitaiResultCollectionListByDate($target_date, $mediaCompanyId, $autoBaitaiResultList, $errorAutoBaitaiListGroupByAsp[$mediaCompanyId]);
             // 加工済みデータ
             $log_autoBaitaiResultList = print_r($autoBaitaiResultList, true);
             tmp_isogai_outpug_AddAutoBaitaiList_log(" 照合データ: autoBaitaiResultList=" . $log_autoBaitaiResultList);
             // メディア企業情報取得
             $mediaCompanyInfo = $this->getMediaCompanyInfoByMediaCompanyId($mediaCompanyId);
             // メディア企業名
             $mediaCompanyName = $mediaCompanyInfo['media_company_name'];
             // 案件別自動媒体情報リスト整理
             $autoBaitaiListGroupByAnken =& $this->getAutoBaitaiListGroupByAnken($autoBaitaiResultList);
             //案件別自動媒体情報リスト整理
             //$log_autoBaitaiListGroupByAnken = print_r($autoBaitaiListGroupByAnken,true);
             //tmp_isogai_outpug_AddAutoBaitaiList_log(" 案件別自動媒体情報リスト整理 : autoBaitaiListGroupByAnken=".$log_autoBaitaiListGroupByAnken);
             // 案件ごと、媒体情報リストを追加。
             foreach ($autoBaitaiListGroupByAnken as $key => $list) {
                 // 媒体情報リスト追加、追加結果を反映します。
                 $baitaiList = $this->insertBaitaiList($list['campaign_code'], $list['list'], $aspLib);
                 $autoBaitaiListGroupByAnken[$key]['list'] = $baitaiList;
             }
             // 案件別自動媒体情報取得結果取得
             $autoBaitaiResultListGroupByAnken =& $this->getAutoBaitaiResultListGroupByAnken($autoBaitaiListGroupByAnken, $aspLib);
             // メール内容の設定
             $mail_message .= "【" . $mediaCompanyName . "】" . "\r\n";
             // CSV内容の設定
             // メディア企業名
             $csvData[] = "【" . $mediaCompanyName . "】";
             $resultListTitle = $aspLib->autoBaitaiAspDetailResultListTitle;
             $resultList = $aspLib->autoBaitaiAspDetailResultListKey;
             $pad_length = 60;
             foreach ($autoBaitaiResultListGroupByAnken as $key => $list) {
                 $ankenNameStr = "[" . $list['anken_id'] . "]" . $list['anken_name'];
                 // メール内容の設定
                 $diff = (strlen($ankenNameStr) - mb_strlen($ankenNameStr, 'UTF-8')) / 2;
                 $mail_message .= str_pad($ankenNameStr, $pad_length + $diff, " ", STR_PAD_RIGHT);
                 $mail_message .= "対象" . $list['all_count'] . "件、";
                 $mail_message .= "正常" . $list['correct_count'] . "件、";
                 $mail_message .= "エラー" . $list['error_count'] . "件";
                 $mail_message .= "\r\n";
                 // CSVデータの設定
                 $csvData[] = "";
                 $csvData[] = $ankenNameStr;
                 $csvData[] = "";
                 // カラムタイトル
                 $csvData[] = $resultListTitle;
                 // CSVデータ
                 if (is_array($list['list'])) {
                     foreach ($list['list'] as $autoBaitaiResult) {
                         $csvFields = array();
                         foreach (explode(',', $resultList) as $v) {
                             $csvFields[] .= $autoBaitaiResult[$v];
                         }
                         $csvData[] = implode(',', $csvFields);
                     }
                 }
             }
             $csvData[] = "";
             foreach ($autoBaitaiResultListGroupByAnken as $key => $list) {
                 $ankenNameStr = "[" . $list['anken_id'] . "]" . $list['anken_name'];
             }
             $mail_message .= "\r\n";
         }
     }
     // ファイル出力
     $path = $this->outputCsvFile($csvData);
     // メール文面を設定
     // 処理結果をメールで送信する
     $this->sendMailTo($mail_message, $subject, $path);
     // ファイル削除
     $this->deleteCsvFile();
 }