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];
|
StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(shopId);
|
int remainNum = 0;
|
if (storeModel.TryGetIsSellOut(storeConfig,out remainNum))
|
{
|
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;
|
}
|
}
|
}
|