Commit ff0f7328 authored by SherryChaos's avatar SherryChaos

fix deck sync bug

parent 1580ff45
...@@ -477,13 +477,13 @@ namespace MDPro3.Net ...@@ -477,13 +477,13 @@ namespace MDPro3.Net
public DateTime GetUpdateUtcTime() public DateTime GetUpdateUtcTime()
{ {
var dataTimeOffset = DateTimeOffset.FromUnixTimeSeconds(deckUpdateDate / 1000); var dataTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds(deckUpdateDate - 28800000);
return dataTimeOffset.UtcDateTime; return dataTimeOffset.UtcDateTime;
} }
public DateTime GetOnlineDeckLocalTime() public DateTime GetOnlineDeckLocalTime()
{ {
var dataTimeOffset = DateTimeOffset.FromUnixTimeSeconds(lastDate / 1000); var dataTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds(lastDate);
return dataTimeOffset.LocalDateTime; return dataTimeOffset.LocalDateTime;
} }
} }
......
...@@ -257,6 +257,8 @@ namespace MDPro3.Servant ...@@ -257,6 +257,8 @@ namespace MDPro3.Servant
GetUI<OnlineServantUI>().PageMyCard.ButtonDeckSelector.SetConfigDeck(InterString.Get("未选中有效卡组")); GetUI<OnlineServantUI>().PageMyCard.ButtonDeckSelector.SetConfigDeck(InterString.Get("未选中有效卡组"));
} }
private float timeError = 3f;
private IEnumerator SyncDecks() private IEnumerator SyncDecks()
{ {
if (OnlineDeck.decks == null) if (OnlineDeck.decks == null)
...@@ -271,8 +273,8 @@ namespace MDPro3.Servant ...@@ -271,8 +273,8 @@ namespace MDPro3.Servant
decks.Add(new Deck(deckPath)); decks.Add(new Deck(deckPath));
var decksNeedUpload = new Dictionary<string, Deck>();//没在服务器找到对应的deckId的本地卡组 var decksNeedUpload = new Dictionary<string, Deck>();//没在服务器找到对应的deckId的本地卡组
var decksNeedUpdateToServer = new Dictionary<string, Deck>();//找到deckId但本地时间大于服务器时间秒以上的卡组 var decksNeedUpdateToServer = new Dictionary<string, Deck>();//找到deckId但本地时间大于服务器时间timeError秒以上的卡组
var decksNeedUpdateFromServer = new Dictionary<string, Deck>();//找到deckId但本地时间小于服务器时间秒以上的卡组 var decksNeedUpdateFromServer = new Dictionary<string, Deck>();//找到deckId但本地时间小于服务器时间timeError秒以上的卡组
var localFoundIds = new List<string>(); var localFoundIds = new List<string>();
for (int i = 0; i < decks.Count; i++) for (int i = 0; i < decks.Count; i++)
...@@ -303,11 +305,11 @@ namespace MDPro3.Servant ...@@ -303,11 +305,11 @@ namespace MDPro3.Servant
var serverTime = od.GetUpdateUtcTime(); var serverTime = od.GetUpdateUtcTime();
var diff = serverTime - fileInfo.LastWriteTimeUtc; var diff = serverTime - fileInfo.LastWriteTimeUtc;
//Debug.Log($"{od.deckName}: serverTime: {serverTime} localTime: {fileInfo.LastWriteTimeUtc} diff: {diff.TotalSeconds}"); //Debug.Log($"{od.deckName}: serverTimeUtc: {od.GetUpdateUtcTime()}, serverTimeLocal: {od.GetUpdateLocalTime()} localTime: {fileInfo.LastWriteTimeUtc} diff: {diff.TotalSeconds}");
if (diff.TotalSeconds > 1f || diff.TotalSeconds < -1f) if (diff.TotalSeconds > timeError || diff.TotalSeconds < -timeError)
{ {
if (fileInfo.LastWriteTime > serverTime) if (fileInfo.LastWriteTimeUtc > serverTime)
decksNeedUpdateToServer.Add(deckName, decks[i]); decksNeedUpdateToServer.Add(deckName, decks[i]);
else else
decksNeedUpdateFromServer.Add(deckName, decks[i]); decksNeedUpdateFromServer.Add(deckName, decks[i]);
...@@ -328,7 +330,6 @@ namespace MDPro3.Servant ...@@ -328,7 +330,6 @@ namespace MDPro3.Servant
var task = OnlineDeck.SyncDeck(deck.Value.deckId, deck.Key, deck.Value, time, false); var task = OnlineDeck.SyncDeck(deck.Value.deckId, deck.Key, deck.Value, time, false);
while (!task.IsCompleted) while (!task.IsCompleted)
yield return null; yield return null;
deck.Value.Save(deck.Key, time, false);
} }
//更新已经有Id的本地较旧卡组 //更新已经有Id的本地较旧卡组
foreach (var deck in decksNeedUpdateFromServer) foreach (var deck in decksNeedUpdateFromServer)
......
...@@ -977,7 +977,6 @@ namespace MDPro3.UI.ServantUI ...@@ -977,7 +977,6 @@ namespace MDPro3.UI.ServantUI
} }
private void OnClearDeck() private void OnClearDeck()
{ {
var codes = new List<int>(); var codes = new List<int>();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment