private void InitByDb(DBGroupShop dbData) { GroupShop.DbData = dbData; var delList = new List <DBGroupShopOne>(); foreach (var item in GroupShop.DbData.ItemList) { List <GroupShopOne> list; if (GroupShop.StoreList.TryGetValue(item.GroupShopId, out list)) { var temp = new GroupShopOne(); temp.InitByDB(item); GroupShop.Datas.Add(temp.Guid, temp); list.Add(temp); } else { delList.Add(item); } } if (delList.Count > 0) { GroupShop.DbData.ItemList.RemoveAll(i => delList.Contains(i)); } //移除过期的历史 var overTime = DateTime.Now.AddDays(-7).ToBinary(); var count = GroupShop.DbData.OldItems.RemoveAll(item => item.OverTime <= overTime); if (count > 0) { GroupShop.Dirty = true; } foreach (var item in GroupShop.DbData.OldItems) { var temp = new GroupShopOne(); temp.InitByDB(item); if (GroupShop.OldDatas.ContainsKey(temp.Guid)) { PlayerLog.WriteLog((int)LogType.GroupShopOldDatasKeySame, "GroupShop.OldDatas has duplicate key!"); Logger.Fatal( "----------------------------GroupShop.OldDatas has duplicate key!--------------------------------"); continue; } GroupShop.OldDatas.Add(temp.Guid, temp); } CheckTableChange(); }