LimitedTimeGiftBoxDataManager.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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 UpAllData()
  23. {
  24. UpLtgGbItemData3();
  25. UpLtgGbItemData4();
  26. UpLtgGbItemData5();
  27. }
  28. public void UpLtgGbItemData3()
  29. {
  30. _ltgGbItemData3.Clear();
  31. foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType(
  32. ActivityType.XSLB1))
  33. {
  34. if (activityInfo.endTime >= TimeInfo.Instance.ServerNow())
  35. {
  36. ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId);
  37. var paramsArr = activityOpenCfg.paramsArr;
  38. Array.Sort(paramsArr);
  39. foreach (var shopCfgId in paramsArr)
  40. {
  41. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId);
  42. if (shopCfg == null)
  43. {
  44. Log.Error("shopCfg is null");
  45. continue;
  46. }
  47. LimitedTimeGiftBoxItemData ltgGbItemData =
  48. _ltgGbItemData3.FirstOrDefault(a => a.IndexType == shopCfg.menu2);
  49. if (ltgGbItemData != null)
  50. {
  51. if (ltgGbItemData.ShopCfgIds != null)
  52. {
  53. if (ltgGbItemData.ShopCfgIds.Count < 3)
  54. {
  55. ltgGbItemData.ShopCfgIds.Add(shopCfgId);
  56. }
  57. }
  58. else
  59. {
  60. ltgGbItemData.ShopCfgIds = new List<int> { shopCfgId };
  61. }
  62. ltgGbItemData.EndTime = activityInfo.endTime;
  63. _ltgGbItemData3.Add(ltgGbItemData);
  64. }
  65. else
  66. {
  67. ltgGbItemData = new LimitedTimeGiftBoxItemData
  68. {
  69. IndexType = shopCfg.menu2,
  70. ShopCfgIds = new List<int> { shopCfgId },
  71. EndTime = activityInfo.endTime
  72. };
  73. _ltgGbItemData3.Add(ltgGbItemData);
  74. }
  75. }
  76. }
  77. }
  78. //排序
  79. foreach (var item in _ltgGbItemData3)
  80. {
  81. item.ShopCfgIds = item.ShopCfgIds.OrderBy(id => id).ToList();
  82. }
  83. _ltgGbItemData3 = _ltgGbItemData3.OrderBy(a => a.IndexType).ToList();
  84. }
  85. public void UpLtgGbItemData4()
  86. {
  87. _ltgGbItemData4.Clear();
  88. foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType(
  89. ActivityType.XSLB2))
  90. {
  91. if (activityInfo.endTime >= TimeInfo.Instance.ServerNow())
  92. {
  93. ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId);
  94. //判断是否是类型4的数据
  95. if (activityOpenCfg.type == ActivityType.XSLB2)
  96. {
  97. foreach (var shopCfgId in activityOpenCfg.paramsArr)
  98. {
  99. FillData(_ltgGbItemData4, shopCfgId, activityInfo.endTime);
  100. }
  101. }
  102. }
  103. }
  104. _ltgGbItemData4 = _ltgGbItemData4.OrderBy(a => a.ShopCfgId).ToList();
  105. }
  106. public void UpLtgGbItemData5()
  107. {
  108. _ltgGbItemData5.Clear();
  109. foreach (ActivityInfo activityInfo in ActivityGlobalDataManager.Instance.GetActivityInfoByType(
  110. ActivityType.XSLB3))
  111. {
  112. if (activityInfo.endTime >= TimeInfo.Instance.ServerNow())
  113. {
  114. ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.activityId);
  115. //判断是否是类型4的数据
  116. if (activityOpenCfg.type == ActivityType.XSLB3)
  117. {
  118. FillData(_ltgGbItemData5, activityOpenCfg.paramsArr[0], activityInfo.endTime);
  119. }
  120. }
  121. }
  122. _ltgGbItemData5 = _ltgGbItemData5.OrderBy(a => a.ShopCfgId).ToList();
  123. }
  124. private void FillData(List<LimitedTimeGiftBoxItemYxData> listData, int shopCfgId, long endTime)
  125. {
  126. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId);
  127. if (shopCfg == null)
  128. {
  129. Log.Error("shopCfg is null");
  130. return;
  131. }
  132. var ltgGbItemData = listData.FirstOrDefault(a => a.ShopCfgId == shopCfgId);
  133. if (ltgGbItemData == null)
  134. {
  135. listData.Add(new LimitedTimeGiftBoxItemYxData
  136. {
  137. EndTime = endTime,
  138. ShopCfgId = shopCfg.id,
  139. IndexType = shopCfg.menu2
  140. });
  141. }
  142. else
  143. {
  144. var index = listData.IndexOf(ltgGbItemData);
  145. ltgGbItemData.IndexType = shopCfg.menu2;
  146. ltgGbItemData.EndTime = endTime;
  147. listData[index] = ltgGbItemData;
  148. }
  149. }
  150. }
  151. }