2025-06-04 05:12:01 +08:00

93 lines
2.2 KiB
Plaintext

autoImport("AELotteryDiscountData")
autoImport("AELotteryBannerData")
AELotteryData = class("AELotteryData")
function AELotteryData:ctor(data)
self.discountMap = {}
self.bannerMap = {}
end
function AELotteryData:SetDiscount(data)
if data ~= nil then
local lotterydiscount = data.lotterydiscount
local lotterytype = lotterydiscount.lotterytype
local info = self:CheckIsExistDiscount(lotterydiscount)
if info == nil then
local discount = AELotteryDiscountData.new(data)
TableUtility.ArrayPushBack(self.discountMap[lotterytype], discount)
else
info:SetData(data)
end
end
end
function AELotteryData:SetBanner(data)
if data ~= nil then
local lotterytype = data.lotterybanner.lotterytype
if self.bannerMap[lotterytype] == nil then
self.bannerMap[lotterytype] = AELotteryBannerData.new()
end
self.bannerMap[lotterytype]:SetData(data)
end
end
function AELotteryData:CheckIsExistDiscount(data)
local lotterytype = data.lotterytype
if self.discountMap[lotterytype] == nil then
self.discountMap[lotterytype] = {}
return
end
for i=1,#self.discountMap[lotterytype] do
local info = self.discountMap[lotterytype][i]
if data.yearmonth ~= 0 then
if info.yearmonth == data.yearmonth and info.cointype == data.cointype then
return info
end
elseif info.cointype == data.cointype then
return info
end
end
end
function AELotteryData:GetDiscount(lotterytype)
return self.discountMap[lotterytype]
end
function AELotteryData:GetDiscountByCoinType(lotterytype, cointype, year, month)
local list = self:GetDiscount(lotterytype)
if list ~= nil then
for i=1,#list do
local data = list[i]
if month ~= nil and year ~= nil then
if data.month == month and data.year == year and data.cointype == cointype then
return data
end
elseif data.cointype == cointype then
return data
end
end
end
end
function AELotteryData:GetBannerPath(lotterytype)
local data = self.bannerMap[lotterytype]
if data ~= nil and data:IsInActivity() then
return data:GetPath()
end
end
function AELotteryData:GetDiscountDataById(id)
for k,v in pairs(self.discountMap) do
for i=1,#v do
local data = v[i]
if data.id == id then
return data
end
end
end
end