LoginDataManager.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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 = Application.streamingAssetsPath + "/icon/" + i + ".png";
  26. ldata.Add(adata);
  27. }
  28. }
  29. HttpTool.Instance.Post(HttpEdustryAction.LoginList, "", (string msg) => {
  30. Debug.Log(msg);
  31. JObject jObject = JObject.Parse(msg);
  32. if (jObject["code"].ToString() == "200")
  33. {
  34. Debug.Log("DGJ ==> "+ jObject["data"]["list"].ToString());
  35. ldata.AddRange(JsonConvert.DeserializeObject<List<AccountData>>(jObject["data"]["list"].ToString()));
  36. Debug.Log(ldata.Count);
  37. WindowsManager.Instance.StartCoroutine(testBack(callback));
  38. }
  39. else
  40. {
  41. Debug.LogError(" 获取登录列表失败 "+ jObject["code"].ToString());
  42. WindowsManager.Instance.StartCoroutine(testBack(callback));
  43. }
  44. });
  45. }
  46. IEnumerator testBack(Action<List<AccountData>> callback)
  47. {
  48. yield return null;
  49. callback.Invoke(ldata);
  50. }
  51. List<AccountData> OftenUseldata;
  52. //获取常用账号列表
  53. public void GetOftenUseLoginData(Action<List<AccountData>> callback)
  54. {
  55. OftenUseldata = new List<AccountData>();
  56. JsonData data = getOftenUseAcc();
  57. if(data.IsArray)
  58. {
  59. AccountData adata;
  60. for (int i = data.Count-1; i >=0 ; i--)
  61. {
  62. adata = new AccountData();
  63. adata.number = data[i]["number"].ToString();
  64. adata.name = data[i]["name"].ToString();
  65. adata.avatar = data[i]["avatar"].ToString();
  66. adata.phone = data[i]["phone"].ToString();
  67. OftenUseldata.Add(adata);
  68. }
  69. }
  70. WindowsManager.Instance.StartCoroutine(testOftenUseBack(callback));
  71. }
  72. int checkData(JsonData adata)
  73. {
  74. JsonData data = getOftenUseAcc();
  75. if (data.IsArray)
  76. {
  77. for (int i = data.Count - 1; i >= 0; i--)
  78. {
  79. if(adata["number"].ToString() == data[i]["number"].ToString())
  80. {
  81. return i;
  82. }
  83. }
  84. }
  85. return -1;
  86. }
  87. IEnumerator testOftenUseBack(Action<List<AccountData>> callback)
  88. {
  89. yield return null;
  90. callback.Invoke(OftenUseldata);
  91. }
  92. //添加常驻账号
  93. public void setOftenUseAcc(AccountData adata)
  94. {
  95. JsonData data = getOftenUseAcc();
  96. JsonData accData = new JsonData();
  97. accData["name"] = adata.name;
  98. accData["phone"] = adata.phone;
  99. accData["number"] = adata.number;
  100. accData["avatar"] = adata.avatar;
  101. int index = checkData(accData);
  102. JsonData accDataNew = new JsonData();
  103. accDataNew.Add(accData);
  104. if(data!=null&&data.IsArray)
  105. {
  106. for (int i = 0; i < data.Count; i++)
  107. {
  108. if (index != i)
  109. accDataNew.Add(data[i]);
  110. if (accDataNew.Count >= 4)
  111. break;
  112. }
  113. }
  114. PlayerPrefs.SetString("OftenUse", accDataNew.ToJson());
  115. PlayerPrefs.Save();
  116. }
  117. //获取常驻账号
  118. public JsonData getOftenUseAcc()
  119. {
  120. // PlayerPrefs.DeleteAll();
  121. string OftenUse = PlayerPrefs.GetString("OftenUse");
  122. Debug.Log("DGJ ===> getOftenUseAcc " + OftenUse);
  123. JsonData data = new JsonData();
  124. if (OftenUse != "" && OftenUse != null)
  125. {
  126. try
  127. {
  128. data = JsonMapper.ToObject(OftenUse);
  129. }
  130. catch
  131. {
  132. }
  133. }
  134. return data;
  135. }
  136. }
  137. public class AccountData
  138. {
  139. public string name { get; set; }
  140. public string phone { get; set; }
  141. public string number { get; set; }
  142. public string avatar { get; set; }
  143. }