| New file |
| | |
| | | using 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;
|
| | | }
|
| | | }
|
| | | }
|