From 42c8ae5a4fe49c5afdf898da874df55d8d2361cb Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 28 四月 2026 21:19:46 +0800
Subject: [PATCH] 628 节假日活动-五一活动 基本功能

---
 Main/System/OpenServerActivity/OperationTimeHepler.cs |  227 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 175 insertions(+), 52 deletions(-)

diff --git a/Main/System/OpenServerActivity/OperationTimeHepler.cs b/Main/System/OpenServerActivity/OperationTimeHepler.cs
index 0738659..aa2a94b 100644
--- a/Main/System/OpenServerActivity/OperationTimeHepler.cs
+++ b/Main/System/OpenServerActivity/OperationTimeHepler.cs
@@ -497,72 +497,190 @@
 
     public void UpdateActTotalRechargeInfo(HAA1D_tagSCActTotalRechargeInfo package)
     {
-        OperationBase operationBase = null;
-        operationDict.TryGetValue(OperationType.TotalRecharge, out operationBase);
+        var opreationType = OperationType.TotalRecharge;
+        switch (package.ActNum)
+        {
+            case 10:
+                opreationType = OperationType.TotalRecharge;
+                break;
+            case 30:
+                opreationType = OperationType.FestivalActivity_RechargeTotal;
+                break;
+        }
+
         if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
         {
-            ForceStopOperation(OperationType.TotalRecharge);
+            ForceStopOperation(opreationType);
+            return;
         }
-        else
-        {
-            if (operationBase == null)
-            {
-                operationBase = new OperationTotalRechargeInfo();
-                operationDict.Add(OperationType.TotalRecharge, operationBase);
-            }
-            OperationTotalRechargeInfo operation = operationBase as OperationTotalRechargeInfo;
-            operation.Reset();
-            operation.startDate = ParseOperationDate(package.StartDate);
-            operation.endDate = ParseOperationDate(package.EndtDate);
-            operation.ActNum = package.ActNum;
-            operation.CfgID = package.CfgID;
-            
-            var config = ActTotalRechargeConfig.Get(package.CfgID);
-            if (config == null)
-            {
-                SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
-                return;
-            }
 
-            if (operationTimeUpdateEvent != null)
-            {
-                operationTimeUpdateEvent(OperationType.TotalRecharge);
-            }
+        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
+        {
+            operationBase = new OperationTotalRechargeInfo();
+            operationDict.Add(opreationType, operationBase);
         }
+        OperationTotalRechargeInfo operation = operationBase as OperationTotalRechargeInfo;
+        operation.Reset();
+        operation.startDate = ParseOperationDate(package.StartDate);
+        operation.endDate = ParseOperationDate(package.EndtDate);
+        operation.ActNum = package.ActNum;
+        operation.CfgID = package.CfgID;
+
+        var config = ActTotalRechargeConfig.Get(package.CfgID);
+        if (config == null)
+        {
+            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
+            return;
+        }
+        operation.dayReset = config.IsDayReset == 1;
+        operationTimeUpdateEvent?.Invoke(opreationType);
     }
 
     public void UpdateActTotDayRechargeInfo(HAA1B_tagSCActTotDayRechargeInfo package)
     {
-        OperationBase operationBase = null;
-        operationDict.TryGetValue(OperationType.TotDayRecharge, out operationBase);
+        var opreationType = OperationType.TotDayRecharge;
+        switch (package.ActNum)
+        {
+            case 10:
+                opreationType = OperationType.TotDayRecharge;
+                break;
+            case 30:
+                opreationType = OperationType.FestivalActivity_RechargeTotDay;
+                break;
+        }
         if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
         {
-            ForceStopOperation(OperationType.TotDayRecharge);
+            ForceStopOperation(opreationType);
+            return;
         }
-        else
+        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
         {
-            if (operationBase == null)
-            {
-                operationBase = new OperationTotDayRechargeInfo();
-                operationDict.Add(OperationType.TotDayRecharge, operationBase);
-            }
-            OperationTotDayRechargeInfo operation = operationBase as OperationTotDayRechargeInfo;
-            operation.Reset();
-            operation.startDate = ParseOperationDate(package.StartDate);
-            operation.endDate = ParseOperationDate(package.EndtDate);
-            operation.ActNum = package.ActNum;
-            operation.CfgID = package.CfgID;
-
-            var config = ActTotalRechargeConfig.Get(package.CfgID);
-            if (config == null)
-            {
-                SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
-                return;
-            }
-            
-            operation.dayReset = config.IsDayReset == 1;
-            operationTimeUpdateEvent?.Invoke(OperationType.TotDayRecharge);
+            operationBase = new OperationTotDayRechargeInfo();
+            operationDict.Add(opreationType, operationBase);
         }
+        OperationTotDayRechargeInfo operation = operationBase as OperationTotDayRechargeInfo;
+        operation.Reset();
+        operation.startDate = ParseOperationDate(package.StartDate);
+        operation.endDate = ParseOperationDate(package.EndtDate);
+        operation.ActNum = package.ActNum;
+        operation.CfgID = package.CfgID;
+
+        if (ActTotDayRechargeConfig.Get(package.CfgID) == null)
+        {
+            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
+            return;
+        }
+        operationTimeUpdateEvent?.Invoke(opreationType);
+    }
+
+    public void UpdateFlashSaleActivityInfo(HAA10_tagSCActSpecialSaleInfo package)
+    {
+        var opreationType = OperationType.FestivalActivity;
+        switch (package.ActNum)
+        {
+            case 30:
+                opreationType = OperationType.FestivalActivity;
+                break;
+        }
+
+        if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
+        {
+            ForceStopOperation(opreationType);
+            return;
+        }
+
+        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
+        {
+            operationBase = new OperationFlashSaleActivityInfo();
+            operationDict.Add(opreationType, operationBase);
+        }
+        OperationFlashSaleActivityInfo operation = operationBase as OperationFlashSaleActivityInfo;
+        operation.Reset();
+        operation.startDate = ParseOperationDate(package.StartDate);
+        operation.endDate = ParseOperationDate(package.EndtDate);
+        operation.ActNum = package.ActNum;
+        operation.CfgID = package.CfgID;
+
+        if (ActSpecialSaleConfig.Get(package.CfgID) == null)
+        {
+            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
+            return;
+        }
+        operationTimeUpdateEvent?.Invoke(opreationType);
+    }
+
+    public void UpdateCheckInActivityInfo(HAA23_tagSCActSignInfo package)
+    {
+        var opreationType = OperationType.FestivalActivity_CheckIn;
+        switch (package.ActNum)
+        {
+            case 30:
+                opreationType = OperationType.FestivalActivity_CheckIn;
+                break;
+        }
+
+        if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
+        {
+            ForceStopOperation(opreationType);
+            return;
+        }
+
+        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
+        {
+            operationBase = new OperationCheckInActivityInfo();
+            operationDict.Add(opreationType, operationBase);
+        }
+        OperationCheckInActivityInfo operation = operationBase as OperationCheckInActivityInfo;
+        operation.Reset();
+        operation.startDate = ParseOperationDate(package.StartDate);
+        operation.endDate = ParseOperationDate(package.EndtDate);
+        operation.ActType = package.ActNum;
+        operation.CfgID = package.CfgID;
+
+        if (ActSignConfig.Get(package.CfgID) == null)
+        {
+            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
+            return;
+        }
+        operationTimeUpdateEvent?.Invoke(opreationType);
+    }
+
+    public void UpdateMissionActivityInfo(HAA71_tagSCActTaskInfo package)
+    {
+        var opreationType = OperationType.FestivalActivity_Mission;
+        switch (package.ActNum)
+        {
+            case 30:
+                opreationType = OperationType.FestivalActivity_Mission;
+                break;
+        }
+
+        if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
+        {
+            ForceStopOperation(opreationType);
+            return;
+        }
+
+        if (!operationDict.TryGetValue(opreationType, out OperationBase operationBase))
+        {
+            operationBase = new OperationMissionActivityInfo();
+            operationDict.Add(opreationType, operationBase);
+        }
+        OperationMissionActivityInfo operation = operationBase as OperationMissionActivityInfo;
+        operation.Reset();
+        operation.startDate = ParseOperationDate(package.StartDate);
+        operation.endDate = ParseOperationDate(package.EndtDate);
+        operation.ActType = package.ActNum;
+        operation.CfgID = package.CfgID;
+
+        var config = ActTaskConfig.Get(package.CfgID);
+        if (config == null)
+        {
+            SysNotifyMgr.Instance.ShowTip("LoadConfigErr");
+            return;
+        }
+        operation.dayReset = config.IsDayReset == 1;
+        operationTimeUpdateEvent?.Invoke(opreationType);
     }
 
     // public void UpdateActYunShiInfo(HAA87_tagMCActYunshiInfo package)
@@ -1157,5 +1275,10 @@
     HeroReturn = 3, //鏃ユ湡鍨嬫椿鍔� - 姝﹀皢杩斿満
     TotalRecharge = 4,//绱厖娲诲姩
     TotDayRecharge = 5, //绱厖澶╂椿鍔�
+    FestivalActivity = 6,   //鑺傛棩娲诲姩
+    FestivalActivity_RechargeTotDay = 7,   //鑺傛棩娲诲姩-绱ぉ鍏呭��
+    FestivalActivity_RechargeTotal = 8,   //鑺傛棩娲诲姩-绱厖鍊�
+    FestivalActivity_CheckIn = 9,   //鑺傛棩娲诲姩-绛惧埌
+    FestivalActivity_Mission = 10,   //鑺傛棩娲诲姩-浠诲姟
     max,
 }
\ No newline at end of file

--
Gitblit v1.8.0