LimitedTimeGiftBoxDataManager.cs 6.5 KB

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