ro-table/Asstes/Resources/Script/FrameWork/Proxy/ActivityDataProxy.txt
2025-06-04 05:02:57 +08:00

107 lines
2.9 KiB
Plaintext

ActivityDataProxy = class('ActivityDataProxy', pm.Proxy)
ActivityDataProxy.Instance = nil;
ActivityDataProxy.NAME = "ActivityDataProxy"
autoImport("ActivityGroupData")
autoImport("ActivitySubData")
function ActivityDataProxy:ctor(proxyName, data)
self.proxyName = proxyName or ActivityDataProxy.NAME
if(ActivityDataProxy.Instance == nil) then
ActivityDataProxy.Instance = self
end
self.activitys = {}
end
-- optional uint32 id = 1;
-- optional string name = 2;
-- optional string iconurl = 3;
-- optional uint32 begintime = 4;
-- optional uint32 endtime = 5;
-- optional string url = 6;
-- optional bool countdowm = 7;
-- optional uint64 id = 1;
-- optional string name = 2;
-- optional uint32 begintime = 4;
-- optional uint32 endtime = 5;
-- optional uint32 pathtype = 6;
-- optional string pathevent = 7;
-- optional string url = 8;
-- optional string pic_url = 9;
-- optional uint64 groupid = 10;
function ActivityDataProxy:InitActivityDatas( data )
-- body
TableUtility.ArrayClear(self.activitys)
-- local currentTime = ServerTime.CurServerTime()
-- currentTime = math.floor(currentTime / 1000)
local activitys = data.activity
if(activitys and #activitys>0)then
for i=1,#activitys do
local single = activitys[i]
local data = ActivityGroupData.new(single)
-- data.sub_activity[1].begintime = currentTime - (i-1)*3600*4
-- data.begintime = currentTime - (i-1)*3600*3
-- data.sub_activity[1].endtime = currentTime + (i)*3600*13
self.activitys[#self.activitys+1] = data
end
end
end
function ActivityDataProxy:getActiveActivitys( )
if(self.activitys and #self.activitys>0)then
local result = {}
local currentTime = ServerTime.CurServerTime()
currentTime = math.floor(currentTime / 1000)
for i=1,#self.activitys do
local single = self.activitys[i]
if(single.begintime <= currentTime and currentTime <= single.endtime)then
local subActs = single.sub_activity
local valid = false
if(subActs and #subActs>0)then
for i=1,#subActs do
local singleSub = subActs[i]
if(singleSub.begintime <= currentTime and currentTime <= singleSub.endtime)then
valid = true
break
end
end
end
if(valid)then
result[#result+1] = single
end
end
end
return result
end
end
function ActivityDataProxy:getActiveSubActivitys( groupId )
local currentTime = ServerTime.CurServerTime()
currentTime = math.floor(currentTime / 1000)
for i=1,#self.activitys do
local activity = self.activitys[i]
if(activity.id == groupId)then
local subActs = activity.sub_activity
if(subActs and #subActs>0)then
local result = {}
for i=1,#subActs do
local single = subActs[i]
if(single.begintime <= currentTime and currentTime <= single.endtime)then
result[#result+1] = single
end
end
return result
end
break
end
end
end
function ActivityDataProxy:getActivitys( )
return self.activitys
end