StoreZGDCView.cs 10.0 KB

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