WX-Game1/Assets/Scripts/Component/CheckInComponent.cs

94 lines
2.3 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using DefaultNamespace;
using Newtonsoft.Json;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using WXGame.Network;
/// <summary>
/// 签到
/// </summary>
public class CheckInComponent : MonoBehaviour
{
public Button closeButton;
public Button claimButton;
public Transform[] checkInDays;
private void Awake()
{
claimButton.onClick.AddListener(delegate { SignToday(); });
closeButton.onClick.AddListener(CloseWindow);
}
private void Start()
{
GetMydates();
}
private void CloseWindow()
{
UIManager.Instance.HideUI("签到");
}
/// <summary>
/// 今日打卡
/// </summary>
private async UniTask SignToday()
{
try
{
var result = await WebRequestManager.Instance.PostRequestAsync(
url: Apis.GetSignToday()
);
Debug.Log(result.ResponseText);
}
catch (System.Exception ex)
{
Debug.LogError($"GET请求失败: {ex.Message}");
throw; // 重新抛出异常,让调用者知道失败
}
}
/// <summary>
/// 获取7日签到数据
/// </summary>
private async UniTask GetMydates()
{
var result = await WebRequestManager.Instance.PostRequestAsync(
url: Apis.GetMyDates()
);
Debug.Log(result.ResponseText);
SignData signData = JsonConvert.DeserializeObject<SignData>(result.ResponseText);
bool isSignToday = false;
if (signData != null && signData.code == 0)
{
for (int i = 0; i < signData.data.data.Count; i++)
{
checkInDays[i].Find("币").GetComponent<TMP_Text>().text = signData.data.data[i].nums.ToString();
if (!isSignToday)
{
if (signData.data.data[i].status == 0)
{
checkInDays[i].Find("可领取").gameObject.SetActive(true);
isSignToday = true;
}
else
{
checkInDays[i].Find("已领取").gameObject.SetActive(true);
}
}
}
}
}
}