LoginDataManager.cs 4.7 KB

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