GuildWarBattleRankPageData.lua 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. local GuildWarBattleRankPageData = class('GuildWarBattleRankPageData')
  2. function GuildWarBattleRankPageData:ctor()
  3. end
  4. function GuildWarBattleRankPageData:Clear()
  5. self.reqPageIdx = nil
  6. self.lastUpdteTime = nil
  7. self.pageIdx = nil
  8. self.dataNum = nil
  9. self.datas = nil
  10. self.isFinish = nil
  11. self.isEnd = nil
  12. self.validStartId = nil
  13. self.validEndId = nil
  14. end
  15. function GuildWarBattleRankPageData:Dispose()
  16. end
  17. function GuildWarBattleRankPageData:SetData(msgData)
  18. if not msgData then
  19. return
  20. end
  21. local pageIdx = msgData.page_idx
  22. local isFinish = msgData.is_finish
  23. local dataLs = msgData.rank_data_list
  24. if self.reqPageIdx == pageIdx then
  25. self.reqPageIdx = nil
  26. end
  27. local datas = self.datas
  28. if not datas then
  29. datas = {}
  30. self.dataNum = 0
  31. self.datas = datas
  32. end
  33. local num = dataLs and #dataLs or 0
  34. if num <= 0 then
  35. if isFinish then
  36. if not self.dataNum or self.dataNum <= 0 then
  37. self.isFinish = isFinish
  38. end
  39. self.isEnd = true
  40. end
  41. return
  42. end
  43. self.pageIdx = pageIdx
  44. if isFinish and self.isFinish ~= isFinish then
  45. if self.dataNum and self.dataNum > 0 then
  46. datas = {}
  47. self.dataNum = 0
  48. self.datas = datas
  49. end
  50. end
  51. self.isFinish = isFinish
  52. local data = nil
  53. local oneData = nil
  54. local id = nil
  55. local validStartId = nil
  56. local validEndId = nil
  57. if isFinish then
  58. validStartId = self.validStartId
  59. validEndId = self.validEndId
  60. end
  61. for i = 1, num do
  62. data = dataLs[i]
  63. if isFinish then
  64. id = data.rank
  65. else
  66. id = i
  67. end
  68. oneData = datas[id]
  69. if not oneData then
  70. oneData = {}
  71. datas[id] = oneData
  72. end
  73. oneData.id = data.rank
  74. oneData.guildId = data.guild_id
  75. oneData.value = data.score
  76. oneData.playerBrief = ProtocalDataNormal.ParsePlayerBriefInfo(data.info)
  77. if not validStartId or validStartId > id then
  78. validStartId = id
  79. end
  80. if not validEndId or validEndId < id then
  81. validEndId = id
  82. end
  83. end
  84. self.validStartId = validStartId
  85. self.validEndId = validEndId
  86. self.dataNum = (validEndId - validStartId) + 1
  87. end
  88. function GuildWarBattleRankPageData:GetDataNum()
  89. return self.dataNum
  90. end
  91. function GuildWarBattleRankPageData:GetDatas()
  92. return self.datas
  93. end
  94. function GuildWarBattleRankPageData:GetDataByIdx(idx)
  95. if self.datas then
  96. return self.datas[idx]
  97. end
  98. return nil
  99. end
  100. function GuildWarBattleRankPageData:GetIsFinish()
  101. return self.isFinish
  102. end
  103. function GuildWarBattleRankPageData:GetPageIdx(isBegin)
  104. if self.reqPageIdx then
  105. if self.lastUpdteTime then
  106. local curTime = ManagerContainer.LuaTimerMgr:CurLuaServerTime()
  107. if (curTime - self.lastUpdteTime) <= 1 then
  108. return nil
  109. end
  110. end
  111. end
  112. local reqPageIdx = nil
  113. if isBegin then
  114. if self.pageIdx then
  115. reqPageIdx = self.pageIdx - 1
  116. end
  117. if not reqPageIdx or reqPageIdx <= 0 then
  118. reqPageIdx = 1
  119. end
  120. if self.isFinish then
  121. if self.datas then
  122. if self.datas[1] then
  123. reqPageIdx = nil
  124. elseif not self.validStartId or self.validStartId <= 1 then
  125. reqPageIdx = nil
  126. end
  127. end
  128. end
  129. else
  130. if self.pageIdx then
  131. reqPageIdx = self.pageIdx + 1
  132. else
  133. reqPageIdx = 1
  134. end
  135. if self.isFinish then
  136. if self.isEnd then
  137. reqPageIdx = nil
  138. end
  139. end
  140. end
  141. self.reqPageIdx = reqPageIdx
  142. return reqPageIdx
  143. end
  144. return GuildWarBattleRankPageData