killapp/Assets/Scripts/Managers/DataManager.cs

95 lines
3.0 KiB
C#
Raw Normal View History

2026-04-24 16:57:44 +08:00
using System;
2026-04-16 14:57:19 +08:00
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using Kill.Network;
2026-04-24 16:57:44 +08:00
using Kill.UI.Components;
2026-04-16 14:57:19 +08:00
using UnityEngine;
namespace Kill.Managers
{
public class DataManager : MonoBehaviour
{
public string selectedDeviceMac="";
2026-04-16 14:57:19 +08:00
public static DataManager Instance { get; private set; }
public DeviceInfo selectedDevice;
2026-06-10 15:04:14 +08:00
public List<DeviceInfo> OwnedDevices = new List<DeviceInfo>();
public List<DeviceInfo> SharedDevices = new List<DeviceInfo>();
2026-05-18 08:42:33 +08:00
public bool isOwner;
2026-04-16 14:57:19 +08:00
private void Awake()
{
Instance = this;
}
public async Task Init()
{
InitUser();
GetSelectedDeviceMac();
2026-04-16 14:57:19 +08:00
}
public string token = "";
public UserInfo userInfo = new UserInfo();
public void SetToken(string token,UserInfo userInfo)
{
this.token = token;
this.userInfo = userInfo;
string userData =JsonUtility.ToJson(userInfo);
2026-04-20 08:31:41 +08:00
Debug.Log(userData);
2026-04-16 14:57:19 +08:00
PlayerPrefs.SetString("token", token);
PlayerPrefs.SetString("userData", userData);
2026-04-24 16:57:44 +08:00
NetworkCtrl.Instance.RemoveGlobalHeader("token");
NetworkCtrl.Instance.AddGlobalHeader("token", token);
2026-04-16 14:57:19 +08:00
}
public void SavaSelectedDeviceMac(string mac)
{
selectedDeviceMac=mac;
PlayerPrefs.SetString("selectedDeviceMac", selectedDeviceMac);
}
public void GetSelectedDeviceMac()
{
selectedDeviceMac=PlayerPrefs.GetString("selectedDeviceMac", "");
}
2026-04-16 14:57:19 +08:00
public void InitUser()
{
token = PlayerPrefs.GetString("token", "");
string userData = PlayerPrefs.GetString("userData", "");
userInfo = JsonUtility.FromJson<UserInfo>(userData);
2026-04-24 16:57:44 +08:00
NetworkCtrl.Instance.RemoveGlobalHeader("token");
NetworkCtrl.Instance.AddGlobalHeader("token",token);
Debug.Log(token);
2026-04-16 14:57:19 +08:00
}
public void ClearInfo()
{
token = "";
userInfo = new UserInfo();
PlayerPrefs.DeleteKey("token");
PlayerPrefs.DeleteKey("userData");
}
2026-04-28 16:35:51 +08:00
public async Task<bool> TokenLogin()
2026-04-24 16:57:44 +08:00
{
LoadingUI.Show();
try
{
// 获取用户详情
var response = await NetworkCtrl.Instance.Post<LoginResponse>("/api/v1/auth/token-login");
LoadingUI.Hide();
2026-04-28 16:35:51 +08:00
if(response.Data.code==200)
{
SetToken(response.Data.data.token,response.Data.data.user);
return true;
}
else
{
ClearInfo();
return false;
}
2026-04-24 16:57:44 +08:00
}
catch (Exception ex)
{
LoadingUI.Hide();
Debug.LogError($"TokenLogin 异常: {ex.Message}");
2026-04-28 16:35:51 +08:00
return false;
2026-04-24 16:57:44 +08:00
}
}
2026-04-16 14:57:19 +08:00
}
}