From 7f92dcba5e30ef90bf6d0c82ff95736015a828c6 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 09 十二月 2025 12:00:45 +0800
Subject: [PATCH] 23 【付费】首充入口未消失 修复全领取后每次上线,都会将本地记录的领取时间向后推一天,导致入口关不掉bug

---
 Main/System/FirstCharge/FirstChargeManager.cs |   43 +++++++++++++------------------------------
 Main/System/Main/HomeWin.cs                   |   10 ++++++----
 2 files changed, 19 insertions(+), 34 deletions(-)

diff --git a/Main/System/FirstCharge/FirstChargeManager.cs b/Main/System/FirstCharge/FirstChargeManager.cs
index 34f8ba8..c647081 100644
--- a/Main/System/FirstCharge/FirstChargeManager.cs
+++ b/Main/System/FirstCharge/FirstChargeManager.cs
@@ -329,19 +329,20 @@
         OnUpdateFirstChargeInfo?.Invoke();
     }
 
+    public string key { get { return StringUtility.Contact("FirstCharge_AllRewardsClaimed_Time_", PlayerDatas.Instance.baseData.PlayerID); } }
+
     /// <summary>
     /// 妫�鏌ユ槸鍚︽墍鏈夐鍏呭鍔遍兘宸查鍙栵紝濡傛灉鏄紝鍒欏皢褰撳墠鏈嶅姟鍣ㄦ椂闂翠繚瀛樺埌鏈湴
     /// </summary>
     private void CheckAndSaveAllRewardsClaimedTime()
     {
-        // 妫�鏌ユ槸鍚︽墍鏈夊鍔遍兘宸查鍙�
-        if (IsAllFirstChargeRewardsClaimed())
-        {
-            // 鐢熸垚涓�涓敮涓�鐨勯敭鏉ュ瓨鍌ㄦ椂闂�
-            string key = $"FirstCharge_AllRewardsClaimed_Time_{PlayerDatas.Instance.baseData.PlayerID}";
-            // 灏嗗綋鍓嶆湇鍔″櫒鏃堕棿淇濆瓨鍒版湰鍦�
-            LocalSave.SetString(key, TimeUtility.ServerNow.Ticks.ToString());
-        }
+        if (LocalSave.HasKey(key))
+            return;
+        // 鎵�鏈夊鍔遍兘宸查鍙�?
+        if (!IsAllFirstChargeRewardsClaimed())
+            return;
+        // 灏嗗綋鍓嶆湇鍔″櫒鏃堕棿淇濆瓨鍒版湰鍦�
+        LocalSave.SetInt(key, TimeUtility.AllSeconds);
     }
     public void UpdateRedPoint()
     {
@@ -461,31 +462,13 @@
     // 妫�鏌ユ槸鍚﹀凡缁忚繃浜嗘墍鏈夊鍔遍鍙栧畬姣曞悗鐨勭浜屽ぉ0鐐�
     public bool IsNextDayAfterAllClaimed()
     {
-        // 鐢熸垚涓�涓敮涓�鐨勯敭鏉ヨ幏鍙栨椂闂�
-        string key = $"FirstCharge_AllRewardsClaimed_Time_{PlayerDatas.Instance.baseData.PlayerID}";
-
-        // 妫�鏌ユ槸鍚﹀瓨鍦ㄨ褰曠殑鏃堕棿鎴�
         if (!LocalSave.HasKey(key))
             return false;
-
-        // 鑾峰彇璁板綍鐨勬椂闂存埑
-        string timeString = LocalSave.GetString(key);
-        if (string.IsNullOrEmpty(timeString))
+        int time = LocalSave.GetInt(key);
+        if (time <= 0)
             return false;
-
-        // 瑙f瀽鏃堕棿鎴�
-        if (!long.TryParse(timeString, out long ticks))
-            return false;
-
-        // 灏嗘椂闂存埑杞崲涓篋ateTime
-        DateTime allRewardsClaimedTime = new DateTime(ticks);
-
-        // 璁$畻绗簩澶�0鐐圭殑鏃堕棿
-        DateTime nextDayStart = allRewardsClaimedTime.Date.AddDays(1);
-
-        // 鍒ゆ柇褰撳墠鏈嶅姟鍣ㄦ椂闂存槸鍚﹀凡缁忚繃浜嗙浜屽ぉ0鐐�
-        DateTime serverNow = TimeUtility.ServerNow;
-        return serverNow >= nextDayStart;
+        DateTime endDateTime = TimeUtility.GetTime((uint)time).Date.AddDays(1);
+        return TimeUtility.ServerNow >= endDateTime;
     }
 
 }
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 599bafc..c639f73 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -599,15 +599,17 @@
 
     private void DisplayFirstChargeBtn()
     {
-        bool isFirstChargeFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
-        if (FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed() &&
-        FirstChargeManager.Instance.IsNextDayAfterAllClaimed())
+        bool isFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
+        bool isAllHave = FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed();
+        bool isNextDay = FirstChargeManager.Instance.IsNextDayAfterAllClaimed();
+
+        if (isAllHave && isNextDay)
         {
             FirstChargeBtn.SetActive(false);
         }
         else
         {
-            FirstChargeBtn.SetActive(isFirstChargeFuncOpen);
+            FirstChargeBtn.SetActive(isFuncOpen);
         }
     }
 

--
Gitblit v1.8.0