ShanDongVirtualPowerPlant/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/DataController.cs

86 lines
2.8 KiB
C#

using Cysharp.Threading.Tasks;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DataController : MonoSingleton<DataController>
{
public string distCode;
public AreaStationData areaStationData = new AreaStationData();
public CityInfo[] cityInfos;
private async void Start()
{
areaStationData = await GetProvincialLevelStationData("37");
cityInfos = transform.GetComponentsInChildren<CityInfo>();
for (int i = 0; i < cityInfos.Length; i++)
{
cityInfos[i].Init();
}
}
/// <summary>
/// 针对区县
/// </summary>
/// <param name="_distCode"></param>
/// <param name="_disName"></param>
/// <returns></returns>
public async UniTask<ScreenTopStatistics> GetProvincialLevelStationInfo(string _distCode, string _disName)
{
if (_distCode.Length == 6)
distCode = _distCode.Substring(0, 4);
string url = Bootstrap.Instance.urlDic["地图信息汇总"];
AreaStationData areaStationData = await AsyncWebReq.Get<AreaStationData>(url + distCode, Bootstrap.Instance.webAdapter.head, Bootstrap.Instance.webAdapter.token);
DataItem sts = areaStationData.data.Find(s => s.disName == _disName);
if (sts == null)
return null;
return sts.screenTopStatistics;
}
/// <summary>
/// 针对省级区域
/// </summary>
/// <param name="_distCode"></param>
/// <returns></returns>
public ScreenTopStatistics GetProvincialLevelStationDataByDistCode(string _distCode)
{
for (int i = 0; i < areaStationData.data.Count; i++)
{
if (areaStationData.data[i].distCode == _distCode)
{
return areaStationData.data[i].screenTopStatistics;
}
}
return null;
}
/// <summary>
/// 获取每个区域的聚合信息
/// </summary>
/// <param name="_distCode"></param>
/// <returns></returns>
public async UniTask<AreaData> GetAreaDataByDistCode(string _distCode)
{
await UniTask.Delay(100);
string url = Bootstrap.Instance.urlDic["地图弹出框"];
AreaData areaData = await AsyncWebReq.Get<AreaData>($"{url}{_distCode}", Bootstrap.Instance.webAdapter.head, Bootstrap.Instance.webAdapter.token);
if (!bool.Parse(areaData.success)) return null;
return areaData;
}
/// <summary>
/// 获取地图汇总
/// </summary>
/// <param name="_distCode"></param>
/// <returns></returns>
private async UniTask<AreaStationData> GetProvincialLevelStationData(string _distCode)
{
string url = Bootstrap.Instance.urlDic["地图信息汇总"];
AreaStationData areaStationData = await AsyncWebReq.Get<AreaStationData>(url + _distCode, Bootstrap.Instance.webAdapter.head, Bootstrap.Instance.webAdapter.token);
return areaStationData;
}
}