LimitedTimeGiftBoxDataManager.cs 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Concurrent;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using ET;
  7. using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
  8. using UI.DressUp;
  9. namespace GFGGame
  10. {
  11. public class LimitedTimeGiftBoxDataManager : SingletonBase<LimitedTimeGiftBoxDataManager>
  12. {
  13. //列表数据3--等级条件的数据
  14. private List<LimitedTimeGiftBoxItemData> _ltgGbItemData3 = new List<LimitedTimeGiftBoxItemData>();
  15. public List<LimitedTimeGiftBoxItemData> LtgGbItemData3 => _ltgGbItemData3;
  16. //圆形样式数据4--等级条件的数据
  17. private List<LimitedTimeGiftBoxItemYxData> _ltgGbItemData4 = new List<LimitedTimeGiftBoxItemYxData>();
  18. public List<LimitedTimeGiftBoxItemYxData> LtgGbItemData4 => _ltgGbItemData4;
  19. //圆形样式数据5--时间条件的数据
  20. private List<LimitedTimeGiftBoxItemYxData> _ltgGbItemData5 = new List<LimitedTimeGiftBoxItemYxData>();
  21. public List<LimitedTimeGiftBoxItemYxData> LtgGbItemData5 => _ltgGbItemData5;
  22. // public void InitData()
  23. // {
  24. // _activityOpenEndTimeDic.Clear();
  25. // _ltgGbItemData3.Clear();
  26. // _ltgGbItemData4.Clear();
  27. // _ltgGbItemData5.Clear();
  28. // }
  29. public void UpAllData()
  30. {
  31. //UpActivityOpenEndTimeDic(); //等之后搞好活动有效期组件之后,再替换成真实数据的更新
  32. UpLtgGbItemData3();
  33. UpLtgGbItemData4();
  34. UpLtgGbItemData5();
  35. }
  36. public void UpLtgGbItemData3()
  37. {
  38. _ltgGbItemData3.Clear();
  39. foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType(
  40. ConstActivityType.ActLimitGiftShByLevel))
  41. {
  42. if (activityInfo.endTime >= TimeInfo.Instance.ServerNow())
  43. {
  44. ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId);
  45. var paramsArr = activityOpenCfg.paramsArr;
  46. Array.Sort(paramsArr);
  47. foreach (var shopCfgId in paramsArr)
  48. {
  49. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId);
  50. if (shopCfg == null)
  51. {
  52. Log.Error("shopCfg is null");
  53. continue;
  54. }
  55. LimitedTimeGiftBoxItemData ltgGbItemData =
  56. _ltgGbItemData3.FirstOrDefault(a => a.IndexType == shopCfg.menu2);
  57. if (ltgGbItemData != null)
  58. {
  59. if (ltgGbItemData.ShopCfgIds != null)
  60. {
  61. if (ltgGbItemData.ShopCfgIds.Count < 3)
  62. {
  63. ltgGbItemData.ShopCfgIds.Add(shopCfgId);
  64. }
  65. }
  66. else
  67. {
  68. ltgGbItemData.ShopCfgIds = new List<int> { shopCfgId };
  69. }
  70. ltgGbItemData.EndTime = activityInfo.endTime;
  71. _ltgGbItemData3.Add(ltgGbItemData);
  72. }
  73. else
  74. {
  75. ltgGbItemData = new LimitedTimeGiftBoxItemData
  76. {
  77. IndexType = shopCfg.menu2,
  78. ShopCfgIds = new List<int> { shopCfgId },
  79. EndTime = activityInfo.endTime
  80. };
  81. _ltgGbItemData3.Add(ltgGbItemData);
  82. }
  83. }
  84. }
  85. }
  86. //排序
  87. foreach (var item in _ltgGbItemData3)
  88. {
  89. item.ShopCfgIds = item.ShopCfgIds.OrderBy(id => id).ToList();
  90. }
  91. _ltgGbItemData3 = _ltgGbItemData3.OrderBy(a => a.IndexType).ToList();
  92. }
  93. public void UpLtgGbItemData4()
  94. {
  95. _ltgGbItemData4.Clear();
  96. foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType(
  97. ConstActivityType.ActLimitGiftShByLevel))
  98. {
  99. if (activityInfo.endTime >= TimeInfo.Instance.ServerNow())
  100. {
  101. ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId);
  102. //判断是否是类型4的数据
  103. if (activityOpenCfg.type == ConstActivityType.ActLimitGiftYxByLevel)
  104. {
  105. foreach (var shopCfgId in activityOpenCfg.paramsArr)
  106. {
  107. FillData(_ltgGbItemData4, shopCfgId, activityInfo.endTime);
  108. }
  109. }
  110. }
  111. }
  112. _ltgGbItemData4 = _ltgGbItemData4.OrderBy(a => a.ShopCfgId).ToList();
  113. }
  114. public void UpLtgGbItemData5()
  115. {
  116. _ltgGbItemData5.Clear();
  117. foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType(
  118. ConstActivityType.ActLimitGiftShByLevel))
  119. {
  120. if (activityInfo.endTime >= TimeInfo.Instance.ServerNow())
  121. {
  122. ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId);
  123. //判断是否是类型4的数据
  124. if (activityOpenCfg.type == ConstActivityType.ActLimitGiftYxByTime)
  125. {
  126. FillData(_ltgGbItemData5, activityOpenCfg.paramsArr[0], activityInfo.endTime);
  127. }
  128. }
  129. }
  130. _ltgGbItemData5 = _ltgGbItemData5.OrderBy(a => a.ShopCfgId).ToList();
  131. }
  132. private void FillData(List<LimitedTimeGiftBoxItemYxData> listData, int shopCfgId, long endTime)
  133. {
  134. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId);
  135. if (shopCfg == null)
  136. {
  137. Log.Error("shopCfg is null");
  138. return;
  139. }
  140. var ltgGbItemData = listData.FirstOrDefault(a => a.ShopCfgId == shopCfgId);
  141. if (ltgGbItemData == null)
  142. {
  143. listData.Add(new LimitedTimeGiftBoxItemYxData
  144. {
  145. EndTime = endTime,
  146. ShopCfgId = shopCfg.id,
  147. IndexType = shopCfg.menu2
  148. });
  149. }
  150. else
  151. {
  152. var index = listData.IndexOf(ltgGbItemData);
  153. ltgGbItemData.IndexType = shopCfg.menu2;
  154. ltgGbItemData.EndTime = endTime;
  155. listData[index] = ltgGbItemData;
  156. }
  157. }
  158. }
  159. }