340 lines
12 KiB
C#
340 lines
12 KiB
C#
using System;
|
|
using IgnoreOPS;
|
|
using UnityEngine;
|
|
using Spine.Unity;
|
|
using Newtonsoft.Json;
|
|
using SGModule.NetKit;
|
|
|
|
namespace ChillConnect
|
|
{
|
|
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()
|
|
{
|
|
SaveData.saveDataFunc();
|
|
|
|
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 = SaveData.GetSaveObject().PettyState;
|
|
// Debug.Log($"PettyState============: {SaveData.GetSaveObject().PettyState}");
|
|
var num = GameHelper.GetCommonModel().SmallReward;
|
|
ui.com_get_panel.text_reward.text = $"{GameHelper.Get102Str(num)} USD";
|
|
|
|
|
|
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<SkeletonAnimation>(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;
|
|
SaveData.GetSaveObject().PettyState = 1;
|
|
ui.anim.visible = false;
|
|
};
|
|
});
|
|
|
|
};
|
|
}
|
|
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;
|
|
SaveData.GetSaveObject().PettyState = 2;
|
|
if (!SaveData.GetSaveObject().PettyAccount.IsNullOrWhiteSpace())
|
|
{
|
|
ui.com_account.com_email.enter_email.text = SaveData.GetSaveObject().PettyAccount;
|
|
}
|
|
if (!SaveData.GetSaveObject().PettyFirstName.IsNullOrWhiteSpace())
|
|
{
|
|
ui.com_account.com_first_name.enter_first_name.text = SaveData.GetSaveObject().PettyFirstName;
|
|
}
|
|
if (!SaveData.GetSaveObject().PettyLastName.IsNullOrWhiteSpace())
|
|
{
|
|
ui.com_account.com_last_name.enter_last_name.text = SaveData.GetSaveObject().PettyLastName;
|
|
}
|
|
|
|
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("Please enter the correct account information", true);
|
|
return;
|
|
}
|
|
|
|
if (!GameHelper.CheckAccountValidly(account))
|
|
{
|
|
GameHelper.ShowTips("Please enter the correct account information", true);
|
|
return;
|
|
}
|
|
|
|
var fname = ui.com_account.com_first_name.enter_first_name.text.Replace(" ", "");
|
|
if (!GameHelper.CheckNameValidly(fname))
|
|
{
|
|
GameHelper.ShowTips("Please enter the correct account information", true);
|
|
return;
|
|
}
|
|
|
|
var lname = ui.com_account.com_last_name.enter_last_name.text.Replace(" ", "");
|
|
if (!GameHelper.CheckNameValidly(lname) && !AppConst.isPt())
|
|
{
|
|
GameHelper.ShowTips("Please enter the correct account information", true);
|
|
return;
|
|
}
|
|
|
|
SaveData.GetSaveObject().PettyAccount = account;
|
|
SaveData.GetSaveObject().PettyFirstName = fname;
|
|
SaveData.GetSaveObject().PettyLastName = 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<OrderState>(account,
|
|
fname, lname, (isSuccess, obj) =>
|
|
{
|
|
if (isSuccess)
|
|
{
|
|
GotoDetail();
|
|
}
|
|
else
|
|
{
|
|
GameHelper.ShowTips("Failed to save information., please try again");
|
|
ui.com_second_confirm.btn_confirm.enabled = true;
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
private void GotoDetail()
|
|
{
|
|
ui.state.selectedIndex = 3;
|
|
SaveData.GetSaveObject().PettyState = 3;
|
|
|
|
var pettyAmount = SaveData.GetSaveObject().PettyAmount;
|
|
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();
|
|
SaveData.GetSaveObject().PettyAmount = num;
|
|
}
|
|
|
|
var pettyDateTime = SaveData.GetSaveObject().PettyDateTime;
|
|
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();
|
|
SaveData.GetSaveObject().PettyDateTime = dateTime;
|
|
}
|
|
|
|
var pettyOrderID = SaveData.GetSaveObject().PettyOrderID;
|
|
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();
|
|
|
|
SaveData.GetSaveObject().PettyOrderID = datePart + randomPart;
|
|
}
|
|
|
|
|
|
ui.com_detail.text_email.SetVar("email",SaveData.GetSaveObject().PettyAccount).FlushVars();
|
|
|
|
var pettyDataLimit = SaveData.GetSaveObject().PettyDataLimit;
|
|
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();
|
|
SaveData.GetSaveObject().PettyDataLimit = 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 = SaveData.GetSaveObject().PettyDataLimit;
|
|
|
|
// 2. 获取当前日期(去掉时分秒,只保留日期部分,避免当天误判)
|
|
DateTime currentDate = DateTime.Now.Date;
|
|
|
|
// 3. 获取数据保存时的日期
|
|
DateTime saveDate = DateTime.ParseExact(SaveData.GetSaveObject().PettyDateTime, "yyyy.MM.dd", System.Globalization.CultureInfo.InvariantCulture);
|
|
|
|
// 4. 计算时间差
|
|
TimeSpan timeSpan = currentDate - saveDate;
|
|
|
|
// 5. 判断是否超出限制天数
|
|
bool isExpired = timeSpan.TotalDays >= pettyDataLimit;
|
|
|
|
return isExpired;
|
|
}
|
|
|
|
}
|
|
}
|