/** * "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); }
/** * 媒体リスト追加処理メソッド */ 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(); }