720 lines
30 KiB
Lua
720 lines
30 KiB
Lua
local TimeSettingPanel = import(".TimeSettingPanelTog")
|
||
local GroupPartnerStatMember = import(".GroupPartnerStatMember")
|
||
local GroupPartnerStatPlay = import(".GroupPartnerStatPlay")
|
||
local GroupNumberInputView = import(".GroupNumberInputView")
|
||
-- 开桌统计
|
||
local GroupMngPartnerStatViewAlone = {}
|
||
|
||
local M = GroupMngPartnerStatViewAlone
|
||
setmetatable(M, { __index = BaseWindow })
|
||
|
||
function GroupMngPartnerStatViewAlone.new(gid)
|
||
local self = setmetatable({}, { __index = M })
|
||
self.class = "GroupMngPartnerStatViewAlone"
|
||
self.group_id = gid
|
||
self:InitView()
|
||
return self
|
||
end
|
||
|
||
--初始化数据
|
||
function M:initData()
|
||
self.lst_record.numItems = 0
|
||
self.ctr_search = self._view:GetController('search')
|
||
|
||
local now_time = os.date("*t", now)
|
||
local today = os.time({ year = now_time.year, month = now_time.month, day = now_time.day, hour = 0, min = 0, sec = 0 })
|
||
self.begin_time = today
|
||
self.end_time = today + 86400
|
||
self._data_record = {}
|
||
self._selectIndexList = {}
|
||
self._selectIndex = 0
|
||
self._selectedLev = 0
|
||
self:GetRecordData(0)
|
||
end
|
||
|
||
--初始化页面
|
||
function M:InitView()
|
||
BaseWindow.init(self, "ui://NewGroup/View_GroupPartnerStatAlone")
|
||
|
||
local group = DataManager.groups:get(self.group_id)
|
||
|
||
self:InitListRecord()
|
||
|
||
self.time_panel = TimeSettingPanel.new(self._view, self._view:GetChild("btn_date1"), self._view:GetChild("btn_date2"),
|
||
-308, 0, function()
|
||
self.begin_time, self.end_time = self.time_panel:GetDate()
|
||
self:InitListRecord()
|
||
if self._view:GetController('search').selectedIndex == 1 then
|
||
ViewUtil.ShowModalWait(nil)
|
||
local text = self._view:GetChild('tex_id').text
|
||
local qid, qnick
|
||
if text == "" then
|
||
ViewUtil.CloseModalWait()
|
||
ViewUtil.ErrorTip(nil, '输入不能为空')
|
||
return
|
||
end
|
||
qid = tonumber(text) or 0
|
||
qnick = text
|
||
local time_type = self._view:GetController("type").selectedIndex
|
||
if self.begin_time ~= nil and self.end_time ~= nil then
|
||
time_type = 0
|
||
end
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
fgCtr:FG_FindPartnerStat(
|
||
self.group_id,
|
||
qid, 0, 6, time_type, self.begin_time, self.end_time,
|
||
function(res)
|
||
-- printlog("aaaaaaaaaaaaaaaa22222222222222222222222222222")
|
||
-- pt(res)
|
||
ViewUtil.CloseModalWait()
|
||
if self._is_destroy then
|
||
return
|
||
end
|
||
if res.ReturnCode ~= 0 then
|
||
ViewUtil.ErrorTip(res.ReturnCode, '找不到成员')
|
||
else
|
||
self:ChangedClear(0)
|
||
self:InitListRecordFind()
|
||
self:InsertTableRecord(1, res.Data.members[1])
|
||
self._selectedLev = 1
|
||
self._selectIndex = 1
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:GetAllRecordData(0, { lev = 1, index = 1 })
|
||
end
|
||
end
|
||
)
|
||
else
|
||
self:ChangedClear(0)
|
||
self:GetRecordData()
|
||
end
|
||
end, { showDay = group.lev < 3 and 30 or 7 })
|
||
self.begin_time, self.end_time = self.time_panel:GetDate()
|
||
local ctr_page = self._view:GetController("type")
|
||
ctr_page.onChanged:Set(function()
|
||
self.lst_record.numItems = 0
|
||
if ctr_page.selectedIndex == 0 then
|
||
local now_time = os.date("*t", now)
|
||
local today = os.time({ year = now_time.year, month = now_time.month, day = now_time.day, hour = 0, min = 0, sec = 0 })
|
||
self.begin_time = today
|
||
self.end_time = today + 86400
|
||
else
|
||
local now_time = os.date("*t", now)
|
||
local today = os.time({ year = now_time.year, month = now_time.month, day = now_time.day, hour = 0, min = 0, sec = 0 })
|
||
self.begin_time = today - 86400 * ctr_page.selectedIndex
|
||
self.end_time = today - 86400 * (ctr_page.selectedIndex - 1)
|
||
end
|
||
self:GetRecordData()
|
||
end)
|
||
|
||
-- 搜索玩家
|
||
self._view:GetChild('btn_search').onClick:Set(
|
||
function()
|
||
--printlog("aaaaaaaaaa1111111111111111111111111111111111111111111111")
|
||
ViewUtil.ShowModalWait(nil)
|
||
local text = self._view:GetChild('tex_id').text
|
||
local qid, qnick
|
||
if text == "" then
|
||
ViewUtil.CloseModalWait()
|
||
ViewUtil.ErrorTip(nil, '输入不能为空')
|
||
return
|
||
end
|
||
qid = tonumber(text) or 0
|
||
qnick = text
|
||
local time_type = self._view:GetController("type").selectedIndex
|
||
if self.begin_time ~= nil and self.end_time ~= nil then
|
||
time_type = 0
|
||
end
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
fgCtr:FG_FindPartnerStat(
|
||
self.group_id,
|
||
qid, 0, 6, time_type, self.begin_time, self.end_time,
|
||
function(res)
|
||
-- printlog("aaaaaaaaaaaaaaaa22222222222222222222222222222")
|
||
-- pt(res)
|
||
ViewUtil.CloseModalWait()
|
||
if self._is_destroy then
|
||
return
|
||
end
|
||
if res.ReturnCode ~= 0 then
|
||
ViewUtil.ErrorTip(res.ReturnCode, '找不到成员')
|
||
else
|
||
if not res.Data.members or #res.Data.members == 0 then
|
||
ViewUtil.ErrorTip(res.ReturnCode, '找不到成员')
|
||
return
|
||
end
|
||
self.ctr_search.selectedIndex = 1
|
||
self:ChangedClear(0)
|
||
self:InitListRecordFind()
|
||
self:InsertTableRecord(1, res.Data.members[1])
|
||
self._selectedLev = 1
|
||
self._selectIndex = 1
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:GetAllRecordData(0, { lev = 1, index = 1 })
|
||
end
|
||
end
|
||
)
|
||
end
|
||
)
|
||
|
||
local btn_back = self._view:GetChild('btn_back')
|
||
btn_back.onClick:Set(
|
||
function()
|
||
self._view:GetChild('tex_id').text = ""
|
||
self:ChangedClear(0)
|
||
self:GetRecordData()
|
||
end
|
||
)
|
||
end
|
||
|
||
---comment 根据lev等级添加数据
|
||
---@param lev number 用户所在的等级
|
||
---@param data table 用户信息
|
||
function M:InsertTableRecord(lev, data)
|
||
if self._data_record[lev] then
|
||
table.insert(self._data_record[lev], data)
|
||
else
|
||
self._data_record[lev] = {}
|
||
table.insert(self._data_record[lev], data)
|
||
end
|
||
end
|
||
|
||
-- comment 获取全部数据之后,计算相关参数,count为全部数据的数量,selectCount为点击的用户是第几个子项
|
||
function M:GetDataRecordLevList()
|
||
local count = 0
|
||
local selectCount = 0
|
||
for i = 1, #self._data_record do
|
||
count = count + #self._data_record[i]
|
||
end
|
||
for i = 1, self._selectIndexList and #self._selectIndexList or 1 do
|
||
selectCount = selectCount + (self._selectIndexList and self._selectIndexList[i] or 1)
|
||
end
|
||
if self._lst_selectIndex then
|
||
selectCount = selectCount + self._lst_selectIndex
|
||
self._lst_selectIndex = nil
|
||
end
|
||
self._data_record.count = count
|
||
if self.ctr_search.selectedIndex == 1 then
|
||
if self.item_result.numItems == self._data_record.count then
|
||
self.item_result:RefreshVirtualList()
|
||
else
|
||
self.item_result.numItems = self._data_record.count
|
||
end
|
||
self.item_result:ScrollToView(self._selectedLev == 0 and 0 or selectCount - 1)
|
||
else
|
||
if self.lst_record.numItems == self._data_record.count then
|
||
self.lst_record:RefreshVirtualList()
|
||
else
|
||
self.lst_record.numItems = self._data_record.count
|
||
end
|
||
self.lst_record:ScrollToView(self._selectedLev == 0 and 0 or selectCount - 1)
|
||
end
|
||
end
|
||
|
||
-- comment 根据展开规则,递归得到对应的数据的层级和索引,通过层级索引获得对应数据
|
||
---@param index number 虚拟列表的子项index
|
||
---@param lev number 默认为1,表示从第一项开始递归计算,也可以在函数内设置,此处在调用时默认传1
|
||
---@return number 返回子项在数据表中的层级
|
||
---@return number 返回子项在数据表层级中的索引
|
||
function M:RecursionGetIndex(index, lev)
|
||
if lev <= #self._selectIndexList then
|
||
if self._selectIndexList[lev] == nil then
|
||
return 1, 1
|
||
end
|
||
if index <= self._selectIndexList[lev] then
|
||
return lev, index
|
||
end
|
||
return self:RecursionGetIndex(index - self._selectIndexList[lev], lev + 1)
|
||
else
|
||
local haveXia = self._data_record[self._selectedLev + 1] and 1 or 0
|
||
local tempLev = #self._selectIndexList - (lev - self._selectedLev - 1 - haveXia)
|
||
if index <= #self._data_record[tempLev] - (self._selectIndexList[tempLev] or 0) then
|
||
return tempLev, (self._selectIndexList[tempLev] or 0) + index
|
||
end
|
||
return self:RecursionGetIndex(index - (#self._data_record[tempLev] - (self._selectIndexList[tempLev] or 0)),
|
||
lev + 1)
|
||
end
|
||
end
|
||
|
||
-- comment 搜索和非搜索通用的虚拟列表渲染逻辑
|
||
---@param index any 虚拟列表传输过来的子项索引
|
||
---@param obj any 虚拟列表传输过来的子项
|
||
function M:ListRenderer(index, obj)
|
||
local tempLev, tempIndex = self:RecursionGetIndex(index + 1, 1)
|
||
local dataInfo = self._data_record[tempLev][tempIndex]
|
||
local nameStr = ViewUtil.stringEllipsis(dataInfo.nick)
|
||
if dataInfo.hpall and dataInfo.hpall.total_member and (dataInfo.partnerLev ~= 0 or dataInfo.lev == 1) then
|
||
nameStr = string.format("%s(%d)", nameStr, dataInfo.hpall.total_member - 1)
|
||
end
|
||
obj:GetChild("tex_name").text = nameStr
|
||
obj:GetChild("tex_id").text = "ID:" .. dataInfo.uid
|
||
local tex_total_score = obj:GetChild("tex_total_score")
|
||
local ctr_show_total = obj:GetController("show_total")
|
||
if dataInfo.hpall then
|
||
tex_total_score.text = d2ad(dataInfo.hpall.hp)
|
||
ctr_show_total.selectedIndex = 1
|
||
else
|
||
ctr_show_total.selectedIndex = 0
|
||
end
|
||
obj:GetChild("tex_round_valid").text = d2ad((dataInfo.reward_tongji or dataInfo.reward_hp) + dataInfo
|
||
.total_win) --d2ad(data.reward_hp) --data.valid_round / 100
|
||
obj:GetChild("tex_round_total").text = dataInfo.total_round
|
||
obj:GetChild("tex_total").text = d2ad(dataInfo.total_win)
|
||
obj:GetChild("tex_round_youxiao").text = dataInfo.valid_round / 100
|
||
obj:GetChild('tex_reward').text = d2ad(dataInfo.reward_tongji or dataInfo.reward_hp)
|
||
obj:GetChild("btn_more").visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
|
||
obj:GetController("more").onChanged:Set(function() end)
|
||
if tempLev <= self._selectedLev then
|
||
obj:GetController("select").selectedIndex = 1
|
||
else
|
||
obj:GetController("select").selectedIndex = 0
|
||
end
|
||
if tempIndex == self._selectIndexList[tempLev] then
|
||
obj:GetController("more").selectedIndex = 1
|
||
else
|
||
obj:GetController("more").selectedIndex = 0
|
||
end
|
||
obj:GetController("more").onChanged:Set(function(context)
|
||
self:MoreChanged(context, { lev = tempLev, index = tempIndex })
|
||
end)
|
||
|
||
local btn_check_members = obj:GetChild("btn_check_members")
|
||
btn_check_members.visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
|
||
btn_check_members.onClick:Set(function()
|
||
ViewUtil.ShowModalWait(self._root_view)
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
if dataInfo.uid == DataManager.SelfUser.account_id then
|
||
fgCtr:FG_GetMembersCount(self.group_id, function(res)
|
||
ViewUtil.CloseModalWait()
|
||
if res.ReturnCode == 0 then
|
||
tex_total_score.text = d2ad(res.Data.hp_num1 + res.Data.otherHp)
|
||
ctr_show_total.selectedIndex = 1
|
||
else
|
||
ViewUtil.ErrorTip(res.ReturnCode, "目标没有总线值")
|
||
end
|
||
end)
|
||
else
|
||
fgCtr:FG_GetTotalHp(self.group_id, dataInfo.uid, function(res)
|
||
ViewUtil.CloseModalWait()
|
||
if res.ReturnCode == 0 then
|
||
local hp = d2ad(res.Data.hp)
|
||
tex_total_score.text = hp
|
||
dataInfo._total_hp = hp
|
||
ctr_show_total.selectedIndex = 1
|
||
end
|
||
end)
|
||
end
|
||
end)
|
||
|
||
obj:GetChild('btn_super').visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
|
||
obj:GetChild('btn_super').onClick:Set(function()
|
||
local myInfo = self._data_record[tempLev][tempIndex]
|
||
if myInfo._flag_normol then
|
||
ViewUtil.ErrorTip(nil, '已获取全部普通用户')
|
||
return
|
||
end
|
||
myInfo._flag_normol = true
|
||
if obj:GetController("more").selectedIndex == 0 then
|
||
self:ChangedClear(tempLev)
|
||
ViewUtil:ShowModalWait()
|
||
if tempLev == 1 then
|
||
self._selectedLev = 1
|
||
self._selectIndex = tempIndex
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:LevGetRecordData(0, dataInfo,
|
||
self.GetNumberRecordForLev1(self, 0, { lev = tempLev, index = tempIndex }))
|
||
else
|
||
self._selectedLev = tempLev
|
||
self._selectIndex = tempIndex
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:GetAllRecordData(0, { lev = tempLev, index = tempIndex },
|
||
self.GetNumberRecord(self, 0, { lev = tempLev, index = tempIndex }))
|
||
end
|
||
else
|
||
self:ChangedClear(tempIndex + 1)
|
||
self._selectedLev = tempLev
|
||
self._selectIndex = tempIndex
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
if tempLev == 1 and not dataInfo.partnerLev and #self._data_record >= 2 then
|
||
ViewUtil.ShowModalWait("正在获取成员中")
|
||
self:GetNumberRecordForLev1(0, { lev = tempLev, index = tempIndex })
|
||
ViewUtil.CloseModalWait()
|
||
else
|
||
self:GetNumberRecord(0, { lev = tempLev, index = tempIndex })
|
||
end
|
||
end
|
||
end)
|
||
end
|
||
|
||
-- comment 初始化初始list
|
||
function M:InitListRecord()
|
||
if not self.lst_record then
|
||
self.lst_record = self._view:GetChild("lst_record")
|
||
self.lst_record:SetVirtual()
|
||
self.lst_record.itemRenderer = function(index, obj)
|
||
self:ListRenderer(index, obj)
|
||
end
|
||
end
|
||
end
|
||
|
||
-- comment 初始化搜索list
|
||
function M:InitListRecordFind()
|
||
if not self.item_result then
|
||
self.item_result = self._view:GetChild("lst_member_find")
|
||
self.item_result:SetVirtual()
|
||
self.item_result.itemRenderer = function(index, obj)
|
||
self:ListRenderer(index, obj)
|
||
end
|
||
end
|
||
end
|
||
|
||
-- comment 第一次获取非搜索的数据
|
||
function M:GetRecordData()
|
||
ViewUtil.ShowModalWait()
|
||
local group = DataManager.groups:get(self.group_id)
|
||
local time_type = self._view:GetController("type").selectedIndex
|
||
if self.begin_time ~= nil and self.end_time ~= nil then
|
||
time_type = 0
|
||
end
|
||
self:InitListRecord()
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
if group.lev == 1 then
|
||
ViewUtil.ShowModalWait("获取盟主数据中")
|
||
self.groupumberTemp = {}
|
||
self.groupumberTemp.lev = 1
|
||
self.groupumberTemp.uid = group.owner
|
||
self.groupumberTemp.nick = group.o_nick
|
||
self.groupumberTemp.total_round = 0
|
||
self.groupumberTemp.valid_round = 0
|
||
self.groupumberTemp.reward_hp = 0
|
||
self.groupumberTemp.total_win = 0
|
||
self:GetPropLog(0)
|
||
else
|
||
self:GetFristData(fgCtr, 0, time_type)
|
||
end
|
||
end
|
||
|
||
-- comment 非盟主第一次获取数据
|
||
---@param fgCtr any 亲友圈控制器
|
||
---@param index number 递归开始下标,默认传0
|
||
---@param time_type number 时间类型 0为拼接传过去的开始时间和结束时间去搜索
|
||
function M:GetFristData(fgCtr, index, time_type)
|
||
fgCtr:FG_GetPartnerStat(self.group_id, index * 67, 67, time_type, self.begin_time, self.end_time, function(res)
|
||
ViewUtil.CloseModalWait()
|
||
|
||
if res.ReturnCode == 0 then
|
||
self:InitListRecord()
|
||
|
||
local members = res.Data.members
|
||
if members and #members then
|
||
for i = 1, #members do
|
||
if members[i].uid == DataManager.SelfUser.account_id then
|
||
self:InsertTableRecord(1, members[i])
|
||
self._selectedLev = 1
|
||
self._selectIndex = 1
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:LevGetRecordData(0, members[i])
|
||
break
|
||
end
|
||
end
|
||
else
|
||
if index == 0 and (not members or #members == 0) then
|
||
ViewUtil.ErrorTip(nil, "你不是合伙人")
|
||
return
|
||
end
|
||
end
|
||
else
|
||
ViewUtil.ErrorTip(res.ReturnCode, "当前成员获取失败")
|
||
end
|
||
end)
|
||
end
|
||
|
||
-- comment 盟主第一次获取数据
|
||
--- sp:里面包含连续两条协议调用,之后可以只用一条协议就能获取所有内容,或者和获取代理数据的协议合并
|
||
---@param index number 递归开始下标,默认传0
|
||
function M:GetPropLog(index)
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
fgCtr:FG_GetPropLog(self.group_id, index * 67, 67, self.begin_time, self.end_time, function(res)
|
||
if res.ReturnCode ~= 0 then
|
||
ViewUtil.CloseModalWait()
|
||
ViewUtil.ErrorTip(res.ReturnCode, "获取排名信息失败")
|
||
else
|
||
local info = res.Data
|
||
self.groupumberTemp.total_round = info.count
|
||
self.groupumberTemp.valid_round = info.valid_count * 100
|
||
self.groupumberTemp.reward_hp = info.pump
|
||
self.groupumberTemp.total_win = 0
|
||
self.groupumberTemp.hpall = {}
|
||
self.groupumberTemp.hpall.hp = info.hp_num1
|
||
self.groupumberTemp.hpall.total_member = info.member_num or 0
|
||
self:InsertTableRecord(1, self.groupumberTemp)
|
||
self._selectedLev = 1
|
||
self._selectIndex = 1
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:LevGetRecordData(0, self.groupumberTemp)
|
||
ViewUtil.CloseModalWait()
|
||
-- fgCtr:FG_GetMembersCount(self.group_id, function(res)
|
||
-- ViewUtil.CloseModalWait()
|
||
-- if res.ReturnCode == 0 then
|
||
-- self.groupumberTemp.hpall = {}
|
||
-- self.groupumberTemp.hpall.hp = res.Data.hp_num1 + res.Data.otherHp
|
||
-- self.groupumberTemp.hpall.total_member = res.Data.member_num
|
||
-- self:InsertTableRecord(1, self.groupumberTemp)
|
||
-- self._selectedLev = 1
|
||
-- self._selectIndex = 1
|
||
-- self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
-- self:LevGetRecordData(0, self.groupumberTemp)
|
||
-- else
|
||
-- ViewUtil.ErrorTip(res.ReturnCode, "目标没有总线值")
|
||
-- end
|
||
-- end)
|
||
end
|
||
end)
|
||
end
|
||
|
||
-- comment 点击减号触发获取数据
|
||
---@param context any 官方传输的信息
|
||
---@param data table 自己拼接的信息,lev为点击数据所在的层级,index为点击数据所在的索引
|
||
function M:MoreChanged(context, data)
|
||
if context.sender.selectedIndex == 1 then
|
||
local myInfo = self._data_record[data.lev][data.index]
|
||
if myInfo then
|
||
self:ChangedClear(data.lev)
|
||
ViewUtil:ShowModalWait()
|
||
if self.ctr_search.selectedIndex == 1 then
|
||
local time_type = self._view:GetController("type").selectedIndex
|
||
if self.begin_time ~= nil and self.end_time ~= nil then
|
||
time_type = 0
|
||
end
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
fgCtr:FG_FindPartnerStat(
|
||
self.group_id,
|
||
myInfo.uid, 0, 6, time_type, self.begin_time, self.end_time,
|
||
function(res)
|
||
-- printlog("aaaaaaaaaaaaaaaa22222222222222222222222222222")
|
||
-- pt(res)
|
||
ViewUtil.CloseModalWait()
|
||
if self._is_destroy then
|
||
return
|
||
end
|
||
if res.ReturnCode ~= 0 then
|
||
ViewUtil.ErrorTip(res.ReturnCode, '找不到成员')
|
||
else
|
||
if not res.Data.members or #res.Data.members == 0 then
|
||
ViewUtil.ErrorTip(res.ReturnCode, '找不到成员')
|
||
return
|
||
end
|
||
self.ctr_search.selectedIndex = 1
|
||
self:ChangedClear(0)
|
||
self:InitListRecordFind()
|
||
self:InsertTableRecord(1, res.Data.members[1])
|
||
self._selectedLev = 1
|
||
self._selectIndex = 1
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:GetAllRecordData(0, { lev = 1, index = 1 })
|
||
end
|
||
end
|
||
)
|
||
else
|
||
if data.lev == 1 then
|
||
self._selectedLev = 1
|
||
self._selectIndex = data.index
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:LevGetRecordData(0, myInfo)
|
||
else
|
||
self._selectedLev = data.lev
|
||
self._selectIndex = data.index
|
||
self._selectIndexList[self._selectedLev] = self._selectIndex
|
||
self:GetAllRecordData(0, data)
|
||
end
|
||
end
|
||
else
|
||
ViewUtil.ErrorTip(nil, "统计页面失效,请重新打开")
|
||
end
|
||
else
|
||
self._lst_selectIndex = self._selectIndexList[data.lev]
|
||
self:ChangedClear(data.lev)
|
||
self._selectedLev = data.lev - 1
|
||
self._selectIndex = self._selectIndexList[self._selectedLev] or 0
|
||
self:GetDataRecordLevList()
|
||
end
|
||
end
|
||
|
||
-- comment 清理指定层级一下的所有数据
|
||
---@param lev number 指定的层级,一般是点击数据所在的层级,收缩是是点击层级的上一级
|
||
function M:ChangedClear(lev)
|
||
if lev ~= 0 then
|
||
self._selectIndexList[lev] = nil
|
||
end
|
||
for i = lev + 1, #self._data_record do
|
||
self._data_record[i] = nil
|
||
self._selectIndexList[i] = nil
|
||
end
|
||
end
|
||
|
||
-- comment 盟主递归获取普通成员数据
|
||
---@param index number 递归开始下标,默认传0
|
||
function M:GetNumberRecordForLev1(index)
|
||
local time_type = self._view:GetController("type").selectedIndex
|
||
if self.begin_time ~= nil and self.end_time ~= nil then
|
||
time_type = 0
|
||
end
|
||
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
fgCtr:FG_GroupMembers12(
|
||
self.group_id,
|
||
index * 67,
|
||
67,
|
||
1,
|
||
2,
|
||
function(res)
|
||
if res.ReturnCode ~= 0 then
|
||
ViewUtil.ErrorTip(res.ReturnCode, '获取成员列表失败')
|
||
else
|
||
local numbers = res.Data.members
|
||
|
||
if #numbers == 0 then
|
||
self:GetDataRecordLevList()
|
||
else
|
||
self:ChangedClear(3)
|
||
for i = 1, #numbers do
|
||
if numbers[i].lev ~= 1 and numbers[i].partnerLev == 0 then
|
||
self:InsertTableRecord(2, numbers[i])
|
||
end
|
||
end
|
||
self:GetNumberRecordForLev1(index + 1)
|
||
end
|
||
end
|
||
end
|
||
)
|
||
end
|
||
|
||
-- comment 非盟主递归获取普通成员数据
|
||
---@param index number 递归开始下标,默认传0
|
||
---@param data table 自己拼接的信息,lev为点击数据所在的层级,index为点击数据所在的索引
|
||
function M:GetNumberRecord(index, data)
|
||
local time_type = self._view:GetController("type").selectedIndex
|
||
if self.begin_time ~= nil and self.end_time ~= nil then
|
||
time_type = 0
|
||
end
|
||
local myInfo = self._data_record[data.lev][data.index]
|
||
ViewUtil.ShowModalWait("正在获取成员中")
|
||
local fatherInfo
|
||
if self.ctr_search.selectedIndex == 1 then
|
||
fatherInfo = {}
|
||
fatherInfo.uid = DataManager.SelfUser.account_id
|
||
else
|
||
fatherInfo = self._data_record[data.lev][data.index]
|
||
if data.lev > 1 then
|
||
fatherInfo = self._data_record[data.lev - 1][self._selectIndexList[data.lev - 1]]
|
||
end
|
||
end
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
fgCtr:FG_GetDirectMemberStat(self.group_id, myInfo.uid, fatherInfo.uid, index * 67, 67,
|
||
time_type,
|
||
self.begin_time,
|
||
self.end_time, function(res)
|
||
ViewUtil.CloseModalWait()
|
||
if res.ReturnCode == 0 then
|
||
local members = res.Data.members
|
||
if #members > 0 then
|
||
for i = 1, #members do
|
||
if members[i].partnerLev and members[i].partnerLev == 0 then
|
||
self:InsertTableRecord(data.lev + 1, members[i])
|
||
end
|
||
end
|
||
self:GetNumberRecord(index + 1, data)
|
||
else
|
||
self:GetDataRecordLevList()
|
||
end
|
||
end
|
||
end)
|
||
end
|
||
|
||
-- comment 递归获取第一级代理数据
|
||
---@param index number 递归开始下标,默认传0
|
||
---@param data table 自己拼接的信息,lev为点击数据所在的层级,index为点击数据所在的索引
|
||
---@param callback function 用于点击非展开数据的查看下级按钮,一般是对应递归获取普通成员的方法
|
||
function M:LevGetRecordData(index, data, callback)
|
||
local time_type = self._view:GetController("type").selectedIndex
|
||
if self.begin_time ~= nil and self.end_time ~= nil then
|
||
time_type = 0
|
||
end
|
||
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
fgCtr:FG_GetPartnerStat(self.group_id, index * 67, 67, time_type, self.begin_time, self.end_time, function(res)
|
||
ViewUtil.CloseModalWait()
|
||
if res.ReturnCode == 0 then
|
||
local members = res.Data.members
|
||
if #members > 0 then
|
||
if self._data_record[2] then
|
||
lastIndex = #self._data_record[2]
|
||
end
|
||
for i = 1, #members do
|
||
if data.uid ~= members[i].uid then
|
||
self:InsertTableRecord(2, members[i])
|
||
end
|
||
end
|
||
self:LevGetRecordData(index + 1, data)
|
||
else
|
||
if callback then
|
||
callback()
|
||
return
|
||
end
|
||
self:GetDataRecordLevList()
|
||
end
|
||
else
|
||
ViewUtil.ErrorTip(res.ReturnCode, "获取下级合伙人失败")
|
||
return
|
||
end
|
||
end)
|
||
end
|
||
|
||
-- comment 递归获取指定代理下级数据
|
||
---@param index number 递归开始下标,默认传0
|
||
---@param data table 自己拼接的信息,lev为点击数据所在的层级,index为点击数据所在的索引
|
||
---@param callback function 用于点击非展开数据的查看下级按钮,一般是对应递归获取普通成员的方法
|
||
function M:GetAllRecordData(index, data, callback)
|
||
ViewUtil.ShowModalWait()
|
||
local time_type = self._view:GetController("type").selectedIndex
|
||
if self.begin_time ~= nil and self.end_time ~= nil then
|
||
time_type = 0
|
||
end
|
||
local myInfo = self._data_record[data.lev][data.index]
|
||
local fatherInfo
|
||
if self.ctr_search.selectedIndex == 1 then
|
||
fatherInfo = {}
|
||
fatherInfo.uid = DataManager.SelfUser.account_id
|
||
else
|
||
fatherInfo = self._data_record[data.lev - 1][#self._data_record[data.lev - 1]]
|
||
end
|
||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||
fgCtr:FG_GetPartnerStatMember(self.group_id, myInfo.uid, fatherInfo.uid, index * 67, 67,
|
||
time_type,
|
||
self.begin_time,
|
||
self.end_time, function(res)
|
||
ViewUtil.CloseModalWait()
|
||
if res.ReturnCode == 0 then
|
||
local members = res.Data.members
|
||
if #members > 0 then
|
||
for i = 1, #members do
|
||
if members[i].uid ~= myInfo.uid then
|
||
self:InsertTableRecord(self._selectedLev + 1, members[i])
|
||
end
|
||
end
|
||
self:GetAllRecordData(index + 1, data)
|
||
else
|
||
if callback then
|
||
callback()
|
||
return
|
||
end
|
||
self:GetDataRecordLevList()
|
||
end
|
||
else
|
||
ViewUtil:ErrorTip(res.ReturnCode, "获取下级合伙人失败")
|
||
return
|
||
end
|
||
end)
|
||
end
|
||
|
||
return M
|