From 3c38893503de952157eac2bc1134e3f30b292537 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 14 九月 2018 11:21:31 +0800
Subject: [PATCH] 3442运营活动修改

---
 System/Welfare/OperationFlashSale.cs           |   48 ----------------
 System/OpenServerActivity/FlashSaleCoolDown.cs |   33 +++++++----
 System/OpenServerActivity/FlashSaleWin.cs      |    2 
 System/Welfare/OperationBase.cs                |   48 ++++++++++++++++
 4 files changed, 70 insertions(+), 61 deletions(-)

diff --git a/System/OpenServerActivity/FlashSaleCoolDown.cs b/System/OpenServerActivity/FlashSaleCoolDown.cs
index 5304715..56de4e9 100644
--- a/System/OpenServerActivity/FlashSaleCoolDown.cs
+++ b/System/OpenServerActivity/FlashSaleCoolDown.cs
@@ -12,7 +12,7 @@
 
         private void OnEnable()
         {
-            DisplayTime();
+            SecondEvent();
             GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
             GlobalTimeEvent.Instance.secondEvent += SecondEvent;
             OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
@@ -21,7 +21,7 @@
 
         private void DayResetEvent(int resetType)
         {
-            DisplayTime();
+            SecondEvent();
         }
 
         private void SecondEvent()
@@ -30,8 +30,22 @@
             if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.FlashSale, out operationBase))
             {
                 var operation = (operationBase as OperationFlashSale);
-                var seconds = operation.GetSurplusTime();
-                m_Time.timeShow.color = seconds > 3600 ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red);
+                var seconds = operation.GetResetSurplusTime();
+                if (seconds * TimeSpan.TicksPerSecond >= TimeSpan.TicksPerDay || seconds <= 0)
+                {
+                    if (m_Time.gameObject.activeSelf)
+                    {
+                        DisplayTime(0);
+                    }
+                }
+                else
+                {
+                    m_Time.timeShow.color = seconds > 3600 ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red);
+                    if (!m_Time.gameObject.activeSelf)
+                    {
+                        DisplayTime(seconds);
+                    }
+                }
             }
         }
 
@@ -41,15 +55,10 @@
             OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
         }
 
-        void DisplayTime()
+        void DisplayTime(int seconds)
         {
-            OperationBase operationBase;
-            if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.FlashSale, out operationBase))
-            {
-                var seconds = (operationBase as OperationFlashSale).GetSurplusTime();
-                m_Time.timeShow.color = seconds > 3600 ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red);
-                m_Time.Begin(DateTime.Now.AddTicks(seconds * TimeSpan.TicksPerSecond));
-            }
+            m_Time.timeShow.color = seconds > 3600 ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red);
+            m_Time.Begin(DateTime.Now.AddTicks(seconds * TimeSpan.TicksPerSecond));
         }
     }
 }
diff --git a/System/OpenServerActivity/FlashSaleWin.cs b/System/OpenServerActivity/FlashSaleWin.cs
index 767f820..6918e87 100644
--- a/System/OpenServerActivity/FlashSaleWin.cs
+++ b/System/OpenServerActivity/FlashSaleWin.cs
@@ -132,7 +132,7 @@
             if (operationBase != null)
             {
                 OperationFlashSale operation = operationBase as OperationFlashSale;
-                seconds = operation.GetSurplusTime();
+                seconds = operation.GetResetSurplusTime();
             }
             if (seconds > 0)
             {
diff --git a/System/Welfare/OperationBase.cs b/System/Welfare/OperationBase.cs
index 86100e9..45b089b 100644
--- a/System/Welfare/OperationBase.cs
+++ b/System/Welfare/OperationBase.cs
@@ -206,6 +206,54 @@
             return seconds;
         }
 
+        public int GetResetSurplusTime()
+        {
+            var time = TimeUtility.ServerNow;
+            if (!InTime(time))
+            {
+                return 0;
+            }
+            var seconds = 0;
+            if (allDay)
+            {
+                if (!dayReset)
+                {
+                    return GetSurplusTime(time);
+                }
+                if (resetType == 0)
+                {
+                    DateTime endOperationTime = new DateTime(TimeUtility.Year, TimeUtility.Month,
+                          TimeUtility.Day, 0, 0, 0);
+                    endOperationTime = endOperationTime.AddDays(1);
+                    seconds = (int)(endOperationTime - TimeUtility.ServerNow).TotalSeconds;
+                }
+                else if (resetType == 1)
+                {
+                    DateTime endOperationTime = new DateTime(TimeUtility.Year, TimeUtility.Month,
+                          TimeUtility.Day, DayResetHour, 0, 0);
+                    if (time.Hour >= DayResetHour)
+                    {
+                        endOperationTime = endOperationTime.AddDays(1);
+                    }
+                    seconds = (int)(endOperationTime - TimeUtility.ServerNow).TotalSeconds;
+                }
+            }
+            else
+            {
+                for (int i = 0; i < times.Count; i++)
+                {
+                    if (times[i].InTime(time))
+                    {
+                        DateTime endOperationTime = new DateTime(TimeUtility.Year, TimeUtility.Month,
+                                TimeUtility.Day, times[i].endHour, times[i].endMinute, 0);
+                        seconds = (int)(endOperationTime - TimeUtility.ServerNow).TotalSeconds;
+                        break;
+                    }
+                }
+            }
+            return seconds;
+        }
+
         public virtual string ToDisplayTime()
         {
             return string.Empty;
diff --git a/System/Welfare/OperationFlashSale.cs b/System/Welfare/OperationFlashSale.cs
index 5428205..e8c3bf6 100644
--- a/System/Welfare/OperationFlashSale.cs
+++ b/System/Welfare/OperationFlashSale.cs
@@ -85,54 +85,6 @@
             return textBuilder.ToString();
         }
 
-        public int GetSurplusTime()
-        {
-            var time = TimeUtility.ServerNow;
-            if (!InTime(time))
-            {
-                return 0;
-            }
-            var seconds = 0;
-            if (allDay)
-            {
-                if (!dayReset)
-                {
-                    return GetSurplusTime(time);
-                }
-                if (resetType == 0)
-                {
-                    DateTime endOperationTime = new DateTime(TimeUtility.Year, TimeUtility.Month,
-                          TimeUtility.Day, 0, 0, 0);
-                    endOperationTime = endOperationTime.AddDays(1);
-                    seconds = (int)(endOperationTime - TimeUtility.ServerNow).TotalSeconds;
-                }
-                else if (resetType == 1)
-                {
-                    DateTime endOperationTime = new DateTime(TimeUtility.Year, TimeUtility.Month,
-                          TimeUtility.Day, DayResetHour, 0, 0);
-                    if (time.Hour >= DayResetHour)
-                    {
-                        endOperationTime = endOperationTime.AddDays(1);
-                    }
-                    seconds = (int)(endOperationTime - TimeUtility.ServerNow).TotalSeconds;
-                }
-            }
-            else
-            {
-                for (int i = 0; i < times.Count; i++)
-                {
-                    if (times[i].InTime(time))
-                    {
-                        DateTime endOperationTime = new DateTime(TimeUtility.Year, TimeUtility.Month,
-                                TimeUtility.Day, times[i].endHour, times[i].endMinute, 0);
-                        seconds = (int)(endOperationTime - TimeUtility.ServerNow).TotalSeconds;
-                        break;
-                    }
-                }
-            }
-            return seconds;
-        }
-
         public void ParsePackage(HAA11_tagMCSpringSaleInfo package)
         {
             for (int i = 0; i < package.ShopCount; i++)

--
Gitblit v1.8.0