ZGTHgiftDCTipsView.cs 7.8 KB

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