shenjianxing 899b00d3c7 修复bug
2025-04-25 13:18:03 +08:00

135 lines
4.6 KiB
C#

using System;
using System.IO;
using UnityEngine;
using UnityEngine.Events;
public class DateManager
{
public static string EndTimer = "2025-07-06 00:00:00";//结束时间
private static string RecordData;
/// <summary>
/// 更新系统时间
/// </summary>
public static void UpdateTime(UnityAction<string> error = null, UnityAction<string> timeOut = null, UnityAction update = null, UnityAction success = null)
{
try
{
string datas = DecryptFileReader.ReadAndDecryptData("Timer.txt");
EndTimer = datas.Split('|')[0];
RecordData = datas.Split('|')[1];
//第一次获取获取系统时间
DateTime currentDateTime = DateTime.Now;
string Data = currentDateTime.ToString("yyyy-MM-dd HH:mm:ss");
if (DateTime.TryParse(RecordData, out DateTime recordDateTime) && DateTime.TryParse(Data, out DateTime nowDateTime))
{
if (recordDateTime > nowDateTime)
{
Debug.Log("仿真文件被损坏,请联系管理员进行修复");
error?.Invoke("仿真文件被损坏,请联系管理员进行修复");
}
else
{
//把上一次存储得系统时间更新到最新
string timer = "Timer.txt";
RecordData = Data;
string strMerge = EndTimer + "|" + RecordData;
EncryptFileCreator.EncryptAndSaveData(strMerge, timer);
update?.Invoke();
}
}
}
catch (Exception e)
{
Debug.LogError($"数据出错: {e.Message}");
error?.Invoke($"数据出错: {e.Message}");
}
if (JudgeExpire())
{
Debug.Log("请联系管理员进行升级");
timeOut?.Invoke("请联系管理员进行升级");
return;
}
success?.Invoke();
}
/// <summary>
/// 更新系统时间
/// </summary>
public static void UpdateTime(string datas, UnityAction<string> error = null, UnityAction<string> timeOut = null, UnityAction update = null, UnityAction success = null)
{
try
{
EndTimer = datas.Split('|')[0];
RecordData = datas.Split('|')[1];
//第一次获取获取系统时间
DateTime currentDateTime = DateTime.Now;
string Data = currentDateTime.ToString("yyyy-MM-dd HH:mm:ss");
if (DateTime.TryParse(RecordData, out DateTime recordDateTime) && DateTime.TryParse(Data, out DateTime nowDateTime))
{
if (recordDateTime > nowDateTime)
{
Debug.Log("仿真文件被损坏,请联系管理员进行修复");
error?.Invoke("仿真文件被损坏,请联系管理员进行修复");
}
else
{
//把上一次存储得系统时间更新到最新
//string timer = "Timer.txt";
//RecordData = Data;
//string strMerge = EndTimer + "|" + RecordData;
//EncryptFileCreator.EncryptAndSaveData(strMerge, timer);
update?.Invoke();
}
}
}
catch (Exception e)
{
Debug.LogError($"数据出错: {e.Message}");
error?.Invoke($"数据出错: {e.Message}");
}
if (JudgeExpire())
{
Debug.Log("请联系管理员进行升级");
timeOut?.Invoke("请联系管理员进行升级");
return;
}
success?.Invoke();
}
/// <summary>
/// 判断是否到期
/// </summary>
/// <returns></returns>
public static bool JudgeExpire()
{
if (DateTime.TryParse(EndTimer, out DateTime endDataTime) && DateTime.TryParse(RecordData, out DateTime recordDateTime))
{
//结束日期小于目前日期代表到期
if (endDataTime < recordDateTime)
{
return true;
}
}
return false;
}
/// <summary>
/// 给客户打包的时候,需要设置EndTimer,然后运行一次生成文件并注释掉
/// </summary>
public static void CreatTimer()
{
//第一次获取获取系统时间
DateTime currentDateTime = DateTime.Now;
RecordData = currentDateTime.ToString("yyyy-MM-dd HH:mm:ss");
string strMerge = EndTimer + "|" + RecordData;
EncryptFileCreator.EncryptAndSaveData(strMerge, "Timer.txt");
}
}