From bbe421e9f3abcfffcec6a485c924abff7eeb424b Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 13 十一月 2018 14:39:49 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/Store/StoreModel.cs                      |    9 ++
 Utility/EnumHelper.cs                           |    2 
 System/KnapSack/FBHelpPointExchageModel.cs      |  207 +++++++++++++++++++++++++++++++++++++++++++++++++++
 System/KnapSack/FBHelpPointExchageModel.cs.meta |   12 +++
 4 files changed, 229 insertions(+), 1 deletions(-)

diff --git a/System/KnapSack/FBHelpPointExchageModel.cs b/System/KnapSack/FBHelpPointExchageModel.cs
new file mode 100644
index 0000000..d628bdb
--- /dev/null
+++ b/System/KnapSack/FBHelpPointExchageModel.cs
@@ -0,0 +1,207 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UnityEngine;
+using TableConfig;
+
+namespace Snxxz.UI
+{
+    [XLua.LuaCallCSharp]
+    public class FBHelpPointExchageModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk
+    {
+        public List<int> todayShoplist { get; private set; }
+        public List<int> lifeShoplist { get; private set; }
+        public List<int> helpPointShoplist = new List<int>();
+        public string shopDayLocalSave { get; private set;}
+        public string shopLifeLocalSave { get; private set;}
+        public string curDayLocalSave { get; private set; }
+        public int currentShopId { get; private set; }
+        public event Action UpdateHelpPointShopEvent;
+
+        StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
+
+        public override void Init()
+        {
+           
+        }
+
+        public void OnBeforePlayerDataInitialize()
+        {
+            currentShopId = 0;
+            helpPointShoplist.Clear();
+            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdateFBHelpPoint;
+            storeModel.UpdateHelpPointExchangeEvent -= UpdateHelpPointShop;
+            TimeMgr.Instance.OnDayEvent -= UpdateDay;
+        }
+
+        public void OnPlayerLoginOk()
+        {
+            int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
+            shopDayLocalSave = StringUtility.Contact("ShopDayLocalSave",playerId);
+            shopLifeLocalSave = StringUtility.Contact("ShopLifeLocalSave",playerId);
+            curDayLocalSave = StringUtility.Contact("CurDayLocalSave",playerId);
+            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdateFBHelpPoint;
+            TimeMgr.Instance.OnDayEvent += UpdateDay;
+            storeModel.UpdateHelpPointExchangeEvent += UpdateHelpPointShop;
+            GetLocalSaveData();
+        }
+
+        public override void UnInit()
+        {
+           
+        }
+        #region 鏈湴璁板綍鏁版嵁鐨勫瓨鍌�
+        private bool IsNewDay()
+        {
+            if(!PlayerPrefs.HasKey(curDayLocalSave))
+            {
+                return true;
+            }
+            int saveDay = LocalSave.GetInt(curDayLocalSave);
+            int serverDay = TimeUtility.ServerNow.Day;
+            return serverDay != saveDay ? true : false;
+        }
+
+        private void SetCurDayLocalSave()
+        {
+            LocalSave.SetInt(curDayLocalSave,TimeUtility.ServerNow.Day);
+        }
+        /// <summary>
+        /// 鑾峰彇鏈湴璁板綍鏁版嵁
+        /// </summary>
+        private void GetLocalSaveData()
+        {
+            int[] dayShops = LocalSave.GetIntArray(shopDayLocalSave);
+            todayShoplist = dayShops == null ? null : dayShops.ToList();
+            int[] lifeShops = LocalSave.GetIntArray(shopLifeLocalSave);
+            lifeShoplist = lifeShops == null ? null : lifeShops.ToList();
+            if(IsNewDay())
+            {
+                ClearShopDayLocalSave();
+                SetCurDayLocalSave();
+            }
+        }
+
+        public void SetLocalSaveData(int type,int shopId)
+        {
+            switch(type)
+            {
+                case 1:
+                    todayShoplist = todayShoplist == null ? new List<int>() : todayShoplist;
+                    if(!todayShoplist.Contains(shopId))
+                    {
+                        todayShoplist.Add(shopId);
+                        LocalSave.SetIntArray(shopDayLocalSave,todayShoplist.ToArray());
+                    }
+                    break;
+                case 2:
+                    lifeShoplist = lifeShoplist == null ? new List<int>() : lifeShoplist;
+                    if (!lifeShoplist.Contains(shopId))
+                    {
+                        lifeShoplist.Add(shopId);
+                        LocalSave.SetIntArray(shopLifeLocalSave, lifeShoplist.ToArray());
+                    }
+                    break;
+            }
+        }
+
+        public void ClearShopDayLocalSave()
+        {
+            PlayerPrefs.DeleteKey(shopDayLocalSave);
+            if(todayShoplist != null)
+            {
+                todayShoplist.Clear();
+            }
+        }
+        #endregion
+
+        private void UpdateDay()
+        {
+            ClearShopDayLocalSave();
+        }
+
+        private void UpdateFBHelpPoint(PlayerDataRefresh type)
+        {
+            if (type != PlayerDataRefresh.FBHelpPoint) return;
+
+            for(int i = 0; i < helpPointShoplist.Count; i++)
+            {
+                var shopId = helpPointShoplist[i];
+                if (!CheckShopIsCanBuy(shopId))
+                {
+                    RemoveHelpPointShop(shopId);
+                }
+            }
+        }
+
+        public void AddHelpPointShop(int shopId)
+        {
+            if(!helpPointShoplist.Contains(shopId))
+            {
+                helpPointShoplist.Add(shopId);
+            }
+        }
+
+        public void RemoveHelpPointShop(int shopId)
+        {
+            if (helpPointShoplist.Contains(shopId))
+            {
+                helpPointShoplist.Remove(shopId);
+            }
+        }
+
+        private void UpdateHelpPointShop(int shopId)
+        {
+            StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(shopId);
+            if (storeConfig == null) return;
+
+            currentShopId = shopId;
+            AddHelpPointShop(shopId);
+            if(UpdateHelpPointShopEvent != null)
+            {
+                UpdateHelpPointShopEvent();
+            }
+        }
+
+        public bool IsAlreadPush(int shopId)
+        {
+            StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(shopId);
+            if (storeConfig == null) return false;
+
+            ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(storeConfig.ItemID);
+            switch((ItemType)itemConfig.Type)
+            {
+                case ItemType.OfflineCard:
+                    break;
+                case ItemType.MountDan:
+                    break;
+                default:
+                    break;
+            }
+            return true;
+        }
+
+        public bool CheckShopIsCanBuy(int shopId)
+        {
+            StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(shopId);
+            if (storeConfig == null) return false;
+
+            int canBuyCnt = 0;
+            int addBuyCnt = 0;
+            bool isLimitBuy = BuyItemPopModel.Instance.CheckIsLimitBuyCnt(storeConfig, out canBuyCnt, out addBuyCnt);
+            BuyShopItemLimit shopItemLimit = storeModel.GetBuyShopLimit((uint)storeConfig.ID);
+            int remainNum = canBuyCnt;
+            if (shopItemLimit != null)
+            {
+                remainNum -= shopItemLimit.BuyCnt;
+            }
+            List<StoreConfig> list = StoreConfig.GetSellShoplist();
+            if (remainNum > 0 && list.Contains(storeConfig))
+            {
+                return true;
+            }
+            return false;
+        }
+    }
+}
diff --git a/System/KnapSack/FBHelpPointExchageModel.cs.meta b/System/KnapSack/FBHelpPointExchageModel.cs.meta
new file mode 100644
index 0000000..3397ab9
--- /dev/null
+++ b/System/KnapSack/FBHelpPointExchageModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 86c457f98558ec44aa458b9a5bad445d
+timeCreated: 1542090743
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/Store/StoreModel.cs b/System/Store/StoreModel.cs
index f75ae3c..e26af1d 100644
--- a/System/Store/StoreModel.cs
+++ b/System/Store/StoreModel.cs
@@ -877,7 +877,7 @@
             }
         }
     }
-
+    public event Action<int> UpdateHelpPointExchangeEvent;
     public void UpdateCanBuyRedpoint()
     {
         if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store)) return;
@@ -892,6 +892,13 @@
                     if (UIHelper.GetMoneyCnt(storeConfig.MoneyType) >= (ulong)storeConfig.MoneyNumber)
                     {
                         shopRedDict[storeConfig.ID].state = RedPointState.Simple;
+                        if(storeConfig.ShopType == (int)StoreFunc.IntegralStore)
+                        {
+                            if(UpdateHelpPointExchangeEvent != null)
+                            {
+                                UpdateHelpPointExchangeEvent(key);
+                            }
+                        }
                     }
                     else
                     {
diff --git a/Utility/EnumHelper.cs b/Utility/EnumHelper.cs
index 0ec9c62..9892eeb 100644
--- a/Utility/EnumHelper.cs
+++ b/Utility/EnumHelper.cs
@@ -666,6 +666,8 @@
 public enum ItemType
 {
     Buff = 9, //Buff绫诲瀷
+    OfflineCard = 10, //绂荤嚎鎸傛満鍗�
+    MountDan = 21,//鍧愰獞涓�
     MakerEquipSuitMat = 34, //瑁呭濂楄鏉愭枡
     ComposeSuitStone = 35, //濂楄鐭崇鐗�
     WingsMat = 39,  //鍚堟垚缈呰唨鏉愭枡锛岀窘缈肩簿鐐兼潗鏂�

--
Gitblit v1.8.0