public static void SaveAccountMainData(ToolBagTestAccountMainData mainData)
        {
            if (mainData == null)
            {
                return;
            }

            string dataStr = "";

            if (mainData.accountDataList != null)
            {
                for (int i = 0; i < mainData.accountDataList.Count; i++)
                {
                    dataStr += JsonUtility.ToJson(mainData.accountDataList[i]);
                    if (i != mainData.accountDataList.Count - 1)
                    {
                        dataStr += "|";
                    }
                }
            }

            ToolBagTestAccountSaveData saveData = new ToolBagTestAccountSaveData(mainData.accountName, dataStr);

            PlayerPrefs.SetString(CTestAccountMainKey, JsonUtility.ToJson(saveData));
        }
        public static ToolBagTestAccountMainData LoadAccountMainData()
        {
            string str = PlayerPrefs.GetString(CTestAccountMainKey);

            if (string.IsNullOrEmpty(str))
            {
                return(new ToolBagTestAccountMainData("TestAccount"));
            }

            ToolBagTestAccountSaveData saveData = JsonUtility.FromJson <ToolBagTestAccountSaveData>(str);

            ToolBagTestAccountMainData mainData = new ToolBagTestAccountMainData(saveData.accountName);

            string[] dataStrList = saveData.accountDataStr.Split(new char[] { '|' });

            for (int i = 0; i < dataStrList.Length; i++)
            {
                ToolBagTestAccountData data = JsonUtility.FromJson <ToolBagTestAccountData>(dataStrList[i]);
                if (data != null)
                {
                    mainData.accountDataList.Add(data);
                }
            }

            return(mainData);
        }
        /// <summary>
        /// 清理废弃账号
        /// </summary>
        /// <param name="mainData"></param>
        public static void ClearOldAccount(ToolBagTestAccountMainData mainData)
        {
            if (mainData != null && mainData.accountDataList != null && mainData.accountDataList.Count != 0)
            {
                int currentStamp = GetCurrentTimeStamp();
                int checkTime    = 86400 * 14;

                mainData.accountDataList = mainData.accountDataList.FindAll(x => currentStamp - x.lastLoginTime < checkTime);
            }
        }
        public override void ShowWindow()
        {
            ToolBagTestAccountMainData mainData = ToolBagTestAccountUtil.LoadAccountMainData();

            bool   hasLoad = false;
            string oldName = mainData.accountName;

            GUILayout.BeginHorizontal();
            GUILayout.TextArea("用户名");
            mainData.accountName = GUILayout.TextField(mainData.accountName);
            GUILayout.EndHorizontal();

            GUILayout.Space(2);

            GUILayout.BeginHorizontal();
            GUILayout.TextArea("账号");
            GUILayout.TextArea("注册时间");
            GUILayout.TextArea("最后使用时间");
            GUILayout.TextArea("");
            GUILayout.EndHorizontal();

            scrollVec2 = GUILayout.BeginScrollView(scrollVec2);

            if (mainData.accountDataList != null)
            {
                mainData.accountDataList.Sort((a, b) => - a.lastLoginTime.CompareTo(b.lastLoginTime));

                for (int i = 0; i < mainData.accountDataList.Count; i++)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.TextArea(ToolBagTestAccountUtil.GetAccountStrByData(mainData.accountName, mainData.accountDataList[i]));
                    GUILayout.TextArea(ToolBagTestAccountUtil.GetSystemTimeFromStamp(mainData.accountDataList[i].registTime).ToString());
                    GUILayout.TextArea(ToolBagTestAccountUtil.GetSystemTimeFromStamp(mainData.accountDataList[i].lastLoginTime).ToString());
                    if (GUILayout.Button("使用账号"))
                    {
                        mainData.accountDataList[i].lastLoginTime = ToolBagTestAccountUtil.GetCurrentTimeStamp();
                        hasLoad = true;
                        ToolBagTestAccountUtil.CopyAccount(mainData.accountName, mainData.accountDataList[i]);
                    }

                    GUILayout.EndHorizontal();
                    GUILayout.Space(1);
                }
            }

            GUILayout.EndScrollView();

            if (oldName != mainData.accountName)
            {
                ToolBagTestAccountUtil.SaveAccountMainData(mainData);
            }
        }
        /// <summary>
        /// 获取并复制最后使用账号
        /// </summary>
        public static void CopyLastLoginAccount()
        {
            ToolBagTestAccountMainData accountMainData = LoadAccountMainData();

            ToolBagTestAccountData accountData = GetLastLoginAccount(accountMainData);

            if (accountData != null)
            {
                accountData.lastLoginTime = GetCurrentTimeStamp();
                SaveAccountMainData(accountMainData);
            }

            CopyAccount(accountMainData.accountName, accountData);
        }
        /// <summary>
        /// 注册新账号
        /// </summary>
        public static void RegistNewAccount()
        {
            ToolBagTestAccountMainData accountmainData = LoadAccountMainData();

            ClearOldAccount(accountmainData);

            int currentStampTime = GetCurrentTimeStamp();

            ToolBagTestAccountData accountData = new ToolBagTestAccountData(GetNewAccountIndex(accountmainData), currentStampTime, currentStampTime);

            accountmainData.accountDataList.Add(accountData);

            SaveAccountMainData(accountmainData);

            CopyAccount(accountmainData.accountName, accountData);
        }
        /// <summary>
        /// 获取新账号index
        /// </summary>
        /// <param name="mainData"></param>
        /// <returns></returns>
        private static int GetNewAccountIndex(ToolBagTestAccountMainData mainData)
        {
            ToolBagTestAccountData lastAccount = GetLastLoginAccount(mainData);

            if (lastAccount == null)
            {
                return(1);
            }

            DateTime lastDateTime = GetSystemTimeFromStamp(lastAccount.registTime);

            if (lastDateTime.Year == DateTime.UtcNow.Year && lastDateTime.Month == DateTime.UtcNow.Month && lastDateTime.Day == DateTime.UtcNow.Day)
            {
                return(lastAccount.index + 1);
            }
            else
            {
                return(1);
            }
        }
        /// <summary>
        /// 获取最后使用账号
        /// </summary>
        /// <returns></returns>
        private static ToolBagTestAccountData GetLastLoginAccount(ToolBagTestAccountMainData accountMainData)
        {
            if (accountMainData == null)
            {
                return(null);
            }

            if (accountMainData.accountDataList == null || accountMainData.accountDataList.Count == 0)
            {
                return(null);
            }

            ToolBagTestAccountData accountData = accountMainData.accountDataList[0];

            accountMainData.accountDataList.ForEach(x =>
            {
                //不能改成大于 防止同一秒点击多次
                if (x.lastLoginTime >= accountData.lastLoginTime)
                {
                    accountData = x;
                }
            });
            return(accountData);
        }