UIGuildMainCtr.lua 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. local UIGuildMainCtr = class("UIGuildMainCtr", require("UICtrBase"))
  2. function UIGuildMainCtr:Init(view)
  3. self.view = view
  4. end
  5. function UIGuildMainCtr:SetData(data)
  6. self.asyncIdx = 0
  7. self.data = data
  8. self:InitData()
  9. end
  10. function UIGuildMainCtr:GetAsyncIdx()
  11. self.asyncIdx = self.asyncIdx + 1
  12. return self.asyncIdx
  13. end
  14. function UIGuildMainCtr:GetData()
  15. return self.data
  16. end
  17. function UIGuildMainCtr:OnDispose()
  18. self.data = nil
  19. self.view = nil
  20. self.enterGuildCD = nil
  21. self.noticeMaxLength = nil
  22. self.activeDayLimit = nil
  23. self.guildData = nil
  24. self.changedNotice = nil
  25. end
  26. function UIGuildMainCtr:InitData()
  27. local cdMap = {}
  28. local cdInfoStr = GlobalConfig.Instance:GetConfigStrValue(201)
  29. if cdInfoStr then
  30. local cdInfoArr = string.split(cdInfoStr, ';')
  31. for _, cdInfo in pairs(cdInfoArr) do
  32. local cdArr = string.split(cdInfo, ':')
  33. if cdArr and #cdArr >= 2 then
  34. local num = tonumber(cdArr[1])
  35. local hour = tonumber(cdArr[2])
  36. cdMap[num] = hour
  37. end
  38. end
  39. end
  40. self.enterGuildCD = cdMap
  41. self.noticeMaxLength = GlobalConfig.Instance:GetConfigIntValue(215)
  42. self.activeDayLimit = GlobalConfig.Instance:GetConfigIntValue(197)
  43. self.guildData = ManagerContainer.DataMgr.GuildDataMgr:GetCurGuildData()
  44. self.changedNotice = self:GetCurNotice()
  45. end
  46. function UIGuildMainCtr:GetEnterGuildCD()
  47. local roleData = self:GetRoleData()
  48. local quitNum = roleData and roleData.quitNum or 1
  49. quitNum = quitNum + 1
  50. local cdtime = nil
  51. while not cdtime and quitNum > 0 do
  52. cdtime = self.enterGuildCD[quitNum]
  53. quitNum = quitNum - 1
  54. end
  55. return cdtime
  56. end
  57. function UIGuildMainCtr:GetNoticeLengthMax()
  58. return self.noticeMaxLength
  59. end
  60. function UIGuildMainCtr:GetActiveDayLimit()
  61. return self.activeDayLimit
  62. end
  63. function UIGuildMainCtr:GetGuildData()
  64. return self.guildData
  65. end
  66. function UIGuildMainCtr:GetGuildBriefData()
  67. return self.guildData:GetBriefData()
  68. end
  69. function UIGuildMainCtr:GetGuildMoreInfoData()
  70. return self.guildData:GetBaseData()
  71. end
  72. function UIGuildMainCtr:GetRoleData()
  73. return self.guildData:GetRoleData()
  74. end
  75. function UIGuildMainCtr:GetGuildMemberNum()
  76. return self.guildData:GetGuildMemberNum()
  77. end
  78. function UIGuildMainCtr:GetGuildMemberLimit()
  79. return self.guildData:GetGuildMemberLimit()
  80. end
  81. function UIGuildMainCtr:GetValidMemberNum()
  82. return self.guildData:GetValidMemberNum()
  83. end
  84. function UIGuildMainCtr:GetNeedLoadMemberMoreInfo(startIdx, endIdx)
  85. return self.guildData:GetNeedLoadMemberMoreInfo(startIdx + 1, endIdx + 1)
  86. end
  87. function UIGuildMainCtr:GetNextLoadMemberUids()
  88. return self.guildData:GetNextLoadMemberUid(10)
  89. end
  90. function UIGuildMainCtr:GetMemberMoreInfoByItemidx(itemIdx)
  91. return self.guildData:GetMemberMoreInfoByidx(itemIdx + 1)
  92. end
  93. function UIGuildMainCtr:GetMemberMoreInfoByUid(uid)
  94. return self.guildData:GetMemberMoreInfoByUid(uid)
  95. end
  96. function UIGuildMainCtr:GetGuildMemberPost(uid)
  97. return self.guildData:GetGuildMemberPost(uid)
  98. end
  99. function UIGuildMainCtr:GetIsHasApply()
  100. return self.guildData:GetIsHasApply()
  101. end
  102. function UIGuildMainCtr:GetId()
  103. local brief = self.guildData:GetBriefData()
  104. return brief and brief.id or 0
  105. end
  106. function UIGuildMainCtr:GetGuildPostType()
  107. return self:GetGuildMemberPost(ManagerContainer.DataMgr.UserData:GetUserId())
  108. end
  109. function UIGuildMainCtr:GetCurNotice()
  110. local moreInfo = self:GetGuildMoreInfoData()
  111. if not moreInfo then return '' end
  112. return tostring(moreInfo.notice)
  113. end
  114. function UIGuildMainCtr:SetChangeNotice(newNotice)
  115. self.changedNotice = newNotice
  116. end
  117. function UIGuildMainCtr:GetGuildWarInfo()
  118. return self.guildData:GetGuildWarInfo()
  119. end
  120. function UIGuildMainCtr:SendGetGuildMemberInfoReq(uids)
  121. if not uids or #uids == 0 then
  122. return 0
  123. end
  124. if not ManagerContainer.DataMgr.GuildDataMgr:SendGetGuildMemberInfoReq(self:GetId(), uids) then
  125. return 100007
  126. end
  127. return 0
  128. end
  129. function UIGuildMainCtr:SendGetGuildInfoReq()
  130. if not ManagerContainer.DataMgr.GuildDataMgr:SendGetGuildSelfInfoReq(self:GetId()) then
  131. return 100007
  132. end
  133. return 0
  134. end
  135. function UIGuildMainCtr:SendChangeNoticeReq()
  136. if self.changedNotice == self:GetCurNotice() then
  137. return 0
  138. end
  139. local level = ManagerContainer.DataMgr.UserData:GetRoleLv()
  140. if not SDKMgr.Instance:CheckSpeech(level, ChannelType.GUILD_NOTICE, self.changedNotice) then
  141. return 'ShieldTips01'
  142. end
  143. if not ManagerContainer.DataMgr.GuildDataMgr:SendChangeNoticeReq(self.changedNotice) then
  144. return 100007
  145. end
  146. return 0
  147. end
  148. function UIGuildMainCtr:SendApplyInfoHandleReq()
  149. if not ManagerContainer.DataMgr.GuildDataMgr:SendApplyInfoHandleReq(self:GetId()) then
  150. return 100007
  151. end
  152. return 0
  153. end
  154. function UIGuildMainCtr:SendSetGuildInfoReq()
  155. if not ManagerContainer.DataMgr.GuildDataMgr:SendSetGuildInfoReq(self:GetId()) then
  156. return 100007
  157. end
  158. return 0
  159. end
  160. function UIGuildMainCtr:SendDisbandGuildReq()
  161. if not ManagerContainer.DataMgr.GuildDataMgr:SendDisbandGuildReq() then
  162. return 100007
  163. end
  164. return 0
  165. end
  166. function UIGuildMainCtr:SendQuitGuildReq()
  167. if not ManagerContainer.DataMgr.GuildDataMgr:SendQuitGuildReq() then
  168. return 100007
  169. end
  170. return 0
  171. end
  172. function UIGuildMainCtr:SendChangeMemberTitleReq(uid, post)
  173. if not ManagerContainer.DataMgr.GuildDataMgr:SendChangeMemberTitleReq(uid, post) then
  174. return 100007
  175. end
  176. return 0
  177. end
  178. function UIGuildMainCtr:SendKickGuildMemeberReq(uid)
  179. if not ManagerContainer.DataMgr.GuildDataMgr:SendKickGuildMemeberReq(uid) then
  180. return 100007
  181. end
  182. return 0
  183. end
  184. function UIGuildMainCtr:SendGetGuildWarMatchMapReq()
  185. ManagerContainer.DataMgr.GuildWarDataMgr:SendGetGuildWarMatchMapReq()
  186. end
  187. return UIGuildMainCtr