changhong/lua_probject/base_project/Game/View/NewGroup/MngView/GroupMngPartnerRewardsView.lua

483 lines
17 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

-- 牌友圈合伙人界面
local GroupNumberInputView = import(".GroupNumberInputView")
local TimeSettingPanel = import(".TimeSettingPanel")
local GroupMngPartnerRewardsView = {}
local M = GroupMngPartnerRewardsView
function GroupMngPartnerRewardsView.new(gid, blur_view)
local self = M
self.class = "GroupMngPartnerRewardsView"
self.group_id = gid
self.blur_view = blur_view
self:InitView()
return self
end
function M:initData()
self.rewards_data = {}
self.rewards_log = {}
self.search_rewards_data = {}
self.search_rewards_log = {}
self.partner_data = {}
self.partner_data2 = {}
self.search_partner_data = {}
self.lst_partner.numItems = 0
self.lst_partner2.numItems = 0
self.lst_rewards.numItems = 0
self.lst_log.numItems = 0
local group = DataManager.groups:get(self.group_id)
-- if group.lev == 3 then
-- local mdata = {}
-- mdata.portrait = DataManager.SelfUser.head_url
-- mdata.uid = DataManager.SelfUser.account_id
-- mdata.nick = DataManager.SelfUser.nick_name
-- self.partner_data2[1] = mdata
-- self.lst_partner2.numItems = 1
-- self.lst_partner2.selectedIndex = 0
-- end
local index = self._view:GetController("index").selectedIndex
if index < 2 then
self:GetPartnerData(0)
else
self:GetRewardsStatistic()
-- self._view:GetController("index").selectedIndex = 0
end
end
function M:InitView()
self._view = UIPackage.CreateObjectFromURL("ui://NewGroup/View_PartnerRewards")
-- 根据权限显示功能
local ctr_index = self._view:GetController("index")
local group = DataManager.groups:get(self.group_id)
if group.lev == 1 then
self._view:GetController("mng").selectedIndex = 1
else
if group.type == 2 then
self._view:GetController("alliance").selectedIndex = 1
else
ctr_index.selectedIndex = 1
self._view:GetController("mng").selectedIndex = 0
end
end
self.ctr_search = self._view:GetController("search")
-- 切换页面时1,2页需要先清理数据再加载当前页
ctr_index.onChanged:Set(function()
if ctr_index.selectedIndex == 0 then
if self.ctr_search.selectedIndex == 0 then
if #self.partner_data ~= 0 then
self.rewards_data = {}
self.lst_rewards.numItems = 0
self:GetRewardsData()
else
self:GetPartnerData(0)
end
else
self.search_rewards_data = {}
self.lst_rewards.numItems = 0
self:GetRewardsData()
end
elseif ctr_index.selectedIndex == 1 then
if self.ctr_search.selectedIndex == 0 then
self.rewards_log = {}
else
self.search_rewards_log = {}
end
self.lst_log.numItems = 0
self:GetRewardsLog()
else
self:GetRewardsStatistic()
end
end)
-- 初始化数据
self.partner_data = {}
self.partner_data2 = {}
local group = DataManager.groups:get(self.group_id)
-- if group.lev == 3 then
-- local mdata = {}
-- mdata.portrait = DataManager.SelfUser.head_url
-- mdata.uid = DataManager.SelfUser.account_id
-- mdata.nick = DataManager.SelfUser.nick_name
-- self.partner_data2[1] = mdata
-- end
self.rewards_data = {}
self.rewards_log = {}
-- 各个列表的初始化
self.lst_partner = self._view:GetChild("lst_partner")
self.lst_partner:SetVirtual()
self.lst_partner.itemRenderer = function(index, obj)
self:OnRenderPartnerItem(index, obj)
end
self.lst_partner.scrollPane.onPullUpRelease:Set(function()
self:GetPartnerData(self.lst_partner.numItems)
end)
self.lst_partner.onClickItem:Set(function()
self.rewards_data = {}
self.lst_rewards.numItems = 0
self:GetRewardsData()
end)
self.lst_partner2 = self._view:GetChild("lst_partner2")
self.lst_partner2:SetVirtual()
self.lst_partner2.itemRenderer = function(index, obj)
self:OnRenderPartnerItem2(index, obj)
end
self.lst_partner2.scrollPane.onPullUpRelease:Set(function()
self:GetPartnerData(self.lst_partner.numItems)
end)
self.lst_partner2.onClickItem:Set(function()
self.rewards_log = {}
self.lst_log.numItems = 0
self:GetRewardsLog()
end)
self.lst_rewards = self._view:GetChild("lst_rewards")
self.lst_rewards:SetVirtual()
self.lst_rewards.itemRenderer = function(index, obj)
self:OnRenderRewardsItem(index, obj)
end
self.lst_log = self._view:GetChild("lst_rewards_record")
self.lst_log:SetVirtual()
self.lst_log.itemRenderer = function(index, obj)
self:OnRenderLogItem(index, obj)
end
self.lst_log.scrollPane.onPullUpRelease:Set(function()
self:GetRewardsLog(self.lst_log.numItems)
end)
-- 初始化玩法下拉框
local items = {}
local values = {}
table.insert(items, "全部")
table.insert(values, "0")
-- if #group.playList > 0 then
for i = 1, #group.playList do
local play = group.playList[i]
table.insert(items, play.name)
table.insert(values, tostring(play.id))
end
-- end
local cb_play = self._view:GetChild("cb_play")
cb_play.items = items
cb_play.values = values
cb_play.selectedIndex = 0
-- 搜索按钮事件
self._view:GetChild("btn_search").onClick:Set(function()
self.rewards_log = {}
self.lst_log.numItems = 0
self:GetRewardsLog()
end)
self._view:GetChild("btn_search2").onClick:Set(function()
self:GetRewardsStatistic()
end)
self._view:GetChild("btn_search3").onClick:Set(function()
local quary_id = tonumber(self._view:GetChild("tex_id").text)
if not quary_id then
ViewUtil.ErrorTip(nil, "请输入正确的ID")
return
end
self.search_rewards_data = {}
self.search_rewards_log = {}
self:GetPartnerData(0, quary_id)
end)
self._view:GetChild("btn_back").onClick:Set(function()
self.lst_rewards.numItems = #self.rewards_data
self.lst_log.numItems = #self.rewards_log
self.search_partner_data = {}
end)
self._view:GetChild("btn_all").onClick:Set(function()
self.time_panel1:SetTenDay()
self.rewards_log = {}
self.lst_log.numItems = 0
self:GetRewardsLog()
end)
-- 时间组件初始化
self.time_panel1 = TimeSettingPanel.new(self._view, self._view:GetChild("btn_date1"), self._view:GetChild("btn_date2"), -308, 0)
self.time_panel2 = TimeSettingPanel.new(self._view, self._view:GetChild("btn_date3"), self._view:GetChild("btn_date4"), -308, 0)
end
-- 获取合伙人数据
function M:GetPartnerData(index, qid)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_PartnerList(self.group_id, index, 6, qid, function(res)
if self._is_destroy then
return
end
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取合伙人信息失败")
else
local members = res.Data.members
if not qid then
-- if #members == 0 then return end
for i = 1, #members do
self.partner_data[#self.partner_data + 1] = members[i]
self.partner_data2[#self.partner_data2 + 1] = members[i]
end
self.lst_partner.numItems = #self.partner_data
self.lst_partner2.numItems = #self.partner_data2
if index == 0 then
local tem = self._view:GetController("index").selectedIndex
self.lst_partner.selectedIndex = 0
self.lst_partner2.selectedIndex = 0
if tem == 0 and #self.partner_data > 0 then
self:GetRewardsData()
elseif tem == 1 and #self.partner_data2 > 0 then
self:GetRewardsLog()
end
end
else
if #members == 0 then
ViewUtil.ErrorTip(nil, "找不到该合伙人")
return
end
self.search_partner_data = members
local data = members[1]
local obj = self._view:GetChild("item_search")
obj:GetChild("tex_name").text = data.nick
local btn_head = obj:GetChild("btn_head")
local portrait = data.portrait
if portrait == "" then
btn_head.icon = "ui://Common/Head0"
else
ImageLoad.Load(portrait, btn_head._iconObject, self.class)
end
obj.selected = true
self:GetRewardsData()
self:GetRewardsLog()
self.ctr_search.selectedIndex = 1
end
end
end)
end
-- 获取奖励设置数据
function M:GetRewardsData()
local data
if #self.search_partner_data == 0 then
if #self.partner_data == 0 then return end
ViewUtil.ShowModalWait()
data = self.partner_data[self.lst_partner.selectedIndex + 1]
else
data = self.search_partner_data[1]
end
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GetRewards(self.group_id, data.uid, data.partnerLev, function(res)
ViewUtil.CloseModalWait()
if self._is_destroy then
return
end
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取合伙人奖励失败")
else
local rewards = res.Data.rewards
-- if #rewards == 0 then return end
local rdata
if self.ctr_search.selectedIndex == 0 then
rdata = self.rewards_data
else
rdata = self.search_rewards_data
end
for i = 1, #rewards do
rdata[#rdata + 1] = rewards[i]
end
self.lst_rewards.numItems = #rdata
end
end)
end
-- 获取奖励日志
function M:GetRewardsLog()
local data
if #self.search_partner_data == 0 then
if #self.partner_data2 == 0 then return end
ViewUtil.ShowModalWait()
data = self.partner_data2[self.lst_partner2.selectedIndex + 1]
else
data = self.search_partner_data[1]
end
local begin_time, end_time = self.time_panel1:GetDate()
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GetRewardsLog(self.group_id, #self.rewards_log, 6, begin_time, end_time, data.uid, function(res)
ViewUtil.CloseModalWait()
if self._is_destroy then
return
end
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取奖励日志失败")
else
local logs = res.Data.reward_logs
-- if #logs == 0 then return end
local rdata
if self.ctr_search.selectedIndex == 0 then
rdata = self.rewards_log
else
rdata = self.search_rewards_log
end
if #rdata == 0 then
self._view:GetChild("tex_num1").text = res.Data.total_num / 100
self._view:GetChild("tex_num2").text = d2ad(res.Data.total_hp)
end
for i = 1, #logs do
rdata[#rdata + 1] = logs[i]
end
self.lst_log.numItems = #rdata
end
end)
end
-- 获取奖励统计
function M:GetRewardsStatistic()
ViewUtil.ShowModalWait()
local data = self.partner_data2[self.lst_partner2.selectedIndex + 1]
local begin_time, end_time = self.time_panel2:GetDate()
local pid = tonumber(self._view:GetChild("cb_play").value)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GetRewardStatistic(self.group_id, pid, begin_time, end_time, function(res)
ViewUtil.CloseModalWait()
if self._is_destroy then
return
end
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取奖励日志失败")
else
self._view:GetChild("tex_total_round").text = res.Data.round
self._view:GetChild("tex_total_rewards_round").text = res.Data.v_round
self._view:GetChild("tex_total_rewards_fag").text = d2ad(res.Data.hp_cost)
self._view:GetChild("tex_total_rewards").text = d2ad(res.Data.gains)
end
end)
end
-- 填充合伙人对象
function M:OnRenderPartnerItem(index, obj)
local data = self.partner_data[index + 1]
obj:GetChild("tex_name").text = data.nick
local btn_head = obj:GetChild("btn_head")
local portrait = data.portrait
if portrait == "" then
btn_head.icon = "ui://Common/Head0"
else
ImageLoad.Load(portrait, btn_head._iconObject, self.class)
end
end
-- 填充第2页合伙人对象
function M:OnRenderPartnerItem2(index, obj)
local data = self.partner_data2[index + 1]
obj:GetChild("tex_name").text = data.nick
local btn_head = obj:GetChild("btn_head")
local portrait = data.portrait
if portrait == "" then
btn_head.icon = "ui://Common/Head0"
else
ImageLoad.Load(portrait, btn_head._iconObject, self.class)
end
end
-- 显示奖励
local function __showRewardsValue(rtype, cur_value, max_value, mng, value_type)
local str = ""
local tem = value_type == 1 and "%" or ""
if not mng then
str = string.format("%s%s/%s%s", cur_value, tem, max_value, tem)
else
str = string.format("%s%s", cur_value, tem)
end
return str
end
-- 填充奖励设置对象
function M:OnRenderRewardsItem(index, obj)
local data
if self.ctr_search.selectedIndex == 0 then
data = self.rewards_data[index + 1]
else
data = self.search_rewards_data[index + 1]
end
local pdata
if self.ctr_search.selectedIndex == 0 then
pdata = self.partner_data[self.lst_partner.selectedIndex + 1]
else
pdata = self.search_partner_data[1]
end
local group = DataManager.groups:get(self.group_id)
obj:GetChild("tex_rewards").text = __showRewardsValue(data.rewardType, data.cur_value, data.max_value, group.lev < 3, data.rewardValueType or 1)
local play_name = group:getPlayName(data.pid)
obj:GetChild("tex_name").text = play_name
if data.rewardType == 3 or pdata.uid == DataManager.SelfUser.account_id then
obj:GetController("promote").selectedIndex = 1
else
obj:GetController("promote").selectedIndex = 0
end
local input_type = data.rewardType == 1 and 0 or 3
obj:GetChild("btn_set").onClick:Set(function()
local gfiv = GroupNumberInputView.new(self._root_view,function(num)
local tem = num
if data.rewardType == 2 then
tem = ad2d(tem)
end
if tem > data.max_value then
ViewUtil.ErrorTip(nil, "输入值超过上限")
return
end
local fgCtr = ControllerManager.GetController(NewGroupController)
ViewUtil.ShowModalWait()
fgCtr:FG_SetRewards(self.group_id, data.pid, pdata.partnerLev, pdata.uid, false, tem, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "设置合伙人奖励失败")
else
data.cur_value = tem
obj:GetChild("tex_rewards").text = __showRewardsValue(data.rewardType, tem, data.max_value, group.lev < 3, data.rewardValueType or 1)
end
end)
end, input_type)
gfiv:Show()
end)
obj:GetChild("btn_set_all").onClick:Set(function()
local msg_win = MsgWindow.new(nil, "你是否为名下所有合伙人设定此奖励数值?", MsgWindow.MsgMode.OkAndCancel)
msg_win.onOk:Add(function( ... )
local pdata
if self.ctr_search.selectedIndex == 0 then
pdata = self.partner_data[self.lst_partner.selectedIndex + 1]
else
pdata = self.search_partner_data[1]
end
local fgCtr = ControllerManager.GetController(NewGroupController)
ViewUtil.ShowModalWait()
fgCtr:FG_SetRewards(self.group_id, data.pid, pdata.partnerLev, pdata.uid, true, data.cur_value, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "设置合伙人奖励失败")
else
ViewUtil.ShowBannerOnScreenCenter("设置合伙人奖励成功")
end
end)
end)
msg_win:Show()
end)
end
-- 填充奖励日志
function M:OnRenderLogItem(index, obj)
local data
if self.ctr_search.selectedIndex == 0 then
data = self.rewards_log[index + 1]
else
data = self.search_rewards_log[index + 1]
end
obj:GetChild("tex_rewards").text = d2ad(data.hp)
local play_name = DataManager.groups:get(self.group_id):getPlayName(data.pid)
obj:GetChild("tex_game").text = play_name
obj:GetChild("tex_num").text = data.round / 100
obj:GetChild("tex_roomid").text = data.roomid
obj:GetChild("tex_date").text = os.date("%m月%d日\r%H:%M",data.time)
end
return M