using System; using System.Collections.Generic; using System.Linq; using ET; namespace GFGGame { public class LimitedTimeGiftBoxDataManager : SingletonBase { //列表数据3--等级条件的数据 private List _ltgGbItemData3 = new List(); public List LtgGbItemData3 => _ltgGbItemData3; //圆形样式数据4--等级条件的数据 private List _ltgGbItemData4 = new List(); public List LtgGbItemData4 => _ltgGbItemData4; //圆形样式数据5--时间条件的数据 private List _ltgGbItemData5 = new List(); public List LtgGbItemData5 => _ltgGbItemData5; public void Clear() { _ltgGbItemData3.Clear(); _ltgGbItemData4.Clear(); _ltgGbItemData5.Clear(); } public void UpLtgGbItemData3() { _ltgGbItemData3.Clear(); foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType( ActivityType.XSLB1)) { if (activityInfo.endTime >= TimeInfo.Instance.ServerNow()) { ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId); var paramsArr = activityOpenCfg.paramsArr; Array.Sort(paramsArr); foreach (var shopCfgId in paramsArr) { ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId); if (shopCfg == null) { Log.Error("shopCfg is null"); continue; } LimitedTimeGiftBoxItemData ltgGbItemData = _ltgGbItemData3.FirstOrDefault(a => a.IndexType == shopCfg.menu2); if (ltgGbItemData != null) { var index = _ltgGbItemData3.IndexOf(ltgGbItemData); ltgGbItemData.EndTime = activityInfo.endTime; if (ltgGbItemData.ShopCfgIds != null) { if (ltgGbItemData.ShopCfgIds.Count < 3) { ltgGbItemData.ShopCfgIds.Add(shopCfgId); } } else { ltgGbItemData.ShopCfgIds = new List { shopCfgId }; } _ltgGbItemData3[index] = ltgGbItemData; } else { ltgGbItemData = new LimitedTimeGiftBoxItemData { IndexType = shopCfg.menu2, ShopCfgIds = new List { shopCfgId }, EndTime = activityInfo.endTime }; _ltgGbItemData3.Add(ltgGbItemData); } } } } //排序 foreach (var item in _ltgGbItemData3) { item.ShopCfgIds = item.ShopCfgIds.OrderBy(id => id).ToList(); } _ltgGbItemData3 = _ltgGbItemData3.OrderBy(a => a.IndexType).ToList(); } public void UpLtgGbItemData4() { _ltgGbItemData4.Clear(); foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType( ActivityType.XSLB2)) { if (activityInfo.endTime >= TimeInfo.Instance.ServerNow()) { ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId); //判断是否是类型4的数据 if (activityOpenCfg.type == ActivityType.XSLB2) { foreach (var shopCfgId in activityOpenCfg.paramsArr) { FillData(_ltgGbItemData4, shopCfgId, activityInfo.endTime); } } } } _ltgGbItemData4 = _ltgGbItemData4.OrderBy(a => a.ShopCfgId).ToList(); } public void UpLtgGbItemData5() { _ltgGbItemData5.Clear(); foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType( ActivityType.XSLB3)) { if (activityInfo.endTime >= TimeInfo.Instance.ServerNow()) { ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId); //判断是否是类型4的数据 if (activityOpenCfg.type == ActivityType.XSLB3) { FillData(_ltgGbItemData5, activityOpenCfg.paramsArr[0], activityInfo.endTime); } } } _ltgGbItemData5 = _ltgGbItemData5.OrderBy(a => a.ShopCfgId).ToList(); } private void FillData(List listData, int shopCfgId, long endTime) { ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId); if (shopCfg == null) { Log.Error("shopCfg is null"); return; } var ltgGbItemData = listData.FirstOrDefault(a => a.ShopCfgId == shopCfgId); if (ltgGbItemData == null) { listData.Add(new LimitedTimeGiftBoxItemYxData { EndTime = endTime, ShopCfgId = shopCfg.id, IndexType = shopCfg.menu2 }); } else { var index = listData.IndexOf(ltgGbItemData); ltgGbItemData.IndexType = shopCfg.menu2; ltgGbItemData.EndTime = endTime; listData[index] = ltgGbItemData; } } } }