StoreZGDCView.cs 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. using UI.Store;
  2. using UI.CommonGame;
  3. using UI.ActivityMain;
  4. using FairyGUI;
  5. using System.Collections.Generic;
  6. using ET;
  7. using static GFGGame.ShopSProxy;
  8. namespace GFGGame
  9. {
  10. public class StoreZGDCView : BaseWindow
  11. {
  12. //直购典藏-商城
  13. private UI_StoreZGDCUI _ui;
  14. private ValueBarController _valueBarController;
  15. private List<ShopCfg> _shopCfgs;
  16. private List<int> giftBagList = new List<int>();
  17. private int indexSuit = 0;
  18. private int indexItem = 0;
  19. private List<int> listIndex = new List<int>();
  20. public override void Dispose()
  21. {
  22. if (_valueBarController != null)
  23. {
  24. _valueBarController.Dispose();
  25. _valueBarController = null;
  26. }
  27. if (_ui != null)
  28. {
  29. _ui.Dispose();
  30. }
  31. _ui = null;
  32. base.Dispose();
  33. }
  34. protected override void OnInit()
  35. {
  36. base.OnInit();
  37. packageName = UI_StoreZGDCUI.PACKAGE_NAME;
  38. _ui = UI_StoreZGDCUI.Create();
  39. this.viewCom = _ui.target;
  40. isfullScreen = true;
  41. this.clickBlankToClose = false;
  42. this.bringToFontOnClick = false;
  43. _valueBarController = new ValueBarController(_ui.m_valueBar);
  44. _ui.m_Itemlist.itemRenderer = ListItemRender;
  45. _ui.m_suitList.itemRenderer = ListItemSuitRender;
  46. _ui.m_suitList.SetVirtualAndLoop();
  47. _ui.m_suitList.scrollPane.decelerationRate = 0.9f;
  48. }
  49. protected override void AddEventListener()
  50. {
  51. base.AddEventListener();
  52. EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpdateView);
  53. EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, OnNumericChange);
  54. }
  55. protected override void RemoveEventListener()
  56. {
  57. base.RemoveEventListener();
  58. EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, UpdateView);
  59. EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, OnNumericChange);
  60. }
  61. protected override void OnShown()
  62. {
  63. base.OnShown();
  64. _valueBarController.OnShown();
  65. int muem2 = (int)this.viewData;
  66. _shopCfgs = ShopCfgArray.Instance.GetCfgsBymenu1Andmenu2(102, 0);
  67. _shopCfgs = ShopDataManager.Instance.RemoveNotOpenCfg(_shopCfgs);
  68. _shopCfgs = ShopDataManager.Instance.SortShopGoodsCfgs(_shopCfgs);
  69. AddgiftBagID();
  70. UpdateView();
  71. Timers.inst.Add(5, 0, UpdateListSuit);
  72. Timers.inst.Add(1, 0, UpdateTime);
  73. }
  74. protected override void OnHide()
  75. {
  76. Timers.inst.Remove(UpdateListSuit);
  77. Timers.inst.Remove(UpdateTime);
  78. giftBagList.Clear();
  79. listIndex.Clear();
  80. base.OnHide();
  81. ShopViewManager.Instance.ClearItemEff();
  82. _valueBarController.OnHide();
  83. }
  84. private async void OnBtnGetClick()
  85. {
  86. }
  87. private void OnClickLeft()
  88. {
  89. indexSuit--;
  90. UpdateView();
  91. }
  92. private void OnClickRight()
  93. {
  94. indexSuit++;
  95. UpdateView();
  96. }
  97. private void OnNumericChange(EventContext context)
  98. {
  99. }
  100. private void AddgiftBagID()
  101. {
  102. for(int i=0;i< ActivityOpenCfgArray.Instance.GetCfg(6001).paramsArr.Length;i++)
  103. {
  104. giftBagList.Add(ActivityOpenCfgArray.Instance.GetCfg(6001).paramsArr[i]);
  105. }
  106. for (int i = 0; i < ActivityOpenCfgArray.Instance.GetCfg(6002).paramsArr.Length; i++)
  107. {
  108. giftBagList.Add(ActivityOpenCfgArray.Instance.GetCfg(6002).paramsArr[i]);
  109. }
  110. }
  111. private void UpdateView()
  112. {
  113. ShopViewManager.Instance.ClearItemEff();
  114. // 修改直购典藏状态
  115. _ui.m_Itemlist.numItems = _shopCfgs.Count;
  116. _ui.m_suitList.numItems = giftBagList.Count;
  117. }
  118. private void ListItemRender(int index, GObject obj)
  119. {
  120. ShopCfg shopCfg = _shopCfgs[index];
  121. ShopViewManager.Instance.UptadeItem(obj, shopCfg);
  122. }
  123. private void ListItemSuitRender(int index, GObject obj)
  124. {
  125. UI_StoreZGTHitem item = UI_StoreZGTHitem.Proxy(obj);
  126. var suitCfg = SuitCfgArray.Instance.GetCfg(EverydaySaleCfgArray.Instance.dataArray[index].SuitShow);
  127. ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(giftBagList[index]);
  128. int discount = (int)(((double)shopCfg.originalPrice / (double)shopCfg.configPrice) * 100);
  129. item.m_suitIcon.url = string.Format("ui://Store/{0}", suitCfg.res);
  130. item.m_txtName.text = suitCfg.name;
  131. ////判断是否在折扣时间内,是否显示
  132. if (IsDisountTime(EverydaySaleCfgArray.Instance.dataArray[index]))
  133. {
  134. //不在
  135. item.m_DiscountGroud.visible = false;
  136. item.m_timeText.visible = false;
  137. item.m_btnCharge.GetChild("title").text = string.Format("{0}元/购买", shopCfg.originalPrice.ToString());
  138. }
  139. else
  140. {
  141. //在
  142. //_ui.m_btnCharge.GetChild("title").text = string.Format("{0}元/购买", shopCfg.configPrice.ToString());
  143. item.m_discountText.text = string.Format("{0}", discount.ToString());
  144. item.m_DiscountGroud.visible = true;
  145. item.m_timeText.visible = true;
  146. long endTime = TimeUtil.DateTimeToTimestamp(EverydaySaleCfgArray.Instance.dataArray[index].endTime);
  147. var leftTime = endTime - TimeHelper.ServerNow();
  148. item.m_timeText.text = TimeUtil.FormattingTimeTo_DDHHmm(leftTime);
  149. }
  150. if(suitCfg.rarity == 5)
  151. {
  152. item.m_tyDesc.visible = true;
  153. }
  154. else
  155. {
  156. item.m_tyDesc.visible = false;
  157. }
  158. UI_StoreZGTHitem.ProxyEnd();
  159. }
  160. private void UpdateListSuit(object param)
  161. {
  162. int itemIndex = _ui.m_suitList.ChildIndexToItemIndex(0) + 1;
  163. indexItem = itemIndex - 1;
  164. itemIndex = itemIndex == _ui.m_suitList.numItems ? 0 : itemIndex;
  165. _ui.m_suitList.scrollPane.ScrollRight(0.8f, true);
  166. }
  167. private int GetDiscountTimeID()
  168. {
  169. //判断当前indexSuit是否在折扣时间内,根据配置表返回不同的直购id
  170. return 0;//activityInfo.StartTime <= TimeHelper.ServerNow() && activityInfo.EndTime > TimeHelper.ServerNow();
  171. }
  172. private bool IsDisountTime(EverydaySaleCfg item)
  173. {
  174. long endTime;
  175. long startTime;
  176. endTime = TimeUtil.DateTimeToTimestamp(item.endTime);
  177. startTime = TimeUtil.DateTimeToTimestamp(item.openTime);
  178. if (startTime <= TimeHelper.ServerNow() && endTime > TimeHelper.ServerNow())
  179. {
  180. return false;
  181. }
  182. return true;
  183. }
  184. private void UpdateTime(object param)
  185. {
  186. var activityInfo = EverydaySaleCfgArray.Instance.dataArray[indexItem];
  187. long endTime = 0;
  188. if (activityInfo != null)
  189. {
  190. endTime = TimeUtil.DateTimeToTimestamp(activityInfo.endTime);
  191. }
  192. int index = _ui.m_suitList.GetFirstChildInView();
  193. GObject itemobj = _ui.m_suitList.GetChildAt(index%3);
  194. UI_StoreZGTHitem item = UI_StoreZGTHitem.Proxy(itemobj);
  195. var leftTime = endTime - TimeHelper.ServerNow();
  196. if (leftTime <= 0)
  197. {
  198. item.m_timeText.text = "";
  199. item.m_DiscountGroud.visible = false;
  200. }
  201. else
  202. {
  203. item.m_timeText.text = TimeUtil.FormattingTimeTo_DDHHmm(leftTime);
  204. }
  205. UI_StoreZGTHitem.ProxyEnd();
  206. }
  207. private void ReturnDiscountTimeSuitIndex()
  208. {
  209. int count = 0;
  210. long endTime;
  211. long startTime;
  212. foreach (var item in EverydaySaleCfgArray.Instance.dataArray)
  213. {
  214. endTime = TimeUtil.DateTimeToTimestamp(item.endTime);
  215. startTime = TimeUtil.DateTimeToTimestamp(item.openTime);
  216. if (startTime <= TimeHelper.ServerNow() && endTime > TimeHelper.ServerNow())
  217. {
  218. listIndex.Add(count);
  219. }
  220. count++;
  221. }
  222. }
  223. }
  224. }