Example #1
0
/**
 * ALLADiN操作ログをテーブルからCSV出力/圧縮
 * @param $core object
 * @param $logTableList array
 * @param $monthsAgo int
 * return ログデータ配列
 */
function outputLogData(&$core, $logTableList, $monthsAgo)
{
    $db =& $core->getDB();
    // ログ抽出期間
    $outputDateYm = date('Ym', mktime('0', '0', '0', date('m'), 0, date('Y')));
    $outputSpanFrom = getMonthSpanFrom($monthsAgo);
    $outputSpanTo = getMonthSpanTo($monthsAgo);
    // 一次ディレクトリ作成
    $dirName = "history_{$outputDateYm}";
    $outputDirName = OUTPUT_DIR_BASE_NAME . $dirName;
    $command = "mkdir {$outputDirName}";
    exec($command);
    // テーブル毎にCSVファイル作成
    foreach ($logTableList as $tableName) {
        $logDataList = getLogDataList($db, $tableName, $outputSpanFrom, $outputSpanTo);
        if (count($logDataList) != 0) {
            $columnNameList = getColumnNameList($db, $tableName);
            outputCsvFile($outputDirName, $columnNameList, $logDataList, $tableName, $outputDateYm);
        }
    }
    $fileCount = glob($outputDirName . '/*');
    if (count($fileCount) != 0) {
        // 圧縮
        createTarGz($dirName, $outputDateYm);
    }
    // 一次ディレクトリ削除
    $log =& $core->getLogger('output_history_log:outputLogData');
    deleteDir($outputDirName);
    $log->info("deleteDir.{$outputDirName}");
}
Example #2
0
                $autoAffirmSeikaList = $autoAffirmSeikaListGroupByAnken[$ankenId];
                // CSVデータ
                foreach ($autoAffirmSeikaList as $autoAffirmSeika) {
                    $csvFields = array();
                    foreach (explode(',', $resultList) as $k => $v) {
                        $csvFields[] .= $autoAffirmSeika[$v];
                    }
                    $csvData[] = implode(',', $csvFields);
                }
            }
            $csvData[] = "";
            $mail_message .= "\r\n";
        }
    }
    // ファイル出力
    $path = outputCsvFile($csvData);
    // メール文面を設定
    // 処理結果をメールで送信する
    sendMailTo($mail_message, $subject, $path);
    // ファイル削除
    deleteCsvFile();
} catch (Exception $e) {
    // エラーメッセージをメールで送信
    // メール件名
    $subject = "成果反映処理結果:エラー";
    // メール文面を設定
    $message = __FUNCTION__ . "\n";
    $message .= $e->toText();
    sendMailTo($message, $subject);
}
/**