LoginDataManager.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. using LitJson;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Linq;
  4. using SC.XR.Unity;
  5. using System;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. using UnityEngine;
  9. public class LoginDataManager:Singleton<LoginDataManager>
  10. {
  11. string[] testAclist =new string[] { "罗江", "戴广军", "程裕翔", "王玉洁", "伊鹏飞", "戈晓芬","胡佳骏" };
  12. List<AccountData> ldata;
  13. //接口-----获取 账号登录的列表
  14. public void GetLoginData(Action<List<AccountData>> callback)
  15. {
  16. ldata = new List<AccountData>();
  17. if(WindowsManager.Instance.isTest)
  18. {
  19. AccountData adata;
  20. for (int i = 0; i < testAclist.Length; i++)
  21. {
  22. adata = new AccountData();
  23. adata.number = testAclist[i];
  24. adata.name = testAclist[i];
  25. adata.avatar = new AccountAvatar();
  26. adata.avatar.path = Application.streamingAssetsPath + "/icon/" + i + ".png";
  27. ldata.Add(adata);
  28. }
  29. }
  30. HttpTool.Instance.Post(HttpEdustryAction.LoginList, "", (string msg) => {
  31. Debug.Log(msg);
  32. JObject jObject = JObject.Parse(msg);
  33. if (jObject["code"].ToString() == "200")
  34. {
  35. Debug.Log("DGJ ==> "+ jObject["data"]["list"].ToString());
  36. //Debug.Log(JsonConvert.DeserializeObject<List<AccountData>>(jObject["data"]["list"].ToString()).Count);
  37. ldata.AddRange(JsonConvert.DeserializeObject<List<AccountData>>(jObject["data"]["list"].ToString()));
  38. Debug.Log(ldata.Count);
  39. WindowsManager.Instance.StartCoroutine(testBack(callback));
  40. }
  41. else
  42. {
  43. Debug.LogError(" 获取登录列表失败 "+ jObject["code"].ToString());
  44. WindowsManager.Instance.StartCoroutine(testBack(callback));
  45. }
  46. });
  47. }
  48. IEnumerator testBack(Action<List<AccountData>> callback)
  49. {
  50. yield return null;
  51. callback.Invoke(ldata);
  52. }
  53. List<AccountData> OftenUseldata;
  54. //获取常用账号列表
  55. public void GetOftenUseLoginData(Action<List<AccountData>> callback)
  56. {
  57. OftenUseldata = new List<AccountData>();
  58. JsonData data = getOftenUseAcc();
  59. if(data.IsArray)
  60. {
  61. AccountData adata;
  62. for (int i = data.Count-1; i >=0 ; i--)
  63. {
  64. adata = new AccountData();
  65. adata.number = data[i]["number"].ToString();
  66. adata.name = data[i]["name"].ToString();
  67. if(adata.avatar==null)
  68. {
  69. adata.avatar = new AccountAvatar();
  70. }
  71. if(data[i].Keys.Contains("avatar"))
  72. {
  73. Debug.Log(data[i]["avatar"].ToString());
  74. JsonData avatardata = JsonMapper.ToObject(data[i]["avatar"].ToString());
  75. if (avatardata.Keys.Contains("path"))
  76. {
  77. adata.avatar.path = avatardata["path"].ToString();
  78. adata.avatar.host = avatardata["host"].ToString();
  79. }
  80. }
  81. adata.phone = data[i]["phone"].ToString();
  82. OftenUseldata.Add(adata);
  83. }
  84. }
  85. WindowsManager.Instance.StartCoroutine(testOftenUseBack(callback));
  86. }
  87. int checkData(JsonData adata)
  88. {
  89. JsonData data = getOftenUseAcc();
  90. if (data.IsArray)
  91. {
  92. for (int i = data.Count - 1; i >= 0; i--)
  93. {
  94. if(adata["number"].ToString() == data[i]["number"].ToString())
  95. {
  96. return i;
  97. }
  98. }
  99. }
  100. return -1;
  101. }
  102. IEnumerator testOftenUseBack(Action<List<AccountData>> callback)
  103. {
  104. yield return null;
  105. callback.Invoke(OftenUseldata);
  106. }
  107. //添加常驻账号
  108. public void setOftenUseAcc(AccountData adata)
  109. {
  110. JsonData data = getOftenUseAcc();
  111. JsonData accData = new JsonData();
  112. accData["name"] = adata.name;
  113. accData["phone"] = adata.phone;
  114. accData["number"] = adata.number;
  115. accData["avatar"] = JsonConvert.SerializeObject(adata.avatar);
  116. int index = checkData(accData);
  117. JsonData accDataNew = new JsonData();
  118. accDataNew.Add(accData);
  119. if(data!=null&&data.IsArray)
  120. {
  121. for (int i = 0; i < data.Count; i++)
  122. {
  123. if (index != i)
  124. accDataNew.Add(data[i]);
  125. if (accDataNew.Count >= 4)
  126. break;
  127. }
  128. }
  129. PlayerPrefs.SetString("OftenUse", accDataNew.ToJson());
  130. PlayerPrefs.Save();
  131. }
  132. //获取常驻账号
  133. public JsonData getOftenUseAcc()
  134. {
  135. // PlayerPrefs.DeleteAll();
  136. string OftenUse = PlayerPrefs.GetString("OftenUse");
  137. Debug.Log("DGJ ===> getOftenUseAcc " + OftenUse);
  138. JsonData data = new JsonData();
  139. if (OftenUse != "" && OftenUse != null)
  140. {
  141. try
  142. {
  143. data = JsonMapper.ToObject(OftenUse);
  144. }
  145. catch
  146. {
  147. }
  148. }
  149. return data;
  150. }
  151. }
  152. public class AccountData
  153. {
  154. public string name { get; set; }
  155. public string phone { get; set; }
  156. public string number { get; set; }
  157. public AccountAvatar avatar { get; set; }
  158. }
  159. public class AccountData2
  160. {
  161. public string name { get; set; }
  162. public string phone { get; set; }
  163. public string number { get; set; }
  164. public AccountAvatar avatar { get; set; }
  165. }
  166. public class AccountAvatar
  167. {
  168. public int id { get; set; }
  169. // public string name { get; set; }
  170. public string path { get; set; }
  171. public string host { get; set; }
  172. }