DataManager.cs 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using LitJson;
  6. using UnityEngine;
  7. using UnityEngine.Networking;
  8. using static Manager;
  9. public class DataManager : MonoBehaviour
  10. {
  11. public static string acc="";
  12. public static string email="";
  13. public static string token="";
  14. public static DataManager Instance;
  15. private void Awake()
  16. {
  17. Instance = this;
  18. }
  19. public void getuserinfo(Action<UserInfo> callback)
  20. {
  21. StartCoroutine(Get_Demo("/admin/userInfo", "", (string msg) => {
  22. if (msg == null)
  23. {
  24. msg = "{\"code\":200,\"message\":\"success\",\"data\":{\"count\":\"ext_hujiajun\",\"name\":\"胡佳骏\",\"dept\":\"\",\"notes\":\"\",\"position\":\"\"}}";
  25. }
  26. JsonData jdata = JsonMapper.ToObject(msg);
  27. if (jdata["data"] != null)
  28. {
  29. UserInfo data = JsonMapper.ToObject<UserInfo>(jdata["data"].ToJson());
  30. callback.Invoke(data);
  31. }
  32. else
  33. {
  34. msg = "{\"code\":200,\"message\":\"success\",\"data\":{\"count\":\"ext_hujiajun\",\"name\":\"胡佳骏\",\"dept\":\"\",\"notes\":\"\",\"position\":\"\"}}";
  35. jdata = JsonMapper.ToObject(msg);
  36. UserInfo data = JsonMapper.ToObject<UserInfo>(jdata["data"].ToJson());
  37. callback.Invoke(data);
  38. }
  39. }));
  40. }
  41. public void login(JsonData data, Action<string> callback)
  42. {
  43. StartCoroutine(Post_Demo("/admin/login", data.ToJson(), (string msg) => {
  44. callback.Invoke(msg);
  45. }));
  46. }
  47. public void getInfo( Action<AdminsystemInfo> callback)
  48. {
  49. //
  50. StartCoroutine(Post_Demo("/admin/systemInfo", "", (string msg) => {
  51. if (msg == null)
  52. {
  53. msg = "{\"code\":200,\"message\":\"success\",\"data\":{\"general_option\":{\"update_time_display_switch\":false},\"yunneng_option\":{\"current_data_source\":1,\"backup_data_switch_type\":1,\"data_recover_type\":1,\"details\":[{\"name\":\"通算资源\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":1,\"update_Rate_value\":1},{\"name\":\"k8S集群信息\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":1,\"update_Rate_value\":1},{\"name\":\"告警数据\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":1,\"update_Rate_value\":1},{\"name\":\"监控平台数据\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1}]},\"zongji_ption\":{\"current_data_source\":1,\"backup_data_switch_type\":1,\"data_recover_type\":1,\"details\":[{\"name\":\"智算服务器\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"GPU资源\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"GPU功率\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"交换机数据\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1}]},\"donghuan_option\":{\"current_data_source\":1,\"backup_data_switch_type\":1,\"data_recover_type\":1,\"details\":[{\"name\":\"温湿度\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"电量数据\",\"update_rate_display\":\"24h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":1,\"update_Rate_value\":1},{\"name\":\"功率数据\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"视频监控\",\"update_rate_display\":\"实时监控\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":0,\"update_rate_type\":0,\"update_Rate_value\":0}]}}}";
  54. }
  55. JsonData jdata = JsonMapper.ToObject(msg);
  56. if (jdata["data"]!=null)
  57. {
  58. AdminsystemInfo data = JsonMapper.ToObject<AdminsystemInfo>(jdata["data"].ToJson());
  59. callback.Invoke(data);
  60. }
  61. else
  62. {
  63. msg = "{\"code\":200,\"message\":\"success\",\"data\":{\"general_option\":{\"update_time_display_switch\":false},\"yunneng_option\":{\"current_data_source\":1,\"backup_data_switch_type\":1,\"data_recover_type\":1,\"details\":[{\"name\":\"通算资源\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":1,\"update_Rate_value\":1},{\"name\":\"k8S集群信息\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":1,\"update_Rate_value\":1},{\"name\":\"告警数据\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":1,\"update_Rate_value\":1},{\"name\":\"监控平台数据\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1}]},\"zongji_ption\":{\"current_data_source\":1,\"backup_data_switch_type\":1,\"data_recover_type\":1,\"details\":[{\"name\":\"智算服务器\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"GPU资源\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"GPU功率\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"交换机数据\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1}]},\"donghuan_option\":{\"current_data_source\":1,\"backup_data_switch_type\":1,\"data_recover_type\":1,\"details\":[{\"name\":\"温湿度\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"电量数据\",\"update_rate_display\":\"24h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":1,\"update_Rate_value\":1},{\"name\":\"功率数据\",\"update_rate_display\":\"1h\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":1,\"update_rate_type\":2,\"update_Rate_value\":1},{\"name\":\"视频监控\",\"update_rate_display\":\"实时监控\",\"current_data_source\":1,\"check_time\":\"2024-10-23 16:28:35\",\"real_data_status\":0,\"update_rate_type\":0,\"update_Rate_value\":0}]}}}";
  64. jdata = JsonMapper.ToObject(msg);
  65. AdminsystemInfo data = JsonMapper.ToObject<AdminsystemInfo>(jdata["data"].ToJson());
  66. callback.Invoke(data);
  67. }
  68. }));
  69. }
  70. public void GetJiFang(Action<ServerData> callback)
  71. {
  72. ServerData sd = new ServerData();
  73. sd.serverList = new List<ServerRoomData>();
  74. for (int i = 0; i < 8; i++)
  75. {
  76. ServerRoomData srd = new ServerRoomData();
  77. srd.id = i;
  78. srd.name = i + "_机房";
  79. sd.serverList.Add(srd);
  80. }
  81. callback.Invoke(sd);
  82. }
  83. IEnumerator getUsageInfo(ServerData data, Action<LineChartData> callback, int type)
  84. {
  85. string typestr = "last_month_usage";
  86. if (type == 0)
  87. {
  88. typestr = "last_week_usage";
  89. }
  90. LineChartData data2 = new LineChartData();
  91. data2.xdata = new List<string>();
  92. data2.sdata = new List<LineChartSeriesData>();
  93. yield return StartCoroutine(Post_Demo("/detail/electricUsageInfo", "", (string msg) =>
  94. {
  95. JsonData datamsg = JsonMapper.ToObject(msg);
  96. for (int j = 0; j < datamsg["data"][typestr].Count; j++)
  97. {
  98. if(!data2.xdata.Contains(datamsg["data"][typestr][j]["date"].ToString()))
  99. data2.xdata.Add(datamsg["data"][typestr][j]["date"].ToString());
  100. }
  101. for (int i = 0; i < data.serverList.Count; i++)
  102. {
  103. LineChartSeriesData lc = new LineChartSeriesData();
  104. lc.name = data.serverList[i].name;
  105. lc.values = new List<float>();
  106. for (int z = 0; z < datamsg["data"][typestr].Count; z++)
  107. {
  108. if(data.serverList[i].name == datamsg["data"][typestr][z]["server_room_name"].ToString())
  109. {
  110. lc.values.Add(float.Parse(datamsg["data"][typestr][z]["usage"].ToString()));
  111. }
  112. }
  113. data2.sdata.Add(lc);
  114. }
  115. }));
  116. callback.Invoke(data2);
  117. }
  118. public void GetDLBiao(Action<LineChartData> callback,int type)
  119. {
  120. GetWSD((data) =>
  121. {
  122. StartCoroutine(getUsageInfo(data, callback, type));
  123. });
  124. return;
  125. LineChartData data = new LineChartData();
  126. data.xdata = new List<string>();
  127. data.sdata = new List<LineChartSeriesData>();
  128. for (int i = 0; i < 20; i++)
  129. {
  130. data.xdata.Add("xdata_" + i);
  131. }
  132. for (int i = 0; i < 8; i++)
  133. {
  134. LineChartSeriesData lc = new LineChartSeriesData();
  135. lc.name = "数据_"+ i;
  136. lc.values = new List<float>();
  137. for (int j = 0; j < 20; j++)
  138. {
  139. lc.values.Add(UnityEngine.Random.Range(1, 1000));
  140. }
  141. data.sdata.Add(lc);
  142. }
  143. callback.Invoke(data);
  144. }
  145. public void GetJL(int id,Action<List<ServerJiLongData>> callback)
  146. {
  147. List<ServerJiLongData> list = new List<ServerJiLongData>();
  148. JsonData data = new JsonData();
  149. data["server_room_id"] = id;
  150. StartCoroutine(Post_Demo("/detail/rackElectricInfo", data.ToJson(), (string msg) => {
  151. JsonData data = JsonMapper.ToObject(msg);
  152. for (int i = 0; i < data["data"]["groups"].Count; i++)
  153. {
  154. ServerJiLongData jilong = new ServerJiLongData();
  155. jilong.id = i;
  156. jilong.name = data["data"]["groups"][i]["name"].ToString();
  157. jilong.jiguilist = new List<ServerjiguiData>();
  158. for (int z = 0; z < data["data"]["groups"][i]["racks"].Count; z++)
  159. {
  160. ServerjiguiData jg = new ServerjiguiData();
  161. jg.name = data["data"]["groups"][i]["racks"][z]["name"].ToString();
  162. jg.srz = float.Parse(data["data"]["groups"][i]["racks"][z]["last_day_usage"].ToString());
  163. jg.syz = float.Parse(data["data"]["groups"][i]["racks"][z]["last_month_usage"].ToString());
  164. jg.szz = float.Parse(data["data"]["groups"][i]["racks"][z]["last_week_usage"].ToString());
  165. jg.zgl = float.Parse(data["data"]["groups"][i]["racks"][z]["power"].ToString());
  166. jilong.jiguilist.Add(jg);
  167. }
  168. list.Add(jilong);
  169. }
  170. callback.Invoke(list);
  171. }));
  172. }
  173. public void GetDL(Action<ServerData> callback)
  174. {
  175. GetWSD((data) =>
  176. {
  177. for (int j = 0; j < data.serverList.Count; j++)
  178. {
  179. if(data.serverList[j].jilonglist==null)
  180. {
  181. data.serverList[j].jilonglist = new List<ServerJiLongData>();
  182. }
  183. }
  184. callback.Invoke(data);
  185. });
  186. return;
  187. ServerData sd = new ServerData();
  188. sd.serverList = new List<ServerRoomData>();
  189. for (int i = 0; i < 8; i++)
  190. {
  191. ServerRoomData srd = new ServerRoomData();
  192. srd.id = i;
  193. srd.name = i + "_机房";
  194. srd.zonggonglv = UnityEngine.Random.Range(30.0f, 40.0f);
  195. srd.shangridl = UnityEngine.Random.Range(30.0f, 40.0f);
  196. srd.jilonglist = new List<ServerJiLongData>();
  197. for (int j = 0; j < i; j++)
  198. {
  199. ServerJiLongData jilong = new ServerJiLongData();
  200. jilong.id = j;
  201. jilong.name = i + "_" + j;
  202. jilong.jiguilist = new List<ServerjiguiData>();
  203. int rand = UnityEngine.Random.Range(2,4)>2?4:2;
  204. for (int z = 0; z < rand; z++)
  205. {
  206. ServerjiguiData jg = new ServerjiguiData();
  207. jg.name = i + "_" + j + "_" + z;
  208. jg.srz = 123;
  209. jg.syz = 123;
  210. jg.szz = 123;
  211. jg.zgl = 123;
  212. jilong.jiguilist.Add(jg);
  213. }
  214. srd.jilonglist.Add(jilong);
  215. }
  216. sd.serverList.Add(srd);
  217. }
  218. callback.Invoke(sd);
  219. }
  220. public static string ip = "";
  221. public IEnumerator Post_Demo(string url,string lstformData,Action<string> callback)
  222. {
  223. Debug.Log("开始请求" + url + "_" + lstformData);
  224. while (ip=="")
  225. {
  226. Debug.Log("ip未设置" + ip + "_" + lstformData);
  227. yield return null;
  228. }
  229. string m_url = ip + url;
  230. Debug.Log("请求地址" + m_url + "_" + lstformData);
  231. var request = new UnityWebRequest(m_url, "POST");
  232. byte[] bodyRaw = Encoding.UTF8.GetBytes(lstformData);
  233. request.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
  234. request.SetRequestHeader("Content-Type", "application/json");
  235. DownloadHandler downloadHandler = new DownloadHandlerBuffer();
  236. request.downloadHandler = downloadHandler;
  237. if (DataManager.token!="")
  238. request.SetRequestHeader("AUTHORIZATION", "Bearer " + DataManager.token);
  239. yield return request.SendWebRequest();
  240. if (string.IsNullOrEmpty(request.error))
  241. {//Post的请求成功 //Post请求的返回参数
  242. var data = request.downloadHandler.text;
  243. Debug.Log(m_url+"_"+ lstformData + "——成功:" + data);
  244. callback.Invoke(data);
  245. }
  246. else
  247. {//Post的请求失败
  248. Debug.Log(m_url + "失败"+ lstformData+"_"+ request.error);
  249. callback.Invoke(null);
  250. }
  251. }
  252. public IEnumerator Get_Demo(string url, string lstformData, Action<string> callback)
  253. {
  254. Debug.Log("开始请求" + url + "_" + lstformData);
  255. while (ip == "")
  256. {
  257. Debug.Log("ip未设置" + ip + "_" + lstformData);
  258. yield return null;
  259. }
  260. string m_url = ip + url;
  261. Debug.Log("请求地址" + m_url + "_" + lstformData);
  262. var request = new UnityWebRequest(m_url, "Get");
  263. byte[] bodyRaw = Encoding.UTF8.GetBytes(lstformData);
  264. request.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
  265. request.SetRequestHeader("Content-Type", "application/json");
  266. DownloadHandler downloadHandler = new DownloadHandlerBuffer();
  267. request.downloadHandler = downloadHandler;
  268. if (DataManager.token != "")
  269. request.SetRequestHeader("AUTHORIZATION", "Bearer " + DataManager.token);
  270. yield return request.SendWebRequest();
  271. if (string.IsNullOrEmpty(request.error))
  272. {//Post的请求成功 //Post请求的返回参数
  273. var data = request.downloadHandler.text;
  274. Debug.Log(m_url + "_" + lstformData + "——成功:" + data);
  275. callback.Invoke(data);
  276. }
  277. else
  278. {//Post的请求失败
  279. Debug.Log(m_url + "失败" + lstformData + "_" + request.error);
  280. callback.Invoke(null);
  281. }
  282. }
  283. public void GetTwoWsdTb(int id,int rid, Action<List<LineChartData>> callback)
  284. {
  285. JsonData data = new JsonData();
  286. data["server_room_id"] = id;
  287. data["rack_id"] = rid;
  288. StartCoroutine(Post_Demo("/detail/tempHumiInfo", data.ToJson(), (string msg) =>
  289. {
  290. List<LineChartData> sjds = new List<LineChartData>();
  291. JsonData datamsg = JsonMapper.ToObject(msg);
  292. LineChartData data = new LineChartData();
  293. data.xdata = new List<string>();
  294. data.sdata = new List<LineChartSeriesData>();
  295. //24小时last_24h_temp 温度
  296. LineChartSeriesData lc = new LineChartSeriesData();
  297. lc.name = "温度";
  298. lc.values = new List<float>();
  299. for (int i = 0; i < datamsg["data"]["last_24h_temp"].Count; i++)
  300. {
  301. data.xdata.Add(datamsg["data"]["last_24h_temp"][i]["date"].ToString().Split(' ')[1]);
  302. lc.values.Add(float.Parse(datamsg["data"]["last_24h_temp"][i]["value"].ToString()));
  303. }
  304. data.sdata.Add(lc);
  305. //24小时last_24h_humi 温度
  306. LineChartSeriesData lc2 = new LineChartSeriesData();
  307. lc2.name = "湿度";
  308. lc2.values = new List<float>();
  309. for (int i = 0; i < datamsg["data"]["last_24h_humi"].Count; i++)
  310. {
  311. lc2.values.Add(float.Parse(datamsg["data"]["last_24h_humi"][i]["value"].ToString()));
  312. }
  313. data.sdata.Add(lc2);
  314. sjds.Add(data);
  315. data = new LineChartData();
  316. data.xdata = new List<string>();
  317. data.sdata = new List<LineChartSeriesData>();
  318. //24小时last_day_temp 温度
  319. lc = new LineChartSeriesData();
  320. lc.name = "温度";
  321. lc.values = new List<float>();
  322. for (int i = 0; i < datamsg["data"]["last_day_temp"].Count; i++)
  323. {
  324. data.xdata.Add(datamsg["data"]["last_day_temp"][i]["date"].ToString().Split(' ')[1]);
  325. lc.values.Add(float.Parse(datamsg["data"]["last_day_temp"][i]["value"].ToString()));
  326. }
  327. data.sdata.Add(lc);
  328. //24小时last_day_humi 温度
  329. lc2 = new LineChartSeriesData();
  330. lc2.name = "湿度";
  331. lc2.values = new List<float>();
  332. for (int i = 0; i < datamsg["data"]["last_day_humi"].Count; i++)
  333. {
  334. lc2.values.Add(float.Parse(datamsg["data"]["last_day_humi"][i]["value"].ToString()));
  335. }
  336. data.sdata.Add(lc2);
  337. sjds.Add(data);
  338. data = new LineChartData();
  339. data.xdata = new List<string>();
  340. data.sdata = new List<LineChartSeriesData>();
  341. //24小时last_weed_temp 温度
  342. lc = new LineChartSeriesData();
  343. lc.name = "温度";
  344. lc.values = new List<float>();
  345. for (int i = 0; i < datamsg["data"]["last_week_temp"].Count; i++)
  346. {
  347. data.xdata.Add(datamsg["data"]["last_week_temp"][i]["date"].ToString().Split(' ')[0]);
  348. lc.values.Add(float.Parse(datamsg["data"]["last_week_temp"][i]["value"].ToString()));
  349. }
  350. data.sdata.Add(lc);
  351. //24小时last_week_humi 温度
  352. lc2 = new LineChartSeriesData();
  353. lc2.name = "湿度";
  354. lc2.values = new List<float>();
  355. for (int i = 0; i < datamsg["data"]["last_week_humi"].Count; i++)
  356. {
  357. lc2.values.Add(float.Parse(datamsg["data"]["last_week_humi"][i]["value"].ToString()));
  358. }
  359. data.sdata.Add(lc2);
  360. sjds.Add(data); data = new LineChartData();
  361. data.xdata = new List<string>();
  362. data.sdata = new List<LineChartSeriesData>();
  363. //24小时last_weed_temp 温度
  364. lc = new LineChartSeriesData();
  365. lc.name = "温度";
  366. lc.values = new List<float>();
  367. for (int i = 0; i < datamsg["data"]["last_month_temp"].Count; i++)
  368. {
  369. data.xdata.Add(datamsg["data"]["last_month_temp"][i]["date"].ToString().Split(' ')[0]);
  370. lc.values.Add(float.Parse(datamsg["data"]["last_month_temp"][i]["value"].ToString()));
  371. }
  372. data.sdata.Add(lc);
  373. //24小时last_week_humi 温度
  374. lc2 = new LineChartSeriesData();
  375. lc2.name = "湿度";
  376. lc2.values = new List<float>();
  377. for (int i = 0; i < datamsg["data"]["last_month_humi"].Count; i++)
  378. {
  379. lc2.values.Add(float.Parse(datamsg["data"]["last_month_humi"][i]["value"].ToString()));
  380. }
  381. data.sdata.Add(lc2);
  382. sjds.Add(data);
  383. callback.Invoke(sjds);
  384. }));
  385. }
  386. public void GetTwoWsd(int id, Action<List<ServerjiguiData>> callback)
  387. {
  388. JsonData data = new JsonData();
  389. data["server_room_id"] = id;
  390. StartCoroutine(Post_Demo("/detail/rackTempHumi", data.ToJson(), (string msg) =>
  391. {
  392. List<ServerjiguiData> sjds = new List<ServerjiguiData>();
  393. JsonData data = JsonMapper.ToObject(msg);
  394. for (int i = 0; i < data["data"]["racks"].Count; i++)
  395. {
  396. ServerjiguiData sjd = new ServerjiguiData();
  397. sjd.id =int.Parse( data["data"]["racks"][i]["id"].ToString());
  398. sjd.name = data["data"]["racks"][i]["name"].ToString();
  399. sjd.shidu = float.Parse(data["data"]["racks"][i]["temp"].ToString());
  400. sjd.wendu = float.Parse(data["data"]["racks"][i]["humi"].ToString());
  401. sjds.Add(sjd);
  402. }
  403. callback.Invoke(sjds);
  404. }));
  405. }
  406. public void GetWSD(Action<ServerData> callback)
  407. {
  408. Debug.Log("获取温湿度===》");
  409. StartCoroutine(Post_Demo("/overview/serverroom","",(string msg)=> {
  410. JsonData data = JsonMapper.ToObject(msg);
  411. ServerData sd = new ServerData();
  412. sd.serverList = new List<ServerRoomData>();
  413. for (int i = 0; i < data["data"]["item_info"].Count; i++)
  414. {
  415. ServerRoomData srd = new ServerRoomData();
  416. srd.id = int.Parse(data["data"]["item_info"][i]["server_room_id"].ToString());
  417. srd.name = data["data"]["item_info"][i]["item_name"].ToString();
  418. srd.wendu = float.Parse(data["data"]["item_info"][i]["item_temp"].ToString());
  419. srd.shidu = float.Parse(data["data"]["item_info"][i]["item_humi"].ToString());
  420. try
  421. {
  422. srd.shangridl = float.Parse(data["data"]["item_info"][i]["item_lastday_usage"].ToString());
  423. srd.zonggonglv = float.Parse(data["data"]["item_info"][i]["item_total_power"].ToString());
  424. }
  425. catch
  426. {
  427. }
  428. sd.serverList.Add(srd);
  429. }
  430. callback.Invoke(sd);
  431. }));
  432. return;
  433. ServerData sd = new ServerData();
  434. sd.serverList = new List<ServerRoomData>();
  435. for (int i = 0; i < 8; i++)
  436. {
  437. ServerRoomData srd = new ServerRoomData();
  438. srd.id = i;
  439. srd.name = i + "_机房";
  440. srd.wendu = UnityEngine.Random.Range(30.0f, 40.0f);
  441. srd.shidu = UnityEngine.Random.Range(30.0f, 40.0f);
  442. srd.jilonglist = new List<ServerJiLongData>();
  443. for (int j = 0; j < i; j++)
  444. {
  445. ServerJiLongData jilong = new ServerJiLongData();
  446. jilong.id = j;
  447. jilong.name = i + "_" + j;
  448. jilong.jiguilist = new List<ServerjiguiData>();
  449. int rand = UnityEngine.Random.Range(2, 4) > 2 ? 4 : 2;
  450. for (int z = 0; z < rand; z++)
  451. {
  452. ServerjiguiData jg = new ServerjiguiData();
  453. jg.name = i + "_" + j + "_" + z;
  454. jg.wendu = 123;
  455. jg.shidu = 123;
  456. jilong.jiguilist.Add(jg);
  457. }
  458. srd.jilonglist.Add(jilong);
  459. }
  460. sd.serverList.Add(srd);
  461. }
  462. callback.Invoke(sd);
  463. }
  464. ServerRoomData checkroom(int id , List<ServerRoomData> roomdata )
  465. {
  466. for (int i = 0; i < roomdata.Count; i++)
  467. {
  468. if(roomdata[i].id == id)
  469. {
  470. return roomdata[i];
  471. }
  472. }
  473. return null;
  474. }
  475. public void GetVideo(Action<ServerData> callback)
  476. {
  477. Debug.Log("获取video===》");
  478. StartCoroutine(Post_Demo("/overview/serverLiveOverview", "", (string msg) => {
  479. JsonData data = JsonMapper.ToObject(msg);
  480. ServerData sd = new ServerData();
  481. sd.serverList = new List<ServerRoomData>();
  482. for (int i = 0; i < data["data"]["items"].Count; i++)
  483. {
  484. ServerRoomData srd = new ServerRoomData();
  485. srd.id = int.Parse(data["data"]["items"][i]["server_room_id"].ToString());
  486. srd.name = data["data"]["items"][i]["server_name"].ToString();
  487. srd.videolist = new List<ServerVideoData>();
  488. ServerVideoData svd = new ServerVideoData();
  489. svd.id = 1;
  490. svd.type = 0;
  491. svd.name = "机房摄像头";
  492. svd.url = new List<string>();
  493. srd.videolist.Add(svd);
  494. for (int j = 0; j < data["data"]["items"][i]["video_list"]["room"].Count; j++)
  495. {
  496. svd.url.Add(data["data"]["items"][i]["video_list"]["room"][j].ToString());
  497. }
  498. ServerVideoData svd2 = new ServerVideoData();
  499. svd2.id = 1;
  500. svd.type = 1;
  501. svd2.name = "机笼摄像头";
  502. svd2.url = new List<string>();
  503. srd.videolist.Add(svd2);
  504. for (int j = 0; j < data["data"]["items"][i]["video_list"]["rack"].Count; j++)
  505. {
  506. svd2.url.Add(data["data"]["items"][i]["video_list"]["rack"][j].ToString());
  507. }
  508. sd.serverList.Add(srd);
  509. }
  510. callback.Invoke(sd);
  511. }));
  512. return;
  513. ServerData sd = new ServerData();
  514. sd.serverList = new List<ServerRoomData>();
  515. for (int i = 0; i < 8; i++)
  516. {
  517. ServerRoomData srd = new ServerRoomData();
  518. srd.id = i;
  519. srd.videolist = new List<ServerVideoData>();
  520. ServerVideoData svd = new ServerVideoData();
  521. svd.id = 1;
  522. svd.name = "机房摄像头";
  523. svd.url = new List<string>();
  524. for (int j = 0; j < 8; j++)
  525. {
  526. svd.url.Add("https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/hls/xgplayer-demo.m3u8");
  527. }
  528. srd.videolist.Add(svd);
  529. ServerVideoData svd2 = new ServerVideoData();
  530. svd2.id = 1;
  531. svd2.name = "机笼摄像头";
  532. svd2.url = new List<string>();
  533. for (int j = 0; j < 8; j++)
  534. {
  535. svd2.url.Add("https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/hls/xgplayer-demo.m3u8");
  536. }
  537. srd.videolist.Add(svd2);
  538. sd.serverList.Add(srd);
  539. }
  540. callback.Invoke(sd);
  541. }
  542. public void GetTongSuan(Action<TongSuanData> callback)
  543. {
  544. StartCoroutine(Post_Demo("/overview/generalResourceOverview", "", (string msg) =>
  545. {
  546. JsonData data = JsonMapper.ToObject(msg)["data"];
  547. TongSuanData jdata = new TongSuanData();
  548. jdata.devct = float.Parse(data["network_device_number"].ToString());
  549. jdata.serverct = float.Parse(data["server_number"].ToString());
  550. jdata.zhiji = float.Parse(data["host_number"].ToString());
  551. callback.Invoke(jdata);
  552. }));
  553. return;
  554. TongSuanData jdata = new TongSuanData();
  555. jdata.devct = 123;
  556. jdata.serverct = 123;
  557. jdata.zhiji = 123;
  558. callback.Invoke(jdata);
  559. }
  560. public void GetJianKongPt(Action<JianKongPtData> callback)
  561. {
  562. StartCoroutine(Post_Demo("/overview/monitor", "", (string msg) =>
  563. {
  564. JsonData data = JsonMapper.ToObject(msg)["data"];
  565. JianKongPtData jdata = new JianKongPtData();
  566. jdata.shijianct =float.Parse( data["strategy_number"].ToString()) ;
  567. jdata.zhixingct = float.Parse(data["plugin_number"].ToString());
  568. jdata.gaojingct = float.Parse(data["warn_number"].ToString());
  569. callback.Invoke(jdata);
  570. }));
  571. return;
  572. JianKongPtData jdata = new JianKongPtData();
  573. jdata.shijianct = 123;
  574. jdata.zhixingct = 123;
  575. jdata.gaojingct = 123;
  576. callback.Invoke(jdata);
  577. }
  578. public void GetSixServer(Action<List<PieChartData>> callback)
  579. {
  580. Debug.Log("6个服务器===》");
  581. StartCoroutine(Post_Demo("/overview/intelligentResourceOverview", "", (string msg) =>
  582. {
  583. JsonData data = JsonMapper.ToObject(msg);
  584. List<PieChartData> lp = new List<PieChartData>();
  585. for (int i = 0; i < 5; i++)
  586. {
  587. if(i< data["data"]["items"].Count)
  588. {
  589. PieChartData p = new PieChartData();
  590. p.title = data["data"]["items"][i]["name"].ToString();
  591. p.value = float.Parse(data["data"]["items"][i]["count"].ToString());
  592. p.items = new List<PieChartItemData>();
  593. foreach (var k in data["data"]["items"][i].Keys)
  594. {
  595. if (k != "name" && k != "count")
  596. {
  597. PieChartItemData idata1 = new PieChartItemData();
  598. idata1.name = k;
  599. idata1.value = float.Parse(data["data"]["items"][i][k].ToString().Split('%')[0]);
  600. p.items.Add(idata1);
  601. }
  602. }
  603. lp.Add(p);
  604. }
  605. else
  606. {
  607. PieChartData p = new PieChartData();
  608. p.title ="空";
  609. p.value = 0;
  610. p.items = new List<PieChartItemData>();
  611. PieChartItemData idata1 = new PieChartItemData();
  612. idata1.name = "空";
  613. idata1.value =0;
  614. p.items.Add(idata1);
  615. lp.Add(p);
  616. }
  617. }
  618. PieChartData p2 = new PieChartData();
  619. p2.title = data["data"]["flops"]["name"].ToString();
  620. p2.value = float.Parse(data["data"]["flops"]["value"].ToString().Split(' ')[0]);
  621. lp.Add(p2);
  622. callback.Invoke(lp);
  623. }));
  624. return;
  625. List<PieChartData> lp = new List<PieChartData>();
  626. for (int i = 0; i < 6; i++)
  627. {
  628. PieChartData p = new PieChartData();
  629. p.title = i.ToString();
  630. p.value = 1000000;
  631. p.items = new List<PieChartItemData>();
  632. PieChartItemData idata1 = new PieChartItemData();
  633. idata1.name = "RUN";
  634. idata1.value = 27;
  635. p.items.Add(idata1);
  636. PieChartItemData idata2 = new PieChartItemData();
  637. idata2.name = "IDLE";
  638. idata2.value = 27;
  639. p.items.Add(idata2);
  640. lp.Add(p);
  641. }
  642. callback.Invoke(lp);
  643. }
  644. public void GetK8s(Action<List<RingValueData>> callback)
  645. {
  646. Debug.Log("获取k8s===》");
  647. List<RingValueData> rvs = new List<RingValueData>();
  648. StartCoroutine(Post_Demo("/overview/kubernetsCluster", "", (string msg) =>
  649. {
  650. JsonData datamsg = JsonMapper.ToObject(msg);
  651. RingValueData d1 = new RingValueData();
  652. d1.value = datamsg["data"]["cluster_name"].ToString();
  653. RingValueData d2 = new RingValueData();
  654. d2.value = datamsg["data"]["cluster_status"].ToString();
  655. datamsg["data"]["cluster_status"].ToString();
  656. RingValueData d3 = new RingValueData();
  657. d3.value = datamsg["data"]["cluster_node_count"][0].ToString();
  658. d3.max = datamsg["data"]["cluster_node_count"][1].ToString();
  659. rvs.Add(d1);
  660. rvs.Add(d2);
  661. rvs.Add(d3);
  662. callback.Invoke(rvs);
  663. }));
  664. return;
  665. }
  666. public void GetGPUData(Action<LineChartData> callback)
  667. {
  668. Debug.Log("获取gpu===》");
  669. StartCoroutine(Post_Demo("/overview/gpupower", "", (string msg) => {
  670. JsonData datamsg = JsonMapper.ToObject(msg);
  671. LineChartData data = new LineChartData();
  672. data.xdata = new List<string>();
  673. data.sdata = new List<LineChartSeriesData>();
  674. LineChartSeriesData lc = new LineChartSeriesData();
  675. lc.name = "今日";
  676. lc.values = new List<float>();
  677. for (int i = 0; i < datamsg["data"][ "today_info"].Count; i++)
  678. {
  679. data.xdata.Add(datamsg["data"]["today_info"][i]["time"].ToString().Split(' ')[1]);
  680. lc.values.Add(float.Parse(datamsg["data"]["today_info"][i]["value"].ToString()));
  681. }
  682. data.sdata.Add(lc);
  683. LineChartSeriesData lc2 = new LineChartSeriesData();
  684. lc2.name = "昨日";
  685. lc2.values = new List<float>();
  686. for (int i = 0; i < datamsg["data"]["yesterday_info"].Count; i++)
  687. {
  688. lc2.values.Add(float.Parse( datamsg["data"]["yesterday_info"][i]["value"].ToString()));
  689. }
  690. data.sdata.Add(lc2);
  691. callback.Invoke(data);
  692. }));
  693. return;
  694. LineChartData data = new LineChartData();
  695. data.xdata = new List<string>();
  696. data.sdata = new List<LineChartSeriesData>();
  697. for (int i = 0; i < 10; i++)
  698. {
  699. data.xdata.Add("xdata_" + i);
  700. }
  701. LineChartSeriesData lc = new LineChartSeriesData();
  702. lc.name = "数据1";
  703. lc.values = new List<float>();
  704. for (int i = 0; i < 10; i++)
  705. {
  706. lc.values.Add(UnityEngine.Random.Range(1, 800));
  707. }
  708. data.sdata.Add(lc);
  709. LineChartSeriesData lc2 = new LineChartSeriesData();
  710. lc2.name = "数据2";
  711. lc2.values = new List<float>();
  712. for (int i = 0; i < 10; i++)
  713. {
  714. lc2.values.Add(UnityEngine.Random.Range(1, 800));
  715. }
  716. data.sdata.Add(lc2);
  717. callback.Invoke(data);
  718. }
  719. public void GetGaoJingData(Action<LineChartData> callback)
  720. {
  721. StartCoroutine(Post_Demo("/overview/warnData", "", (string msg) =>
  722. {
  723. JsonData datamsg = JsonMapper.ToObject(msg);
  724. LineChartData data = new LineChartData();
  725. data.xdata = new List<string>();
  726. data.sdata = new List<LineChartSeriesData>();
  727. for (int i = 0; i < datamsg["data"]["prop_ame"].Count; i++)
  728. {
  729. LineChartSeriesData lc = new LineChartSeriesData();
  730. lc.name = datamsg["data"]["prop_ame"][i].ToString();
  731. lc.values = new List<float>();
  732. data.sdata.Add(lc);
  733. }
  734. for (int i = 0; i < datamsg["data"]["items"].Count; i++)
  735. {
  736. data.xdata.Add(datamsg["data"]["items"][i]["date"].ToString());
  737. for (int j = 0; j < data.sdata.Count; j++)
  738. {
  739. data.sdata[j].values.Add(float.Parse(datamsg["data"]["items"][i]["prop_value"][j].ToString()));
  740. }
  741. }
  742. callback.Invoke(data);
  743. }));
  744. return;
  745. LineChartData data = new LineChartData();
  746. data.xdata = new List<string>();
  747. data.sdata = new List<LineChartSeriesData>();
  748. for (int i = 0; i < 20; i++)
  749. {
  750. data.xdata.Add("xdata_" + i);
  751. }
  752. LineChartSeriesData lc = new LineChartSeriesData();
  753. lc.name = "数据1";
  754. lc.values = new List<float>();
  755. for (int i = 0; i < 20; i++)
  756. {
  757. lc.values.Add(UnityEngine.Random.Range(1, 1000));
  758. }
  759. data.sdata.Add(lc);
  760. LineChartSeriesData lc2 = new LineChartSeriesData();
  761. lc2.name = "数据2";
  762. lc2.values = new List<float>();
  763. for (int i = 0; i < 20; i++)
  764. {
  765. lc2.values.Add(UnityEngine.Random.Range(1, 1000));
  766. }
  767. data.sdata.Add(lc2);
  768. LineChartSeriesData lc3 = new LineChartSeriesData();
  769. lc3.name = "数据3";
  770. lc3.values = new List<float>();
  771. for (int i = 0; i < 20; i++)
  772. {
  773. lc3.values.Add(UnityEngine.Random.Range(1, 1000));
  774. }
  775. data.sdata.Add(lc2);
  776. callback.Invoke(data);
  777. }
  778. public void GetGaoJingJiLuData(Action<GaoJingListData> callback)
  779. {
  780. StartCoroutine(Post_Demo("/overview/warnRecord", "", (string msg) =>
  781. {
  782. JsonData datamsg = JsonMapper.ToObject(msg);
  783. GaoJingListData gjl = new GaoJingListData();
  784. gjl.list = new List<GaoJingItemData>();
  785. for (int i = 0; i < datamsg["data"]["items"].Count; i++)
  786. {
  787. GaoJingItemData gjid = new GaoJingItemData();
  788. gjid.lv = datamsg["data"]["items"][i]["level"].ToString();
  789. gjid.time = datamsg["data"]["items"][i]["time"].ToString();
  790. gjid.dev = datamsg["data"]["items"][i]["device"].ToString();
  791. gjid.type = datamsg["data"]["items"][i]["status"].ToString();
  792. gjl.list.Add(gjid);
  793. }
  794. callback.Invoke(gjl);
  795. }));
  796. return;
  797. GaoJingListData gjl = new GaoJingListData();
  798. gjl.list = new List<GaoJingItemData>();
  799. for (int i = 0; i < 2; i++)
  800. {
  801. GaoJingItemData gjid = new GaoJingItemData();
  802. gjid.lv = "一般";
  803. gjid.time = "2024-1-1 00:11";
  804. gjid.dev = "111机房";
  805. gjid.type = "已解决";
  806. gjl.list.Add(gjid);
  807. }
  808. for (int i = 0; i < 2; i++)
  809. {
  810. GaoJingItemData gjid = new GaoJingItemData();
  811. gjid.lv = "紧急";
  812. gjid.time = "2024-1-1 00:11";
  813. gjid.dev = "111机房";
  814. gjid.type = "待解决";
  815. gjl.list.Add(gjid);
  816. }
  817. for (int i = 0; i < 2; i++)
  818. {
  819. GaoJingItemData gjid = new GaoJingItemData();
  820. gjid.lv = "严重";
  821. gjid.time = "2024-1-1 00:11";
  822. gjid.dev = "111机房";
  823. gjid.type = "已解决";
  824. gjl.list.Add(gjid);
  825. }
  826. callback.Invoke(gjl);
  827. }
  828. }