| 
					
				 | 
			
			
				@@ -0,0 +1,78 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Linq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using ET; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using FairyGUI; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class ActivityInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int activityId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public long startTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public long endTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class ActivityGlobalDataManager : SingletonBase<ActivityGlobalDataManager> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private Dictionary<int, ActivityInfo> activityInfos = new Dictionary<int, ActivityInfo>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private Dictionary<int, List<int>> activityInfosByType = new Dictionary<int, List<int>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //添加活动数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void AddActivityInfo(ActivityInfo activityInfo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (activityInfo == null) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (activityInfos.ContainsKey(activityInfo.activityId)) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityInfos.Add(activityInfo.activityId, activityInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!activityInfosByType.ContainsKey(activityInfo.activityId)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                activityInfosByType.Add(activityInfo.activityId, new List<int>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityInfosByType[activityInfo.activityId].Add(activityInfo.activityId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //ACTIVITY_ADD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            EventAgent.DispatchEvent(ConstMessage.ACTIVITY_ADD, activityInfo.activityId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //TODO 判断下时间非法情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Timers.inst.Add(activityInfo.endTime - TimeHelper.ServerNow(), 0, ClientRemoveActivityInfo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                activityInfo.activityId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private static void ClientRemoveActivityInfo(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var activityId = (int)param; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ActivityGlobalSProxy.ReqCloseActivity(activityId).Coroutine(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //RemoveActivityInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void RemoveActivityInfo(int activityId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!activityInfos.ContainsKey(activityId)) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityInfos.Remove(activityId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!activityInfosByType.ContainsKey(activityId)) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activityInfosByType.Remove(activityId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //ACTIVITY_REMOVE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            EventAgent.DispatchEvent(ConstMessage.ACTIVITY_REMOVE, activityId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取活动数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public ActivityInfo GetActivityInfo(int activityId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!activityInfos.ContainsKey(activityId)) return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return activityInfos[activityId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取活动数据根据类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public List<int> GetActivityInfoIdsByType(int activityType) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return !activityInfosByType.ContainsKey(activityType) ? new List<int>() : activityInfosByType[activityType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取活动数据根据类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public List<ActivityInfo> GetActivityInfoByType(int activityType) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var activityInfoIds = GetActivityInfoIdsByType(activityType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return activityInfoIds.Select(GetActivityInfo).Where(activityInfo => activityInfo != null).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |