ZGTHgiftDCTipsView.cs 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. using ET;
  2. using FairyGUI;
  3. using UI.ActivityMain;
  4. using UI.CommonGame;
  5. using System;
  6. using System.Collections.Generic;
  7. using cfg.GfgCfg;
  8. using static GFGGame.ShopSProxy;
  9. namespace GFGGame
  10. {
  11. public class ZGTHgiftDCTipsView : BaseWindow
  12. {
  13. //直购典藏弹窗
  14. private UI_ZGTHgiftDCTipsUI _ui;
  15. private List<EverydaySaleCfg> zgthdcListCfg = new List<EverydaySaleCfg>();
  16. private int indexSuit = 0;
  17. private int giftItemId = 0;
  18. private int giftShopId = 0;
  19. //创角时间
  20. private long second_CreateRole =
  21. GameGlobal.zoneScene.GetComponent<RoleInfosComponent>().GetCurrentRole().CreateTime;
  22. //折扣时间两天(豪秒)
  23. private long saleSecondNum = 172800000;
  24. public override void Dispose()
  25. {
  26. if (_ui != null)
  27. {
  28. _ui.Dispose();
  29. _ui = null;
  30. }
  31. base.Dispose();
  32. }
  33. protected override void OnInit()
  34. {
  35. base.OnInit();
  36. packageName = UI_ZGTHgiftDCTipsUI.PACKAGE_NAME;
  37. _ui = UI_ZGTHgiftDCTipsUI.Create();
  38. this.viewCom = _ui.target;
  39. this.modal = true;
  40. this.viewCom.Center();
  41. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  42. _ui.m_Itemlist.itemRenderer = ListItemRender;
  43. _ui.m_btnCharge.target.onClick.Add(OnBtnGetClick);
  44. _ui.m_btnClose.onClick.Add(this.Hide);
  45. _ui.m_notTips.onClick.Add(OnClickTips);
  46. }
  47. protected override void AddEventListener()
  48. {
  49. base.AddEventListener();
  50. EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpdateBtn);
  51. }
  52. protected override void RemoveEventListener()
  53. {
  54. base.RemoveEventListener();
  55. EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, UpdateBtn);
  56. }
  57. protected override void OnShown()
  58. {
  59. base.OnShown();
  60. zgthdcListCfg = CommonDataManager.Tables.TblEverydaySaleCfg.GetGroup1ByActivityId(6001);
  61. indexSuit = ReturnDiscountTimeSuitIndex();
  62. UpdateView();
  63. var activityInfo = zgthdcListCfg[indexSuit];
  64. if (activityInfo != null)
  65. {
  66. long timeSale = (second_CreateRole + (saleSecondNum * activityInfo.Id)) - TimeHelper.ServerNow();
  67. _ui.m_timeText.text = TimeUtil.FormattingTimeTo_DDHHmm(timeSale);
  68. }
  69. Timers.inst.Add(1, 0, UpdateTime);
  70. }
  71. protected async override void OnHide()
  72. {
  73. if (_ui.m_TipImg.visible)
  74. {
  75. await ActivitySProxy.SetTipsStatus(6001, 1, 1);
  76. }
  77. else
  78. {
  79. await ActivitySProxy.SetTipsStatus(6000, 0, 1);
  80. }
  81. Timers.inst.Remove(UpdateTime);
  82. base.OnHide();
  83. }
  84. private async void OnBtnGetClick()
  85. {
  86. //修改直购逻辑,根据时间判断传入不用的直购id,是折扣还是现价
  87. await ReqShopBuy(giftShopId);
  88. }
  89. private void UpdateBtn()
  90. {
  91. ShopCfg shopCfg = CommonDataManager.Tables.TblShopCfg.GetOrDefault(giftShopId);
  92. var remainBuyNum = shopCfg.MaxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.Id);
  93. if (remainBuyNum == 0)
  94. {
  95. //已售完
  96. _ui.m_btnCharge.target.visible = false;
  97. }
  98. else
  99. {
  100. //未售完
  101. _ui.m_btnCharge.target.visible = true;
  102. }
  103. }
  104. private void OnClickTips()
  105. {
  106. if (_ui.m_TipImg.visible == false)
  107. {
  108. _ui.m_TipImg.visible = true;
  109. }
  110. else
  111. {
  112. _ui.m_TipImg.visible = false;
  113. }
  114. }
  115. private void OnNumericChange(EventContext context)
  116. {
  117. }
  118. private void UpdateView()
  119. {
  120. //修改suitList,giftbagList,还需要根据时间判断折扣
  121. var suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(zgthdcListCfg[indexSuit].SuitShow);
  122. ShopCfg shopCfg = CommonDataManager.Tables.TblShopCfg.GetOrDefault(CommonDataManager.Tables
  123. .TblActivityOpenCfg
  124. .GetOrDefault(6001).Params1[indexSuit]);
  125. giftItemId = shopCfg.ItemId;
  126. giftShopId = shopCfg.Id;
  127. ItemCfg item = CommonDataManager.Tables.TblItemCfg.GetOrDefault(giftItemId);
  128. int discount = (int)(((double)shopCfg.OriginalPrice / (double)shopCfg.ConfigPrice) * 100);
  129. _ui.m_suitIcon.url = string.Format("ui://ActivityMain/{0}", suitCfg.Res);
  130. _ui.m_Itemlist.numItems = item.Items.Count;
  131. _ui.m_txtName.text = suitCfg.Name;
  132. _ui.m_btnCharge.target.GetChild("txtPrice").text = string.Format("{0}", shopCfg.ConfigPrice.ToString());
  133. _ui.m_btnCharge.target.GetChild("txtOriginalPrice").text =
  134. string.Format("{0}", shopCfg.OriginalPrice.ToString());
  135. _ui.m_discountText.text = discount.ToString();
  136. int buyNum = ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.Id);
  137. if (shopCfg.MaxBuyNum == 0 || buyNum < shopCfg.MaxBuyNum)
  138. {
  139. _ui.m_btnCharge.target.visible = true;
  140. }
  141. else
  142. {
  143. _ui.m_btnCharge.target.visible = false;
  144. }
  145. //判断这个直购id是否购买是否显示按钮
  146. if (false)
  147. {
  148. _ui.m_btnCharge.target.visible = false;
  149. }
  150. }
  151. private void ListItemRender(int index, GObject obj)
  152. {
  153. UI_ZGTHRewardItem item = UI_ZGTHRewardItem.Proxy(obj);
  154. ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(giftItemId);
  155. int id = itemCfg.Items[index].ItemId;
  156. int count = itemCfg.Items[index].Count;
  157. ItemData itemDate = ItemUtil.createItemData(id, count);
  158. ItemView itemView = new ItemView(item.m_item);
  159. itemView.SetData(itemDate);
  160. item.m_name.text = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemCfg.Items[index].Count).Name;
  161. UI_ZGTHRewardItem.ProxyEnd();
  162. }
  163. private int ReturnDiscountTimeSuitIndex()
  164. {
  165. int count = 0;
  166. foreach (var item in zgthdcListCfg)
  167. {
  168. if (IsDisountTime(item))
  169. {
  170. indexSuit = count;
  171. return indexSuit;
  172. }
  173. count++;
  174. }
  175. return indexSuit;
  176. }
  177. private bool IsDisountTime(EverydaySaleCfg item)
  178. {
  179. if (item.ActivityId == 6002 && item.OpenTime == "")
  180. {
  181. return ActivityGlobalDataManager.Instance.IsActivityOpen(item.ActivityId);
  182. }
  183. long second = TimeHelper.ServerNow() - second_CreateRole;
  184. if (second < (saleSecondNum * item.Id) && second >= (saleSecondNum * (item.Id - 1)))
  185. {
  186. return true;
  187. }
  188. return false;
  189. }
  190. private void UpdateTime(object param)
  191. {
  192. var activityInfo = zgthdcListCfg[indexSuit];
  193. long timeSale = 0;
  194. if (activityInfo != null)
  195. {
  196. timeSale = (second_CreateRole + (saleSecondNum * activityInfo.Id)) - TimeHelper.ServerNow();
  197. }
  198. if (timeSale <= 0)
  199. {
  200. _ui.m_timeText.text = "";
  201. _ui.m_btnCharge.target.visible = false;
  202. Timers.inst.Remove(UpdateTime);
  203. return;
  204. }
  205. _ui.m_timeText.text = TimeUtil.FormattingTimeTo_DDHHmm(timeSale);
  206. }
  207. }
  208. }