changhong/lua_probject/base_project/Game/View/NewGroup/MngView/GroupMngPartnerStatViewAlon...

666 lines
27 KiB
Lua
Raw Normal View History

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 = {}
2025-09-28 18:12:30 +08:00
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)
2025-09-27 17:17:37 +08:00
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()
2025-09-27 17:17:37 +08:00
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
2025-09-27 17:17:37 +08:00
self:ChangedClear(0)
self:InitListRecordFind()
self:InsertTableRecord(1, res.Data.members[1])
self._selectedLev = 1
2025-09-28 18:12:30 +08:00
self._selectIndex = 1
self._selectIndexList[self._selectedLev] = self._selectIndex
2025-09-27 17:17:37 +08:00
self:GetAllRecordData(0, { lev = 1, index = 1 })
end
end
)
else
2025-09-27 17:17:37 +08:00
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
2025-09-27 17:17:37 +08:00
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
2025-09-27 17:17:37 +08:00
self.ctr_search.selectedIndex = 1
self:ChangedClear(0)
self:InitListRecordFind()
self:InsertTableRecord(1, res.Data.members[1])
self._selectedLev = 1
2025-09-28 18:12:30 +08:00
self._selectIndex = 1
self._selectIndexList[self._selectedLev] = self._selectIndex
2025-09-27 17:17:37 +08:00
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 = ""
2025-09-27 17:17:37 +08:00
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()
2025-09-27 17:17:37 +08:00
local count = 0
2025-09-28 18:12:30 +08:00
local selectCount = 0
2025-09-27 17:17:37 +08:00
for i = 1, #self._data_record do
count = count + #self._data_record[i]
2025-09-28 18:12:30 +08:00
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
2025-09-27 17:17:37 +08:00
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
2025-09-28 18:12:30 +08:00
self.item_result:ScrollToView(self._selectedLev == 0 and 0 or selectCount - 1)
2025-09-27 17:17:37 +08:00
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
2025-09-28 18:12:30 +08:00
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 返回子项在数据表层级中的索引
2025-09-28 18:12:30 +08:00
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
2025-09-27 17:17:37 +08:00
end
2025-09-28 18:12:30 +08:00
return self:RecursionGetIndex(index - (#self._data_record[tempLev] - (self._selectIndexList[tempLev] or 0)),
lev + 1)
2025-09-27 17:17:37 +08:00
end
end
2025-09-28 19:35:16 +08:00
-- 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)
2025-09-28 19:35:16 +08:00
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
2025-09-27 17:17:37 +08:00
else
2025-09-28 19:35:16 +08:00
ViewUtil.ErrorTip(res.ReturnCode, "目标没有总线值")
2025-09-27 17:17:37 +08:00
end
end)
2025-09-28 19:35:16 +08:00
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
2025-09-27 17:17:37 +08:00
end
2025-09-28 18:12:30 +08:00
end)
end
2025-09-28 19:35:16 +08:00
end)
obj:GetChild('btn_super').visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
obj:GetChild('btn_super').onClick:Set(function()
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
2025-09-27 17:17:37 +08:00
end
end
-- comment 初始化搜索list
2025-09-27 17:17:37 +08:00
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)
2025-09-28 19:35:16 +08:00
self:ListRenderer(index, obj)
2025-09-28 18:12:30 +08:00
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
2025-09-27 17:17:37 +08:00
self:InitListRecord()
local fgCtr = ControllerManager.GetController(NewGroupController)
if group.lev == 1 then
ViewUtil.ShowModalWait("获取盟主数据中")
self.groupumberTemp = {}
2025-09-28 19:35:16 +08:00
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
2025-09-28 19:35:16 +08:00
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
2025-09-27 17:17:37 +08:00
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
2025-09-27 17:17:37 +08:00
self:InsertTableRecord(1, members[i])
2025-09-28 18:12:30 +08:00
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
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
2025-09-28 19:35:16 +08:00
self.groupumberTemp.hpall.total_member = res.Data.member_num
2025-09-27 17:17:37 +08:00
self:InsertTableRecord(1, self.groupumberTemp)
2025-09-28 18:12:30 +08:00
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为点击数据所在的索引
2025-09-27 17:17:37 +08:00
function M:MoreChanged(context, data)
if context.sender.selectedIndex == 1 then
2025-09-27 17:17:37 +08:00
local myInfo = self._data_record[data.lev][data.index]
if myInfo then
2025-09-27 17:17:37 +08:00
self:ChangedClear(data.lev)
ViewUtil:ShowModalWait()
2025-09-27 17:17:37 +08:00
if data.lev == 1 then
self._selectedLev = 1
2025-09-28 18:12:30 +08:00
self._selectIndex = data.index
self._selectIndexList[self._selectedLev] = self._selectIndex
2025-09-27 17:17:37 +08:00
self:LevGetRecordData(0, myInfo)
else
2025-09-27 17:17:37 +08:00
self._selectedLev = data.lev
2025-09-28 18:12:30 +08:00
self._selectIndex = data.index
self._selectIndexList[self._selectedLev] = self._selectIndex
2025-09-27 17:17:37 +08:00
self:GetAllRecordData(0, data)
end
else
ViewUtil.ErrorTip(nil, "统计页面失效,请重新打开")
end
else
2025-09-28 18:12:30 +08:00
self._lst_selectIndex = self._selectIndexList[data.lev]
2025-09-27 17:17:37 +08:00
self:ChangedClear(data.lev)
self._selectedLev = data.lev - 1
2025-09-28 18:12:30 +08:00
self._selectIndex = self._selectIndexList[self._selectedLev] or 0
2025-09-27 17:17:37 +08:00
self:GetDataRecordLevList()
end
end
-- comment 清理指定层级一下的所有数据
---@param lev number 指定的层级,一般是点击数据所在的层级,收缩是是点击层级的上一级
2025-09-27 17:17:37 +08:00
function M:ChangedClear(lev)
2025-09-28 18:12:30 +08:00
if lev ~= 0 then
self._selectIndexList[lev] = nil
end
2025-09-27 17:17:37 +08:00
for i = lev + 1, #self._data_record do
self._data_record[i] = nil
2025-09-28 18:12:30 +08:00
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,
2025-09-28 18:12:30 +08:00
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
2025-09-28 18:12:30 +08:00
self:GetDataRecordLevList()
else
2025-09-27 17:17:37 +08:00
self:ChangedClear(3)
for i = 1, #numbers do
if numbers[i].lev ~= 1 and numbers[i].partnerLev == 0 then
2025-09-27 17:17:37 +08:00
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为点击数据所在的索引
2025-09-27 17:17:37 +08:00
function M:GetNumberRecord(index, data)
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
2025-09-27 17:17:37 +08:00
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][data.index]
if data.lev > 1 then
2025-09-28 18:12:30 +08:00
fatherInfo = self._data_record[data.lev - 1][self._selectIndexList[data.lev - 1]]
2025-09-27 17:17:37 +08:00
end
end
local fgCtr = ControllerManager.GetController(NewGroupController)
2025-09-28 18:12:30 +08:00
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
2025-09-27 17:17:37 +08:00
self:InsertTableRecord(data.lev + 1, members[i])
end
end
2025-09-28 18:12:30 +08:00
self:GetNumberRecord(index + 1, data)
else
2025-09-28 18:12:30 +08:00
self:GetDataRecordLevList()
end
end
end)
end
-- comment 递归获取第一级代理数据
---@param index number 递归开始下标默认传0
---@param data table 自己拼接的信息lev为点击数据所在的层级index为点击数据所在的索引
---@param callback function 用于点击非展开数据的查看下级按钮,一般是对应递归获取普通成员的方法
2025-09-28 18:12:30 +08:00
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)
2025-09-28 18:12:30 +08:00
fgCtr:FG_GetPartnerStat(self.group_id, index * 67, 67, time_type, self.begin_time, self.end_time, function(res)
2025-09-27 17:17:37 +08:00
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
local members = res.Data.members
if #members > 0 then
2025-09-27 17:17:37 +08:00
if self._data_record[2] then
lastIndex = #self._data_record[2]
end
for i = 1, #members do
2025-09-27 17:17:37 +08:00
if data.uid ~= members[i].uid then
self:InsertTableRecord(2, members[i])
end
end
2025-09-28 18:12:30 +08:00
self:LevGetRecordData(index + 1, data)
else
2025-09-28 18:12:30 +08:00
if callback then
callback()
return
end
self:GetDataRecordLevList()
end
else
2025-09-27 17:17:37 +08:00
ViewUtil.ErrorTip(res.ReturnCode, "获取下级合伙人失败")
return
end
end)
end
-- comment 递归获取指定代理下级数据
---@param index number 递归开始下标默认传0
---@param data table 自己拼接的信息lev为点击数据所在的层级index为点击数据所在的索引
---@param callback function 用于点击非展开数据的查看下级按钮,一般是对应递归获取普通成员的方法
2025-09-28 18:12:30 +08:00
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
2025-09-27 17:17:37 +08:00
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)
2025-09-28 18:12:30 +08:00
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
2025-09-27 17:17:37 +08:00
if members[i].uid ~= myInfo.uid then
self:InsertTableRecord(self._selectedLev + 1, members[i])
end
end
2025-09-28 18:12:30 +08:00
self:GetAllRecordData(index + 1, data)
else
2025-09-28 18:12:30 +08:00
if callback then
callback()
return
end
self:GetDataRecordLevList()
end
else
ViewUtil:ErrorTip(res.ReturnCode, "获取下级合伙人失败")
return
end
end)
end
return M