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;
///
/// 签到
///
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("签到");
}
///
/// 今日打卡
///
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; // 重新抛出异常,让调用者知道失败
}
}
///
/// 获取7日签到数据
///
private async UniTask GetMydates()
{
var result = await WebRequestManager.Instance.PostRequestAsync(
url: Apis.GetMyDates()
);
Debug.Log(result.ResponseText);
SignData signData = JsonConvert.DeserializeObject(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().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);
}
}
}
}
}
}