| | |
| | | }
|
| | | $StartYMDTime = 0; // 需要导出的起始日期时间戳
|
| | | if (isset($retInfo)) {
|
| | | // \Logging\LogInfo("DailyReport retInfo:" . print_r($retInfo, true));
|
| | | $lastActiveYMD = $retInfo["YMD"]; // 最后一次导出的报表日期
|
| | | $StartYMDTime = strtotime("+1 day", strtotime($lastActiveYMD)); // 从+1天开始导出
|
| | | $lastYMD = $retInfo["YMD"]; // 最后一次导出的报表日期
|
| | | $StartYMDTime = strtotime("+1 day", strtotime($lastYMD)); // 从+1天开始导出
|
| | | \Logging\LogInfo("ExportDailyReport Channel:" . $Channel . " lastYMD:" . $lastYMD . " StartYMDTime:" . date("Y-m-d", $StartYMDTime));
|
| | | } else {
|
| | | // 取出最早的首登日期
|
| | | if (!\DBOper\FindOneSort("AccountFirstLogin", array("Channel" => $Channel), $retInfo, array("CreateYMD" => 1), array("CreateYMD" => 1))) {
|
| | | return;
|
| | | }
|
| | | if (!isset($retInfo)) {
|
| | | // \Logging\LogInfo("AccountFirstLogin 还没有数据,不用导出! Channel:" . $Channel);
|
| | | \Logging\LogInfo("ExportDailyReport AccountFirstLogin 还没有数据,不用导出! Channel:" . $Channel);
|
| | | return;
|
| | | }
|
| | | // \Logging\LogInfo("AccountFirstLogin retInfo:" . print_r($retInfo, true));
|
| | | $StartYMDTime = strtotime($retInfo["CreateYMD"]);
|
| | | \Logging\LogInfo("ExportDailyReport Channel:" . $Channel . " AccountFirstLogin StartYMDTime:" . date("Y-m-d", $StartYMDTime));
|
| | | }
|
| | | if (!$StartYMDTime) {
|
| | | return;
|
| | |
| | |
|
| | | $EndYMDTime = strtotime("-1 day", strtotime(date("Y-m-d"))); // 只导出到昨天
|
| | | $diffSeconds = $EndYMDTime - $StartYMDTime;
|
| | | $diffDays = floor($diffSeconds / (3600 * 24));
|
| | | $diffDays = floor($diffSeconds / (3600 * 24)) + 1;
|
| | | if ($diffDays <= 0) {
|
| | | \Logging\LogInfo("【 " . $Channel . " 】不需要导出每日报表! StartYMDTime:" . date("Y-m-d", $StartYMDTime));
|
| | | return;
|
| | |
| | | /**检查并导出首登/首充留存每日报表 */
|
| | | function CheckAndExportFirstKeepReport($Channel)
|
| | | {
|
| | | if (!\DBOper\FindOne("ServerEvent", array("Key" => "AccountFirstKeepReportYMD"), $ret, null, false)) {
|
| | | $eventKey = "FirstKeepReportYMD_" . $Channel;
|
| | | if (!\DBOper\FindOne("ServerEvent", array("Key" => $eventKey), $ret, null, false)) {
|
| | | return;
|
| | | }
|
| | | $reportYMD = $ret["Value"] ? $ret["Value"] : ""; // 最后一次成功导出报表日期
|
| | |
| | | $StartYMDTime = 0; // 需要导出的起始日期时间戳
|
| | | if ($reportYMD) {
|
| | | $StartYMDTime = strtotime("+1 day", strtotime($reportYMD)); // 从+1天开始导出
|
| | | \Logging\LogInfo("ExportFirstKeepReport Channel:" . $Channel . " reportYMD:" . $reportYMD . " StartYMDTime:" . date("Y-m-d", $StartYMDTime));
|
| | | } else {
|
| | | // 取出最早的首登日期
|
| | | if (!\DBOper\FindOneSort("AccountFirstLogin", array("Channel" => $Channel), $retInfo, array("CreateYMD" => 1), array("CreateYMD" => 1))) {
|
| | | return;
|
| | | }
|
| | | if (!isset($retInfo)) {
|
| | | \Logging\LogInfo("ExportFirstKeepReport AccountFirstLogin 还没有数据,不用导出! Channel:" . $Channel);
|
| | | return;
|
| | | }
|
| | | $StartYMDTime = strtotime($retInfo["CreateYMD"]);
|
| | | \Logging\LogInfo("ExportFirstKeepReport Channel:" . $Channel . " AccountFirstLogin StartYMDTime:" . date("Y-m-d", $StartYMDTime));
|
| | | }
|
| | | if (!$StartYMDTime) {
|
| | | return;
|
| | |
| | | $StartYMD = date("Y-m-d", $StartYMDTime);
|
| | | $EndYMDTime = strtotime("-1 day", strtotime(date("Y-m-d"))); // 只导出到昨天
|
| | | $diffSeconds = $EndYMDTime - $StartYMDTime;
|
| | | $diffDays = floor($diffSeconds / (3600 * 24));
|
| | | $diffDays = floor($diffSeconds / (3600 * 24)) + 1;
|
| | | if ($diffDays <= 0) {
|
| | | \Logging\LogInfo("【 " . $Channel . " 】不需要导出首登每日报表! StartYMD:" . $StartYMD);
|
| | | return;
|
| | |
| | | }
|
| | |
|
| | | // 全部处理完毕才更新
|
| | | \DBOper\Update("ServerEvent", array("Key" => "AccountFirstKeepReportYMD"), array("Value" => $EndYMD), false, true);
|
| | | \DBOper\Update("ServerEvent", array("Key" => $eventKey), array("Value" => $EndYMD), false, true);
|
| | | \Logging\LogInfo("==============================================");
|
| | | }
|
| | |
|
| | |
| | | ksort($fistPayReportArray);
|
| | | return;
|
| | | }
|
| | |
|
| | | // function test()
|
| | | // {
|
| | | // echo "run test" . "<br/>";
|
| | | // \Logging\CreateLogging("test.report.php");
|
| | | // $AllChannel = \CommFunc\GetAllChannel();
|
| | | // for ($i = 0; $i < count($AllChannel); $i++) {
|
| | | // $Channel = $AllChannel[$i];
|
| | | // echo "run Channel" . $Channel . "<br/>";
|
| | | // CheckAndExportDailyReport($Channel);
|
| | | // CheckAndExportFirstKeepReport($Channel);
|
| | | // }
|
| | | // echo "run test end" . "<br/>";
|
| | | // }
|
| | | // test(); |