From 523ce21ab9de9aaf79a7870e404d0a4682905a85 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 19 十一月 2024 14:36:19 +0800
Subject: [PATCH] 10284 【后台】 优化导出报表逻辑;

---
 serverrep/report.php                |   37 ++++++++++++++++++++++++++++---------
 serverrep/ImportAccountLoginpay.php |    2 +-
 2 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/serverrep/ImportAccountLoginpay.php b/serverrep/ImportAccountLoginpay.php
index 4cac79e..bb66dde 100644
--- a/serverrep/ImportAccountLoginpay.php
+++ b/serverrep/ImportAccountLoginpay.php
@@ -26,7 +26,7 @@
 	$DailyReportOK = \DBOper\Remove("DailyReport", array("Channel" => $Channel));
 	$AccountFirstLoginReportOK = \DBOper\Remove("AccountFirstLoginReport", array("Channel" => $Channel));
 	$AccountFirstPayReportOK = \DBOper\Remove("AccountFirstPayReport", array("Channel" => $Channel));
-	$eventYMDOK = \DBOper\Remove("ServerEvent", array("Key" => "AccountFirstKeepReportYMD"));
+	$eventYMDOK = \DBOper\Remove("ServerEvent", array("Key" => "FirstKeepReportYMD_" . $Channel));
 	logweb("AccountFirstLoginOK:" . $AccountFirstLoginOK);
 	logweb("AccountFirstPayOK:" . $AccountFirstPayOK);
 	logweb("AccountDayActiveOK:" . $AccountDayActiveOK);
diff --git a/serverrep/report.php b/serverrep/report.php
index a4c4b3b..2387b33 100644
--- a/serverrep/report.php
+++ b/serverrep/report.php
@@ -31,20 +31,20 @@
 	}
 	$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;
@@ -52,7 +52,7 @@
 
 	$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;
@@ -153,7 +153,8 @@
 /**妫�鏌ュ苟瀵煎嚭棣栫櫥/棣栧厖鐣欏瓨姣忔棩鎶ヨ〃 */
 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"] : ""; // 鏈�鍚庝竴娆℃垚鍔熷鍑烘姤琛ㄦ棩鏈�
@@ -161,15 +162,18 @@
 	$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;
@@ -178,7 +182,7 @@
 	$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;
@@ -248,7 +252,7 @@
 	}
 
 	// 鍏ㄩ儴澶勭悊瀹屾瘯鎵嶆洿鏂�
-	\DBOper\Update("ServerEvent", array("Key" => "AccountFirstKeepReportYMD"), array("Value" => $EndYMD), false, true);
+	\DBOper\Update("ServerEvent", array("Key" => $eventKey), array("Value" => $EndYMD), false, true);
 	\Logging\LogInfo("==============================================");
 }
 
@@ -783,3 +787,18 @@
 	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();
\ No newline at end of file

--
Gitblit v1.8.0