|
@@ -4,6 +4,7 @@ using FairyGUI;
|
|
|
using UnityEngine;
|
|
|
using UnityEngine.Networking;
|
|
|
using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
|
|
|
namespace ET
|
|
|
{
|
|
@@ -152,18 +153,78 @@ namespace GFGGame
|
|
|
return true;
|
|
|
}
|
|
|
//获取当前排行榜
|
|
|
- public static async ETTask<bool> ReqCurrentRank()
|
|
|
+ public static async ETTask<bool> ReqCurrentRank(bool isPushEvent = false)
|
|
|
{
|
|
|
- var response = (S2C_GetCurJudgingRoundRankList)await MessageHelper.SendToServer(new C2S_GetCurJudgingRoundRankList { });
|
|
|
+ var response =
|
|
|
+ (S2C_GetCurJudgingRoundRankList)await MessageHelper.SendToServer(new C2S_GetCurJudgingRoundRankList
|
|
|
+ { });
|
|
|
if (!(response is { Error: ErrorCode.ERR_Success })) return false;
|
|
|
- MatchingCompetitionDataManager.Instance._currentRankList.Clear();
|
|
|
- foreach (var item in response.JudgingRoundRoleInfoList)
|
|
|
+
|
|
|
+ //需要从缓存里清理的数据
|
|
|
+ List<long> delRoleIds = new List<long>();
|
|
|
+ foreach (var item in MatchingCompetitionDataManager.Instance._currentRankList)
|
|
|
{
|
|
|
- MatchingPhotoWorksData data = new MatchingPhotoWorksData();
|
|
|
- data.JudgingInfo = item;
|
|
|
- MatchingCompetitionDataManager.Instance._currentRankList.Add(data);
|
|
|
+ if (response.JudgingRoundRoleInfoList.All(a => a.RoleId != item.RoleId))
|
|
|
+ {
|
|
|
+ delRoleIds.Add(item.RoleId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //执行清理
|
|
|
+ if (delRoleIds.Count != 0)
|
|
|
+ {
|
|
|
+ foreach (var roleId in delRoleIds)
|
|
|
+ {
|
|
|
+ var itemToRemove =
|
|
|
+ MatchingCompetitionDataManager.Instance._currentRankList.FirstOrDefault(item =>
|
|
|
+ item.RoleId == roleId);
|
|
|
+ if (itemToRemove != null)
|
|
|
+ {
|
|
|
+ MatchingCompetitionDataManager.Instance._currentRankList.Remove(itemToRemove);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (var judgingRoundRoleInfo in response.JudgingRoundRoleInfoList)
|
|
|
+ {
|
|
|
+ MatchingPhotoWorksData matchingPhotoWorksData =
|
|
|
+ MatchingCompetitionDataManager.Instance._currentRankList.FirstOrDefault(a =>
|
|
|
+ a.RoleId == judgingRoundRoleInfo.RoleId);
|
|
|
+ if (matchingPhotoWorksData == null)
|
|
|
+ {
|
|
|
+ matchingPhotoWorksData = new MatchingPhotoWorksData
|
|
|
+ {
|
|
|
+ RoleId = judgingRoundRoleInfo.RoleId,
|
|
|
+ JudgingInfo = judgingRoundRoleInfo
|
|
|
+ };
|
|
|
+ MatchingCompetitionDataManager.Instance._currentRankList.Add(matchingPhotoWorksData);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ int index = MatchingCompetitionDataManager.Instance._currentRankList
|
|
|
+ .IndexOf(matchingPhotoWorksData);
|
|
|
+ if (matchingPhotoWorksData.JudgingInfo != null)
|
|
|
+ {
|
|
|
+ string newTempFileName = StringUtil.GetUrlFileName(matchingPhotoWorksData.JudgingInfo.PictureTempUrl);
|
|
|
+ string oldTempFileName = StringUtil.GetUrlFileName(judgingRoundRoleInfo.PictureTempUrl);
|
|
|
+ matchingPhotoWorksData.IsUp = newTempFileName != oldTempFileName;
|
|
|
+ }
|
|
|
+
|
|
|
+ matchingPhotoWorksData.JudgingInfo = judgingRoundRoleInfo;
|
|
|
+ matchingPhotoWorksData.RoleId = judgingRoundRoleInfo.RoleId;
|
|
|
+ MatchingCompetitionDataManager.Instance._currentRankList[index] = matchingPhotoWorksData;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Timers.inst.StartCoroutine(
|
|
|
+ MatchingPhotoHelper.Download(MatchingCompetitionDataManager.Instance._currentRankList));
|
|
|
+
|
|
|
+ //推送事件
|
|
|
+ if (isPushEvent)
|
|
|
+ {
|
|
|
+ EventAgent.DispatchEvent(ConstMessage.REQ_CURRENT_RANK);
|
|
|
}
|
|
|
- Timers.inst.StartCoroutine(MatchingPhotoHelper.Download(MatchingCompetitionDataManager.Instance._currentRankList));
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
//获取往期作品集
|
|
@@ -190,6 +251,7 @@ namespace GFGGame
|
|
|
foreach (var item in response.JudgingRoundRoleInfoList)
|
|
|
{
|
|
|
MatchingPhotoWorksData data = new MatchingPhotoWorksData();
|
|
|
+ data.RoleId = item.RoleId;
|
|
|
data.JudgingInfo = item;
|
|
|
MatchingCompetitionDataManager.Instance._BeforeRankList.Add(data);
|
|
|
}
|