LimitedTimeGiftBoxDataManager.cs 6.4 KB

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