From bd19eadbee8a0d3ec67c36a166a8cca4f87f454e Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 15 十月 2018 14:44:33 +0800
Subject: [PATCH] Merge branch 'master' into UserCenter

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

diff --git a/System/SystemSetting/ActivitiesPushMgr.cs b/System/SystemSetting/ActivitiesPushMgr.cs
index 74d62e6..e3c0a36 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,10 @@
 
         public void OnBeforePlayerDataInitialize()
         {
-
+            rushToBuyModel.UpdateAllAppointmentEvent -= UpdateAllAppointment;
+            rushToBuyModel.UpdateAppointmentEvent -= UpdateAppointment;
+            GlobalTimeEvent.Instance.minuteEvent -= RefreshMinuteTime;
+            OpenServerActivityCenter.Instance.openServerActivityStateChange -= RefreshOpenServerState;
         }
 
         public void OnAfterPlayerDataInitialize()
@@ -41,10 +46,11 @@
         {
             SetRankStartPushInfo();
             SetRankEndPushInfo();
-            GlobalTimeEvent.Instance.minuteEvent -= RefreshMinuteTime;
+            SetFlashRushToBuyAppointmentInfo();
             GlobalTimeEvent.Instance.minuteEvent += RefreshMinuteTime;
-            OpenServerActivityCenter.Instance.openServerActivityStateChange -= RefreshOpenServerState;
             OpenServerActivityCenter.Instance.openServerActivityStateChange += RefreshOpenServerState;
+            rushToBuyModel.UpdateAllAppointmentEvent += UpdateAllAppointment;
+            rushToBuyModel.UpdateAppointmentEvent += UpdateAppointment;
         }
 
         public override void UnInit()
@@ -57,6 +63,7 @@
         {
             RemovePushByTime(PushInfoType.RankStart,11);
             RemovePushByTime(PushInfoType.RankEnd,23);
+            RemoveFlashRushToBuyAppointmentByTime();
         }
 
         private void RefreshOpenServerState()
@@ -65,8 +72,10 @@
             SetRankEndPushInfo();
             RemovePushByActiveClose(PushInfoType.RankStart);
             RemovePushByActiveClose(PushInfoType.RankEnd);
+            SetFlashRushToBuyAppointmentInfo();
         }
 
+        #region 寮�鏈嶆椿鍔ㄥ啿姒滄帹閫�
         private void SetRankStartPushInfo()
         {
             for(int i = 0; i <rankTypelist.Count; i++)
@@ -144,7 +153,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 +190,98 @@
                     break;
             }
         }
+        #endregion
 
+        #region 闄愭椂鎶㈣喘鎺ㄩ��
+        private void UpdateAllAppointment()
+        {
+            SetFlashRushToBuyAppointmentInfo();
+        }
+
+        private void UpdateAppointment(int shopGuid)
+        {
+            if (!rushToBuyModel.IsOpen) return;
+
+            var operation = rushToBuyModel.GetOperationFlashRushToBuy();
+            int pushId = FlashRushToBuy * 10 + shopGuid;
+            OperationFlashRushToBuy.FlashSaleItem saleItem;
+            OperationFlashRushToBuy.FlashSaleShop saleShop;
+            bool isSaleItem = operation.TryGetFlashItem(shopGuid,out saleShop,out saleItem);
+            if(isSaleItem)
+            {
+                if(saleItem.isAppointment != 1)
+                {
+                    RemovePushInfo(pushId);
+                }
+                else
+                {
+                    int seconds = 0;
+                    int buyState = operation.GetBuyTimeState(TimeUtility.ServerNow, saleShop.dayIndex, saleShop.timeIndex, out seconds);
+                    if(seconds > 800)
+                    {
+                        int remainSecond = seconds - 600;
+                        SendPushInfo(GetPushJsonData(pushId, remainSecond, "闄愭椂鎶㈣喘", "浜茬埍鐨勯亾鍙嬶紝鎮ㄩ绾︾殑闄愭椂鎶㈣喘鍟嗗搧鍗冲皢寮�鎶紝璇峰敖蹇繘鍏ユ父鎴忕鏉�锛�"));
+                    }
+                }
+            }
+        }
+
+        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