| 
					
				 | 
			
			
				@@ -1,7 +1,23 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Linq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using ET; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class RechargeStoreType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static int RECHARGE = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static int GIFT = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static int EXCHANGE = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class LockType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static int NONE = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static int STORY_LV = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public static int ROLE_LV = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public class RechargeDataManager : SingletonBase<RechargeDataManager> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private Dictionary<int, int> _rechargeDic = new Dictionary<int, int>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -47,16 +63,114 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 根据充值id获取购买次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="rechargeId"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int GetRechargeBuyNumById(int rechargeId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return !_rechargeDic.ContainsKey(rechargeId) ? 0 : _giftDic[rechargeId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 根据礼包id获取购买次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="giftId"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int GetGiftBuyNumById(int giftId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return !_giftDic.ContainsKey(giftId) ? 0 : _giftDic[giftId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 根据充值id获取购买次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="exchangeId"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int GetExchangeBuyNumById(int exchangeId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return !_exchangeDic.ContainsKey(exchangeId) ? 0 : _giftDic[exchangeId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public List<GiftBagCfg> GetGiftBagDatas() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public List<GiftBagCfg> GetGiftBagCfgs() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            GiftBagCfg[] giftBagCfgs = GiftBagCfgArray.Instance.dataArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<GiftBagCfg> giftBagDatas = new List<GiftBagCfg>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (int i = 0; i < giftBagCfgs.Length; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<GiftBagCfg> giftBagCfgs = new List<GiftBagCfg>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<GiftBagCfg> noneGiftBagCfgs = GetNoneGiftCfg(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            giftBagCfgs = giftBagCfgs.Concat(noneGiftBagCfgs).ToList<GiftBagCfg>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            GiftBagCfg StoryLvGiftCfg = GetStoryLvGiftCfg(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (StoryLvGiftCfg != null) giftBagCfgs.Add(StoryLvGiftCfg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            GiftBagCfg RoleLvGiftCfg = GetRoleLvGiftCfg(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (RoleLvGiftCfg != null) giftBagCfgs.Add(RoleLvGiftCfg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SortGiftBagCfgs(giftBagCfgs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return giftBagCfgs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private List<GiftBagCfg> SortGiftBagCfgs(List<GiftBagCfg> giftBagCfgs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // if (GetGiftBuyNumById(a.id) < a.maxBuyNum && GetGiftBuyNumById(b.id) < b.maxBuyNum) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // else if (GetGiftBuyNumById(a.id) < a.maxBuyNum && GetGiftBuyNumById(b.id) < b.maxBuyNum) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int buyTypeA = a.maxBuyNum - GetGiftBuyNumById(a.id) > 0 ? 1 : a.maxBuyNum - GetGiftBuyNumById(a.id) == 0 ? 0 : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int buyTypeB = b.maxBuyNum - GetGiftBuyNumById(b.id) > 0 ? 1 : b.maxBuyNum - GetGiftBuyNumById(b.id) == 0 ? 0 : -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return buyTypeA.CompareTo(buyTypeB); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return giftBagCfgs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private List<GiftBagCfg> GetNoneGiftCfg() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<GiftBagCfg> giftBagCfgs = GiftBagCfgArray.Instance.GetCfgs(LockType.NONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = giftBagCfgs.Count - 1; i >= 0; i--) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (giftBagCfgs[i].startTime != "" && TimeUtil.IsBeforeCurTime(giftBagCfgs[i].startTime) || giftBagCfgs[i].endTime != "" && TimeUtil.IsLaterCurTime(giftBagCfgs[i].endTime)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    giftBagCfgs.RemoveAt(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return giftBagCfgs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private GiftBagCfg GetStoryLvGiftCfg() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<GiftBagCfg> giftBagCfgs = GiftBagCfgArray.Instance.GetCfgs(LockType.STORY_LV); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (giftBagCfgs.Count == 0) return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (a.storyLevelId.CompareTo(b.storyLevelId) != 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return a.storyLevelId.CompareTo(b.storyLevelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < giftBagCfgs.Count; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (InstanceZonesDataManager.CheckLevelPass(giftBagCfgs[i].storyLevelId) && (GetGiftBuyNumById(giftBagCfgs[i].id) < giftBagCfgs[i].maxBuyNum)) return giftBagCfgs[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return giftBagCfgs[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private GiftBagCfg GetRoleLvGiftCfg() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<GiftBagCfg> giftBagCfgs = GiftBagCfgArray.Instance.GetCfgs(LockType.ROLE_LV); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (giftBagCfgs.Count == 0) return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (a.lv.CompareTo(b.lv) != 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return a.lv.CompareTo(b.lv); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < giftBagCfgs.Count; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ((GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl) >= giftBagCfgs[i].lv) && (GetGiftBuyNumById(giftBagCfgs[i].id) < giftBagCfgs[i].maxBuyNum)) return giftBagCfgs[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return giftBagDatas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return giftBagCfgs[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |