From a5249947fcea5a7bc2dacd098222668da014d087 Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期六, 13 十月 2018 10:51:10 +0800
Subject: [PATCH] 4074  【前端】限时抢购开发

---
 System/SystemSetting/ActivitiesPushMgr.cs |   80 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 75 insertions(+), 5 deletions(-)

diff --git a/System/SystemSetting/ActivitiesPushMgr.cs b/System/SystemSetting/ActivitiesPushMgr.cs
index 74d62e6..e392d0e 100644
--- a/System/SystemSetting/ActivitiesPushMgr.cs
+++ b/System/SystemSetting/ActivitiesPushMgr.cs
@@ -11,8 +11,10 @@
     {
         public const int WholePeopleRankStart = 2091000; //鍏ㄦ皯鍐叉寮�濮�
         public const int WholePeopleRankEnd = 20910000; //鍏ㄦ皯鍐叉鎴
-
+        public const int FlashRushToBuy = 209014; //闄愭椂鎶㈣喘
         ImpactRankModel impactRank { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } }
+        FlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel<FlashRushToBuyModel>(); } }
+
         private List<int> rankTypelist = new List<int>();
 
         public override void Init()
@@ -29,7 +31,9 @@
 
         public void OnBeforePlayerDataInitialize()
         {
-
+            rushToBuyModel.UpdateAppointmentEvent -= UpdateAppointment;
+            GlobalTimeEvent.Instance.minuteEvent -= RefreshMinuteTime;
+            OpenServerActivityCenter.Instance.openServerActivityStateChange -= RefreshOpenServerState;
         }
 
         public void OnAfterPlayerDataInitialize()
@@ -41,10 +45,10 @@
         {
             SetRankStartPushInfo();
             SetRankEndPushInfo();
-            GlobalTimeEvent.Instance.minuteEvent -= RefreshMinuteTime;
+            SetFlashRushToBuyAppointmentInfo();
             GlobalTimeEvent.Instance.minuteEvent += RefreshMinuteTime;
-            OpenServerActivityCenter.Instance.openServerActivityStateChange -= RefreshOpenServerState;
             OpenServerActivityCenter.Instance.openServerActivityStateChange += RefreshOpenServerState;
+            rushToBuyModel.UpdateAppointmentEvent += UpdateAppointment;
         }
 
         public override void UnInit()
@@ -57,6 +61,7 @@
         {
             RemovePushByTime(PushInfoType.RankStart,11);
             RemovePushByTime(PushInfoType.RankEnd,23);
+            RemoveFlashRushToBuyAppointmentByTime();
         }
 
         private void RefreshOpenServerState()
@@ -65,8 +70,10 @@
             SetRankEndPushInfo();
             RemovePushByActiveClose(PushInfoType.RankStart);
             RemovePushByActiveClose(PushInfoType.RankEnd);
+            SetFlashRushToBuyAppointmentInfo();
         }
 
+        #region 寮�鏈嶆椿鍔ㄥ啿姒滄帹閫�
         private void SetRankStartPushInfo()
         {
             for(int i = 0; i <rankTypelist.Count; i++)
@@ -144,7 +151,7 @@
             }
         }
 
-        private void RemovePushByTime(PushInfoType type,int time)
+        private void RemovePushByTime(PushInfoType type, int time)
         {
             int remainHour = time - TimeUtility.ServerNow.Hour;
             int remainMinute = 0 - TimeUtility.ServerNow.Minute;
@@ -181,7 +188,70 @@
                     break;
             }
         }
+        #endregion
 
+        #region 闄愭椂鎶㈣喘鎺ㄩ��
+        private void UpdateAppointment()
+        {
+            SetFlashRushToBuyAppointmentInfo();
+        }
+
+        private void SetFlashRushToBuyAppointmentInfo()
+        {
+            if (!rushToBuyModel.IsOpen) return;
+
+            var operation = rushToBuyModel.GetOperationFlashRushToBuy();
+            for(int i = 0; i < operation.flashShops.Count; i++)
+            {
+                var flashShop = operation.flashShops[i];
+                int seconds = 0;
+                int buyState = operation.GetBuyTimeState(TimeUtility.ServerNow, flashShop.dayIndex,flashShop.timeIndex,out seconds);
+                var saleItems = operation.flashShops[i].items;
+                for (int j = 0; j < saleItems.Length; j++)
+                {
+                    int pushId = FlashRushToBuy * 10 + saleItems[j].shopGuid;
+                    if (buyState == -1 && seconds > 800 && saleItems[j].isAppointment == 1)
+                    {
+                        int remainSecond = seconds - 600;
+                        SendPushInfo(GetPushJsonData(pushId, remainSecond, "闄愭椂鎶㈣喘", "浜茬埍鐨勯亾鍙嬶紝鎮ㄩ绾︾殑闄愭椂鎶㈣喘鍟嗗搧鍗冲皢寮�鎶紝璇峰敖蹇繘鍏ユ父鎴忕鏉�锛�"));
+                    }
+                    else
+                    {
+                        RemovePushInfo(pushId);
+                    }
+                }
+            }
+        }
+
+        private void RemoveFlashRushToBuyAppointmentByTime()
+        {
+            if (!rushToBuyModel.IsOpen) return;
+
+            var operation = rushToBuyModel.GetOperationFlashRushToBuy();
+            for (int i = 0; i < operation.flashShops.Count; i++)
+            {
+                var flashShop = operation.flashShops[i];
+                int seconds = 0;
+                int buyState = operation.GetBuyTimeState(TimeUtility.ServerNow, flashShop.dayIndex, flashShop.timeIndex, out seconds);
+                var saleItems = operation.flashShops[i].items;
+                for (int j = 0; j < saleItems.Length; j++)
+                {
+                    int pushId = FlashRushToBuy * 10 + saleItems[j].shopGuid;
+                    if (buyState != -1)
+                    {
+                        RemovePushInfo(pushId);
+                    }
+                    else
+                    {
+                        if(seconds <= 180)
+                        {
+                            RemovePushInfo(pushId);
+                        }
+                    }
+                }
+            }
+        }
+        #endregion
         public void RemovePushInfo(int pushId)
         {
             SDKUtility.Instance.GeTui_RemoveLocalMessage(pushId.ToString());

--
Gitblit v1.8.0