using System; using IgnoreOPS; using UnityEngine; using Spine.Unity; using Newtonsoft.Json; using SGModule.NetKit; namespace RedHotRoast { public class PettyAwardUI : BaseUI { private PettyAwardUICtrl ctrl; private PettyAwardModel model; private FGUI.ZM_Petty.com_petty_award ui; private Action closeCallback; private Action open_sign; private bool is_get = false; public PettyAwardUI(PettyAwardUICtrl ctrl) : base(ctrl) { uiName = UIConst.PettyAwardUI; this.ctrl = ctrl; } protected override void SetUIInfo(UIInfo uiInfo) { uiInfo.packageName = "ZM_Petty"; uiInfo.assetName = "com_petty_award"; uiInfo.layerType = UILayerType.Popup; uiInfo.isNeedOpenAnim = true; uiInfo.isNeedCloseAnim = true; uiInfo.isNeedUIMask = true; } #region 生命周期 protected override void OnInit() { model = ModuleManager.Instance.GetModel(ModelConst.PettyAwardModel) as PettyAwardModel; } protected override void OnClose() { GameDispatcher.Instance.Dispatch(GameMsg.StopArrowTouch, true); closeCallback?.Invoke(); } protected override void OnBind() { ui = baseUI as FGUI.ZM_Petty.com_petty_award; } protected override void OnOpenBefore(object args) { GameDispatcher.Instance.Dispatch(GameMsg.StopArrowTouch, false); InitView(); } protected override void OnOpen(object args) { //open_sign = (System.Action)args; } protected override void OnHide() { } protected override void OnDisplay(object args) { } #endregion #region 消息 protected override void AddListener() { } protected override void RemoveListener() { } #endregion private int _mLastState; //初始化页面逻辑 private void InitView() { _mLastState = DataMgr.PettyState.Value; // Debug.Log($"PettyState============: {DataMgr.PettyState.Value}"); var num = GameHelper.GetCommonModel().SmallReward; ui.com_get_panel.text_reward.text = $"{GameHelper.Get102Str(num)}"; ui.com_get_panel.btn_get.SetClick(GotoEnterAccount); ui.btn_close.SetClick(()=> { if (ui.state.selectedIndex == 4) { GotoEnterAccount(); } else { CtrlCloseUI(); } }); if (_mLastState == 0) { // var sk = FXManager.Instance.SetFx(ui.anim, Fx_Type.fx_petty_reward, ref closeCallback); // sk.state.SetAnimation(0, "newbie_reward_an01", false); // sk.state.Complete += (a) => // { // sk.state.SetAnimation(0, "newbie_reward_an02", true); // ui.btn_gerAward.SetClick(() => // { // ui.btn_gerAward.visible = false; // sk.state.SetAnimation(0, "newbie_reward_an03", false); // sk.state.Complete += (a) => // { // ui.state.selectedIndex = 1; // DataMgr.PettyState.Value = 1; // ui.anim.visible = false; // }; // }); // // }; ui.state.selectedIndex = 1; DataMgr.PettyState.Value = 1; } else { GotoPanel(_mLastState); } } private void GotoPanel(int index) { switch (index) { case 1: ui.state.selectedIndex = 1; break; case 2: ui.state.selectedIndex = 2; GotoEnterAccount(); break; case 3: ui.state.selectedIndex = 3; GotoDetail(); break; } } private void GotoEnterAccount() { ui.state.selectedIndex = 2; DataMgr.PettyState.Value = 2; if (!DataMgr.PettyAccount.Value.IsNullOrWhiteSpace()) { ui.com_account.com_email.enter_email.text = DataMgr.PettyAccount.Value; } if (!DataMgr.PettyFirstName.Value.IsNullOrWhiteSpace()) { ui.com_account.com_first_name.enter_first_name.text = DataMgr.PettyFirstName.Value; } if (!DataMgr.PettyLastName.Value.IsNullOrWhiteSpace()) { ui.com_account.com_last_name.enter_last_name.text = DataMgr.PettyLastName.Value; } ui.com_account.btn_confirm.SetClick(ConfirmClick); } private void ConfirmClick() { var account = ui.com_account.com_email.enter_email.text.Replace(" ", ""); if (account == "") { GameHelper.ShowTips("empty_account", true); return; } if (!GameHelper.CheckAccountValidly(account)) { GameHelper.ShowTips("empty_account", true); return; } var fname = ui.com_account.com_first_name.enter_first_name.text.Replace(" ", ""); if (!GameHelper.CheckNameValidly(fname)) { GameHelper.ShowTips("empty_account", true); return; } var lname = ui.com_account.com_last_name.enter_last_name.text.Replace(" ", ""); if (!GameHelper.CheckNameValidly(lname) && !AppConst.isPt()) { GameHelper.ShowTips("empty_account", true); return; } DataMgr.PettyAccount.Value = account; DataMgr.PettyFirstName.Value = fname; DataMgr.PettyLastName.Value = lname; GotoSecondConfirm(account, fname, lname); } private void GotoSecondConfirm( string account, string fname, string lname) { ui.state.selectedIndex = 4; PaymentMsg info = new PaymentMsg { email = account, first_name = fname, last_name = lname }; ui.com_second_confirm.text_account.SetVar("account", account).FlushVars(); ui.com_second_confirm.text_first_name.SetVar("name", fname).FlushVars(); ui.com_second_confirm.text_last_name.SetVar("name", lname).FlushVars(); ui.com_second_confirm.btn_confirm.SetClick(() => { ui.com_second_confirm.btn_confirm.enabled = false; NetApi.PayOutUserInfo(account, fname, lname, (isSuccess, obj) => { if (isSuccess) { GotoDetail(); } else { GameHelper.ShowTips("failed_save", true); ui.com_second_confirm.btn_confirm.enabled = true; } }); }); } private void GotoDetail() { ui.state.selectedIndex = 3; DataMgr.PettyState.Value = 3; var pettyAmount = DataMgr.PettyAmount.Value; if (pettyAmount != 0) { ui.com_detail.text_amount.SetVar("num", $" {GameHelper.Get102Str(pettyAmount)}").FlushVars(); } else { var num = GameHelper.GetCommonModel().SmallReward; ui.com_detail.text_amount.SetVar("num", $" {GameHelper.Get102Str(num)}").FlushVars(); DataMgr.PettyAmount.Value = num; } var pettyDateTime = DataMgr.PettyDateTime.Value; if (!pettyDateTime.IsNullOrWhiteSpace()) { ui.com_detail.text_data.SetVar("data", pettyDateTime).FlushVars(); } else { var dateTime = DateTime.Now.ToString("yyyy.MM.dd"); ui.com_detail.text_data.SetVar("data",dateTime).FlushVars(); DataMgr.PettyDateTime.Value = dateTime; } var pettyOrderID = DataMgr.PettyOrderID.Value; if (!pettyOrderID.IsNullOrWhiteSpace()) { ui.com_detail.text_order.SetVar("order", pettyOrderID).FlushVars(); } else { string datePart = DateTime.Now.ToString("yyyyMMdd"); System.Random random = new System.Random(); string randomPart = random.Next(1000, 9999).ToString(); // 生成1000-9999之间的四位数 ui.com_detail.text_order.SetVar("order",datePart + randomPart).FlushVars(); DataMgr.PettyOrderID.Value = datePart + randomPart; } ui.com_detail.text_email.SetVar("email",DataMgr.PettyAccount.Value).FlushVars(); var pettyDataLimit = DataMgr.PettyDataLimit.Value; if (pettyDataLimit != 0) { ui.com_detail.text_limit.SetVar("day", pettyDataLimit.ToString()).FlushVars(); } else { var day = GameHelper.GetCommonModel().ProcessingTime; ui.com_detail.text_limit.SetVar("day", day.ToString()).FlushVars(); DataMgr.PettyDataLimit.Value = day; } if (IsPettyDataExpired()) { ui.com_detail.btn_redeem.visible = true; ui.com_detail.btn_redeem.SetClick(() => { Debug.Log($"click redeem code view----------------------"); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RedeemCodeUI_Open); CtrlCloseUI(); }); } } public bool IsPettyDataExpired() { // 1. 获取保存的过期天数限制 var pettyDataLimit = DataMgr.PettyDataLimit.Value; // 2. 获取当前日期(去掉时分秒,只保留日期部分,避免当天误判) DateTime currentDate = DateTime.Now.Date; // 3. 获取数据保存时的日期 DateTime saveDate = DateTime.ParseExact(DataMgr.PettyDateTime.Value, "yyyy.MM.dd", System.Globalization.CultureInfo.InvariantCulture); // 4. 计算时间差 TimeSpan timeSpan = currentDate - saveDate; // 5. 判断是否超出限制天数 bool isExpired = timeSpan.TotalDays >= pettyDataLimit; return isExpired; } } }