JudgingRoundRankComponent.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System.Collections.Generic;
  2. using MongoDB.Bson.Serialization.Attributes;
  3. namespace ET
  4. {
  5. /// <summary>
  6. /// 搭配评选赛当期排行榜组件
  7. /// </summary>
  8. public class JudgingRoundRankComponent : Entity, IAwake, IDestroy, IConfigHotLoad
  9. {
  10. /// <summary>
  11. /// 搭配评选赛当期排行榜列表
  12. /// </summary>
  13. public SortedList<JudgingRoundRankInfo, long> RankList =
  14. new SortedList<JudgingRoundRankInfo, long>(new JudgingRoundRanCompare());
  15. public Dictionary<long, JudgingRoundRankInfo> RankInfoDIc = new Dictionary<long, JudgingRoundRankInfo>();
  16. /// <summary>
  17. /// 初始化排名与奖励ID的映射关系表
  18. /// </summary>
  19. [BsonIgnore] public Dictionary<int, int> RankToRewardDic = new Dictionary<int, int>();
  20. }
  21. public class JudgingRoundRanCompare : IComparer<JudgingRoundRankInfo>
  22. {
  23. public int Compare(JudgingRoundRankInfo a, JudgingRoundRankInfo b)
  24. {
  25. if (a.IsDisposed || b.IsDisposed)
  26. {
  27. return 0;
  28. }
  29. //TODO 后续补充排行逻辑
  30. if (b.BeLikedCount > a.BeLikedCount)
  31. {
  32. return 1;
  33. }
  34. if (b.BeLikedCount < a.BeLikedCount)
  35. {
  36. return -1;
  37. }
  38. if (b.Id > a.Id)
  39. {
  40. return -1;
  41. }
  42. if (b.Id < a.Id)
  43. {
  44. return 1;
  45. }
  46. return 0;
  47. }
  48. }
  49. }