From fa920203c879ea3625ae8cce37d7d3a3397fa5fe Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期五, 21 九月 2018 20:52:37 +0800
Subject: [PATCH] 3335 维护代码,优化私人推送功能逻辑。

---
 System/SystemSetting/SetPrivateModel.cs  |   25 ++++++++++++-------------
 System/SystemSetting/ActivityPushCell.cs |   21 ++++++++-------------
 System/DailyQuest/DailyQuestWin.cs       |    4 ++--
 System/DailyQuest/DailyQuestModel.cs     |   10 +++++-----
 4 files changed, 27 insertions(+), 33 deletions(-)

diff --git a/System/DailyQuest/DailyQuestModel.cs b/System/DailyQuest/DailyQuestModel.cs
index deea82a..294b00a 100644
--- a/System/DailyQuest/DailyQuestModel.cs
+++ b/System/DailyQuest/DailyQuestModel.cs
@@ -146,6 +146,11 @@
             UpdateRedpoints();
         }
 
+        public List<int> GetDailyQuests()
+        {
+            return new List<int>(dailyQuests.Keys);
+        }
+
         public List<int> GetDailyQuests(DailyQuestCategory _category)
         {
             var quests = new List<int>();
@@ -499,11 +504,6 @@
         private void OnFairyLeagueBattle()
         {
             UpdateDailyActionRedpoint((int)DailyQuestType.FairyLeague);
-        }
-
-        public Dictionary<int, DailyQuestData> GetDailyQuestlist()
-        {
-            return dailyQuests;
         }
 
         public void UpdateRedpoints()
diff --git a/System/DailyQuest/DailyQuestWin.cs b/System/DailyQuest/DailyQuestWin.cs
index c712e4d..4b4d934 100644
--- a/System/DailyQuest/DailyQuestWin.cs
+++ b/System/DailyQuest/DailyQuestWin.cs
@@ -85,8 +85,8 @@
             if (guidingDailyQuestId != 0)
             {
                 var preferTimeLimit = false;
-                var dailyQuests = model.GetDailyQuestlist();
-                foreach (var quest in dailyQuests.Keys)
+                var dailyQuests = model.GetDailyQuests();
+                foreach (var quest in dailyQuests)
                 {
                     var dailyQuestState = model.GetQuestState(quest);
                     DailyQuestOpenTime openTime;
diff --git a/System/SystemSetting/ActivityPushCell.cs b/System/SystemSetting/ActivityPushCell.cs
index a725677..3481223 100644
--- a/System/SystemSetting/ActivityPushCell.cs
+++ b/System/SystemSetting/ActivityPushCell.cs
@@ -12,20 +12,22 @@
         [SerializeField] GameObject bgObj;
 
         SetPrivateModel privateModel { get { return ModelCenter.Instance.GetModel<SetPrivateModel>(); } }
+        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
 
         public void SetModel(int dailyId)
         {
             string title = "";
             string weekDay = "";
             string openTime = "";
-            privateModel.GetDailyInfoById(dailyId,out title,out weekDay,out openTime);
+            privateModel.GetDailyInfoById(dailyId, out title, out weekDay, out openTime);
             nameText.text = title;
             weekDayText.text = weekDay;
             timeText.text = openTime;
-            int index = privateModel.GetSwitchIndexById(dailyId);
-            pushBtn.SetInit(index,privateModel.GetSwitchStateByIndex(index));
-            pushBtn.switchBtn.RemoveAllListeners();
-            pushBtn.switchBtn.AddListener(() =>
+
+            var quests = dailyQuestModel.GetDailyQuests(DailyQuestModel.DailyQuestCategory.TimeLimit);
+            int index = privateModel.GetSwitchIndexById(dailyId, quests);
+            pushBtn.SetInit(index, privateModel.GetSwitchStateByIndex(index));
+            pushBtn.switchBtn.SetListener(() =>
             {
                 if (pushBtn.onObj.activeInHierarchy)
                 {
@@ -41,14 +43,7 @@
                 }
             });
 
-            if(this.index % 2 == 0)
-            {
-                bgObj.SetActive(true);
-            }
-            else
-            {
-                bgObj.SetActive(false);
-            }
+            bgObj.SetActive(this.index % 2 == 0);
         }
     }
 }
diff --git a/System/SystemSetting/SetPrivateModel.cs b/System/SystemSetting/SetPrivateModel.cs
index 5fae90a..dde2b51 100644
--- a/System/SystemSetting/SetPrivateModel.cs
+++ b/System/SystemSetting/SetPrivateModel.cs
@@ -9,11 +9,7 @@
 {
     public class SetPrivateModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
     {
-        DailyQuestModel m_dailyModel;
-        DailyQuestModel dailyModel
-        {
-            get { return m_dailyModel ?? (m_dailyModel = ModelCenter.Instance.GetModel<DailyQuestModel>()); }
-        }
+        DailyQuestModel dailyModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
         VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
 
         public List<int> hangUpPushlist = new List<int>();
@@ -146,7 +142,7 @@
             List<int> dailyIdlist = GetOpenDailyIdlist(true);
             for (int i = 0; i < dailyIdlist.Count; i++)
             {
-                bool isOpen = GetSwitchStateByIndex(GetSwitchIndexById(dailyIdlist[i]));
+                bool isOpen = GetSwitchStateByIndex(GetSwitchIndexById(dailyIdlist[i], dailyIdlist));
                 if (isOpen)
                 {
                     List<JsonData> pushNotifylist = GetPushJsonData(dailyIdlist[i]);
@@ -459,9 +455,8 @@
             }
         }
 
-        public int GetSwitchIndexById(int id)
+        public int GetSwitchIndexById(int id, List<int> quests)
         {
-            var quests = dailyModel.GetDailyQuests(DailyQuestModel.DailyQuestCategory.TimeLimit);
             for (int i = 0; i < quests.Count; i++)
             {
                 if (quests[i] == id)
@@ -513,15 +508,17 @@
 
         private void RefreshDailyQuest()
         {
-            foreach (var dailyQuest in dailyModel.GetDailyQuestlist().Values)
+            var quests = dailyModel.GetDailyQuests(DailyQuestModel.DailyQuestCategory.TimeLimit);
+            foreach (var dailyQuest in dailyModel.GetDailyQuests())
             {
-                var isUnLocked = TestDailyQuestUnLock(dailyQuest.id);
+                var isUnLocked = TestDailyQuestUnLock(dailyQuest);
                 if (isUnLocked)
                 {
-                    ModelCenter.Instance.GetModel<SetPrivateModel>().CheckActivityOpenTime(dailyQuest.id);
+                    CheckActivityOpenTime(dailyQuest, quests);
                 }
             }
         }
+
         public bool TestDailyQuestUnLock(int _dailyQuestId)
         {
             switch ((DailyQuestType)_dailyQuestId)
@@ -541,9 +538,11 @@
         }
 
 
-        public void CheckActivityOpenTime(int dailyId)
+        public void CheckActivityOpenTime(int dailyId, List<int> quests)
         {
-            bool isOpen = GetSwitchStateByIndex(GetSwitchIndexById(dailyId));
+
+            bool isOpen = GetSwitchStateByIndex(GetSwitchIndexById(dailyId, quests));
+
             if (!isOpen)
                 return;
 

--
Gitblit v1.8.0