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

938 lines
41 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.record_data = {}
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._partnerNumList = {}
self._memberNumList = {}
self._getAllPartnerList = {}
self._selectedLev = 0
self:GetRecordData(0)
--self:ShowPeopleNum()
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()
self.record_data = {}
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: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.record_data = {}
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
self.ctr_search.selectedIndex = 1
self:ChangedClear(0)
self:InitListRecordFind()
self:InsertTableRecord(1, res.Data.members[1])
self._selectedLev = 1
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
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
function M:GetDataRecordLevList(data)
local count = 0
self._data_record.levList = {}
for i = 1, #self._data_record do
count = count + #self._data_record[i]
table.insert(self._data_record.levList, count)
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
local orderIndex = 0
if data and data.orderIndex then
orderIndex = data.orderIndex
end
self.item_result:ScrollToView(self._selectedLev == 0 and 0 or
self._data_record.levList[self._selectedLev] - 1 + orderIndex)
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
local orderIndex = 0
if data and data.orderIndex then
orderIndex = data.orderIndex
end
self.lst_record:ScrollToView(self._selectedLev == 0 and 0 or
self._data_record.levList[self._selectedLev] - 1 + orderIndex)
end
end
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)
local tempLev = 0
for i = 1, #self._data_record.levList do
if index < self._data_record.levList[i] then
tempLev = i
break
end
end
printlog("lingmeng InitListRecord", tempLev)
local tempIndex = index + 1 - (tempLev == 1 and 0 or self._data_record.levList[tempLev - 1])
local dataInfo = self._data_record[tempLev][tempIndex]
obj:GetChild("tex_name").text = ViewUtil.stringEllipsis(dataInfo.nick)
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
pt("lingmeng log1", obj:GetChild('tex_reward').text)
pt("lingmeng log2", dataInfo)
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 and tempIndex == #self._data_record[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()
self.record_data = {}
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
self.lst_record.scrollPane.onPullUpRelease:Set(function()
if self._selectedLev == 1 then
if self._getAllPartnerList[self._selectedLev + 1] then
local dataInfo = self._data_record[1][1]
if not dataInfo.partnerLev and #self._data_record >= 2 then
ViewUtil.ShowModalWait("正在获取成员中")
self:GetNumberRecordForLev1(self._memberNumList[2] or 0,
{ lev = 1, index = 1 })
ViewUtil.CloseModalWait()
else
self:GetNumberRecord(self._memberNumList[2] or 0, { lev = 1, index = 1 })
end
else
self:LevGetRecordData(self._partnerNumList[2], self._data_record[1][1])
end
else
if self._getAllPartnerList[self._selectedLev + 1] then
self:GetNumberRecord(self._memberNumList[self._selectedLev + 1] or 0,
{ lev = self._selectedLev, index = #self._data_record[self._selectedLev] })
else
self:GetAllRecordData(self._partnerNumList[self._selectedLev + 1] or 0,
{ lev = self._selectedLev, index = #self._data_record[self._selectedLev] })
end
end
end)
end
end
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)
local tempLev = 0
for i = 1, #self._data_record.levList do
if index < self._data_record.levList[i] then
tempLev = i
break
end
end
printlog("lingmeng InitListRecord", tempLev)
local tempIndex = index + 1 - (tempLev == 1 and 0 or self._data_record.levList[tempLev - 1])
local dataInfo = self._data_record[tempLev][tempIndex]
obj:GetChild("tex_name").text = ViewUtil.stringEllipsis(dataInfo.nick)
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 and tempIndex == #self._data_record[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()
self.record_data = {}
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
self.item_result.scrollPane.onPullUpRelease:Set(function()
if self._selectedLev == 1 then
if self._getAllPartnerList[self._selectedLev + 1] then
local dataInfo = self._data_record[1][1]
if not dataInfo.partnerLev and #self._data_record >= 2 then
ViewUtil.ShowModalWait("正在获取成员中")
self:GetNumberRecordForLev1(self._memberNumList[2] or 0,
{ lev = 1, index = 1 })
ViewUtil.CloseModalWait()
else
self:GetNumberRecord(self._memberNumList[2] or 0, { lev = 1, index = 1 })
end
else
self:LevGetRecordData(self._partnerNumList[2], self._data_record[1][1])
end
else
if self._getAllPartnerList[self._selectedLev + 1] then
self:GetNumberRecord(self._memberNumList[self._selectedLev + 1] or 0,
{ lev = self._selectedLev, index = #self._data_record[self._selectedLev] })
else
self:GetAllRecordData(self._partnerNumList[self._selectedLev + 1] or 0,
{ lev = self._selectedLev, index = #self._data_record[self._selectedLev] })
end
end
end)
end
end
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.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, time_type)
else
self:GetFristData(fgCtr, 0, time_type)
end
end
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 and #self.record_data == 0 then
for i = 1, #members do
if members[i].uid == DataManager.SelfUser.account_id then
self.record_data[#self.record_data + 1] = members[i]
self:InsertTableRecord(1, members[i])
else
self:InsertTableRecord(2, members[i])
end
end
self._getAllPartnerList[1] = true
self._partnerNumList[1] = 1
self._partnerNumList[2] = #members
self._selectedLev = 1
self:GetDataRecordLevList()
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
function M:GetPropLog(members, index, time_type)
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
self.record_data[1] = self.groupumberTemp
self:InsertTableRecord(1, self.groupumberTemp)
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
self:InsertTableRecord(2, members[i])
end
self._getAllPartnerList[1] = true
self._partnerNumList[1] = 1
self._partnerNumList[2] = #members
self._selectedLev = 1
self:GetDataRecordLevList()
else
if index == 0 and (not members or #members == 0) then
ViewUtil.ErrorTip(nil, "你不是合伙人")
return
end
end
else
ViewUtil.ErrorTip(res.ReturnCode, "当前成员获取失败")
end
end)
else
ViewUtil.ErrorTip(res.ReturnCode, "目标没有总线值")
end
end)
end
end)
end
function M:FillRecordItem(data, obj)
local group = DataManager.groups:get(self.group_id)
if group.lev == 1 then
obj:GetChild("tex_name").text = ViewUtil.stringEllipsis(data.nick)
else
obj:GetChild("tex_name").text = ViewUtil.stringEllipsis(data.nick) .. "(" .. data.total .. ")"
end
obj:GetChild("tex_id").text = "ID:" .. data.uid
local tex_total_score = obj:GetChild("tex_total_score")
local ctr_show_total = obj:GetController("show_total")
if data.hpall then
tex_total_score.text = data.hpall.hp
ctr_show_total.selectedIndex = 1
else
ctr_show_total.selectedIndex = 0
end
obj:GetChild("tex_round_valid").text = d2ad(data.reward_hp + data.total_win) --d2ad(data.reward_hp) --data.valid_round / 100
obj:GetChild("tex_round_total").text = data.total_round
obj:GetChild("tex_total").text = d2ad(data.total_win)
obj:GetChild("tex_round_youxiao").text = data.valid_round / 100
obj:GetChild('tex_reward').text = d2ad(data.reward_hp)
local btn_check_members = obj:GetChild("btn_check_members")
btn_check_members.onClick:Set(function()
ViewUtil.ShowModalWait(self._root_view)
local fgCtr = ControllerManager.GetController(NewGroupController)
if data.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, data.uid, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
local hp = d2ad(res.Data.hp)
tex_total_score.text = hp
data._total_hp = hp
data.total = res.Data.total_member - 1
obj:GetChild("tex_name").text = data.nick .. "(" .. data.total .. ")"
ctr_show_total.selectedIndex = 1
end
end)
end
end)
local btn_award = obj:GetChild("btn_award")
btn_award.text = d2ad(data.reward_hp) --d2ad(data.reward_hp+data.total_win)
btn_award.onClick:Set(function()
local time_type = self._view:GetController("type").selectedIndex
local gniv = GroupPartnerStatPlay.new(self.group_id, data.uid, data.partnerLev, DataManager.SelfUser.account_id,
time_type, self.begin_time, self.end_time)
gniv:Show()
end)
local btn_detail = obj:GetChild("btn_detail")
btn_detail.onClick:Set(function()
local time_type = self._view:GetController("type").selectedIndex
--printlog("ccccccccccwwwwwwwwwwwwwwwwwwwwwwwwwwww ",self.begin_time," ",self.end_time)
local gniv = GroupPartnerStatMember.new(self.group_id, data.uid, 0, self.begin_time, self.end_time)
gniv:Show()
end)
local btnMen = obj:GetChild("btnMen")
-- btnMen.text = d2ad(data.autoscore)
local menControl = obj:GetController("menkan")
-- if group.lev == 1 or (group.lev == 3 and group.partnerLev > 0) then
-- if (DataManager.SelfUser.account_id ~= data.uid) then
-- menControl.selectedIndex = 1
-- btnMen.text = d2ad(data.autoscore)
-- btnMen.touchable = true
-- else
-- btnMen.text = d2ad(data.autoscore)
-- menControl.selectedIndex = 1
-- btnMen.touchable = false
-- end
-- else
-- menControl.selectedIndex = 0
-- end
btnMen.onClick:Set(function()
local gfiv = GroupNumberInputView.new(self._root_view, function(num)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_SetPartnerThreshold(self.group_id, data.uid, num, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "设置失败")
else
ViewUtil.ShowBannerOnScreenCenter("设置成功")
btnMen.text = num
data.autoscore = ad2d(num)
end
end)
end, 0)
gfiv:Show()
end)
end
function M:OnRenderRecordItem(index, obj)
local data = self.record_data[index + 1]
self:FillRecordItem(data, obj)
end
function M:MoreChanged(context, data)
print("lingmeng MoreChanged", context.sender.selectedIndex)
if context.sender.selectedIndex == 1 then
self.record_data = {}
local myInfo = self._data_record[data.lev][data.index]
if myInfo then
self:ChangedClear(data.lev)
ViewUtil:ShowModalWait()
if data.lev == 1 then
self._selectedLev = 1
self:LevGetRecordData(0, myInfo)
else
self._selectedLev = data.lev
self:GetAllRecordData(0, data)
end
else
ViewUtil.ErrorTip(nil, "统计页面失效,请重新打开")
end
else
self:ChangedClear(data.lev)
self._selectedLev = data.lev - 1
self:GetDataRecordLevList()
end
end
function M:ChangedClear(lev)
for i = lev + 1, #self._data_record do
self._data_record[i] = nil
self._partnerNumList[i] = nil
self._getAllPartnerList[i] = nil
self._memberNumList[i] = nil
end
end
function M:GetNumberRecordForLev1(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 fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GroupMembers12(
self.group_id,
index,
67,
1,
2,
function(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, '获取成员列表失败')
else
local numbers = res.Data.members
if #numbers == 0 then
ViewUtil.ErrorTip(-1, "已获取全部成员")
else
self:ChangedClear(3)
local lastIndex = 0
if self._data_record[2] then
lastIndex = #self._data_record[2]
end
for i = 1, #numbers do
if numbers[i].lev ~= 1 and numbers[i].partnerLev == 0 then
self:InsertTableRecord(2, numbers[i])
end
end
if not self._memberNumList[data.lev + 1] or self._memberNumList[data.lev + 1] == 0 then
self._memberNumList[data.lev + 1] = #numbers
else
self._memberNumList[data.lev + 1] = self._memberNumList[data.lev + 1] + #numbers
end
self._selectedLev = 1
self:GetDataRecordLevList({ orderIndex = lastIndex })
end
end
end
)
end
function M:RecursionGetNumberRecordByLev1(tempTable, id, root_id)
local time_type = self._view:GetController("type").selectedIndex
if self.begin_time ~= nil and self.end_time ~= nil then
time_type = 0
end
ViewUtil.ShowModalWait(nil)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GetDirectMemberStat(self.group_id, id, root_id, 0, 1,
time_type,
self.begin_time,
self.end_time, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
local members = res.Data.members
self.record_data[#self.record_data + 1] = members[1]
local numberid = table.remove(tempTable)
if numberid then
self:RecursionGetNumberRecordByLev1(tempTable, numberid.uid, root_id)
else
self:NewRecordTableChildQian(self.record_data, 0, root_id)
ViewUtil.CloseModalWait()
end
end
end)
end
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
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
fatherInfo = self._data_record[data.lev - 1][#self._data_record[data.lev - 1]]
end
end
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GetDirectMemberStat(self.group_id, myInfo.uid, fatherInfo.uid, index, 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
local temp = self._data_record[data.lev][#self._data_record[data.lev]]
local lastIndex = 0
if temp.uid ~= myInfo.uid then
self:ChangedClear(data.lev)
self._data_record[data.lev][#self._data_record[data.lev]] = myInfo
self._data_record[data.lev][data.index] = temp
else
self:ChangedClear(data.lev + 1)
lastIndex = #self._data_record[data.lev + 1]
end
for i = 1, #members do
if members[i].partnerLev and members[i].partnerLev == 0 then
self:InsertTableRecord(data.lev + 1, members[i])
end
end
if not self._memberNumList[data.lev + 1] or self._memberNumList[data.lev + 1] == 0 then
self._memberNumList[data.lev + 1] = #members
else
self._memberNumList[data.lev + 1] = self._memberNumList[data.lev + 1] + #members
end
self._selectedLev = data.lev
self:GetDataRecordLevList({ orderIndex = lastIndex })
else
ViewUtil.ErrorTip(-1, "已获取全部成员")
end
end
end)
end
function M:LevGetRecordData(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 fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GetPartnerStat(self.group_id, index, 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
local lastIndex = 0
if self._data_record[2] then
lastIndex = #self._data_record[2]
end
local haveMy = false
for i = 1, #members do
if data.uid ~= members[i].uid then
self:InsertTableRecord(2, members[i])
else
haveMy = true
end
end
self._getAllPartnerList[1] = true
self._partnerNumList[1] = 1
self._partnerNumList[2] = #members - (haveMy and 0 or 1)
self._selectedLev = 1
self:GetDataRecordLevList({ orderIndex = lastIndex })
else
self._getAllPartnerList[2] = true
ViewUtil.ErrorTip(-1, "已获取全部代理成员")
end
else
ViewUtil.ErrorTip(res.ReturnCode, "获取下级合伙人失败")
return
end
end)
end
function M:GetAllRecordData(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
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,
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
local lastIndex = 0
if self._data_record[data.lev + 1] then
lastIndex = #self._data_record[data.lev + 1]
end
for i = data.index + 1, #self._data_record[data.lev] do
self._data_record[data.lev][i - 1] = self._data_record[data.lev][i]
end
self._data_record[data.lev][#self._data_record[data.lev]] = myInfo
local haveMy = false
for i = 1, #members do
if members[i].uid ~= myInfo.uid then
self:InsertTableRecord(self._selectedLev + 1, members[i])
else
haveMy = true
end
end
if not self._partnerNumList[self._selectedLev + 1] or self._partnerNumList[self._selectedLev + 1] == 0 then
self._partnerNumList[self._selectedLev + 1] = #members - (haveMy and 0 or 1)
else
self._partnerNumList[self._selectedLev + 1] = self._partnerNumList[self._selectedLev + 1] +
#members - (haveMy and 0 or 1)
end
if not self._data_record[self._selectedLev + 1] or #self._data_record[self._selectedLev + 1] == 0 then
self._getAllPartnerList[self._selectedLev + 1] = true
end
self._selectedLev = data.lev
self:GetDataRecordLevList({ orderIndex = lastIndex })
else
self._getAllPartnerList[self._selectedLev + 1] = true
ViewUtil.ErrorTip(-1, "已获取全部代理成员")
end
else
ViewUtil:ErrorTip(res.ReturnCode, "获取下级合伙人失败")
return
end
end)
end
function M:RecursionChangeHeight(fatherId, childNum)
if self.ctr_search.selectedIndex == 0 then
self.record_total_data[fatherId].childCount = self.record_total_data[fatherId].childCount + childNum
self.record_total_data[fatherId].list.height = self.record_total_data[fatherId].list.height + childNum * 113
self.record_total_data[fatherId].obj.height = self.record_total_data[fatherId].obj.height + childNum * 113
if self.record_total_data[fatherId].father ~= nil then
self:RecursionChangeHeight(self.record_total_data[fatherId].father, childNum)
end
else
self.record_total_data_Find[fatherId].childCount = self.record_total_data_Find[fatherId].childCount + childNum
self.record_total_data_Find[fatherId].list.height = self.record_total_data_Find[fatherId].list.height +
childNum * 113
self.record_total_data_Find[fatherId].obj.height = self.record_total_data_Find[fatherId].obj.height +
childNum * 113
if self.record_total_data_Find[fatherId].father ~= nil and self.record_total_data_Find[fatherId].father ~= DataManager.SelfUser.account_id then
self:RecursionChangeHeight(self.record_total_data_Find[fatherId].father, childNum)
end
end
end
return M