2025-06-04 05:02:57 +08:00

83 lines
1.8 KiB
Plaintext

autoImport("FinanceItemDetailData")
FinanceItemData = class("FinanceItemData")
local _ArrayClear = TableUtility.ArrayClear
local _ArrayPushBack = TableUtility.ArrayPushBack
function FinanceItemData:ctor(data)
self.detailList = {}
self:SetData(data)
end
function FinanceItemData:SetData(data)
self.itemid = data.item_id
self.ratio = data.ratio
end
function FinanceItemData:SetInfo(rankType, dateType)
self.rankType = rankType
self.dateType = dateType
end
function FinanceItemData:SetDetail(list)
self.maxDetailRatio = nil
self.minDetailRatio = nil
_ArrayClear(self.detailList)
for i=1,#list do
local data = FinanceItemDetailData.new(list[i])
data:SetRankType(self.rankType)
_ArrayPushBack(self.detailList, data)
local ratio = data.ratio
if self.maxDetailRatio == nil or ratio > self.maxDetailRatio then
self.maxDetailRatio = ratio
end
if self.minDetailRatio == nil or ratio < self.minDetailRatio then
self.minDetailRatio = ratio
end
end
end
--詳情請求時間
function FinanceItemData:SetNextValidTime(time)
self.callTime = Time.unscaledTime + time
end
function FinanceItemData:CheckCanCall()
if self.callTime == nil or self.callTime <= Time.unscaledTime then
return true
end
return false
end
function FinanceItemData:GetItemData()
if self.itemData == nil then
self.itemData = ItemData.new("FinanceItemData", self.itemid)
end
return self.itemData
end
function FinanceItemData:GetDetailList()
return self.detailList
end
function FinanceItemData:GetMaxDetailRatio()
return self.maxDetailRatio or 0
end
function FinanceItemData:GetMinDetailRatio()
return self.minDetailRatio or 0
end
function FinanceItemData:GetMiddleDetailRatio()
if self.maxDetailRatio ~= nil and self.minDetailRatio ~= nil then
return (self.maxDetailRatio + self.minDetailRatio) / 2
end
return 0
end