using System; using System.Collections.Generic; using System.IO; using ET; using FairyGUI; using UnityEngine; namespace GFGGame { public class PoemGalleryDataManager : SingletonBase { public const int pageCount = 10; private long _themeOrder = 0; /// /// 主题期数 /// public long ThemeOrder { get { return _themeOrder; } set { _themeOrder = value; } } private long _themeId = 1; /// /// 主题配置id /// public long ThemeId { get { return _themeId; } set { _themeId = value; } } private long _myRank = 0; /// /// 我的最高排行,排行榜界面展示用 /// public long MyRank { get { return _myRank; } set { _myRank = value; } } private long _myWorksCountOfTheme = 0; /// /// 本期主题我的作品数 /// public long MyWorksCountOfTheme { get { return _myWorksCountOfTheme; } set { _myWorksCountOfTheme = value; } } private bool _hasBonus = false; /// /// 本期主题我的作品数 /// public bool HasBonus { get { return _hasBonus; } set { _hasBonus = value; } } private List _myWorksRanks = new List() { 1, 5 }; /// /// 本期主题我的作品数 /// public List MyWorksRanks { get { return _myWorksRanks; } set { _myWorksRanks = value; } } /// /// 推荐数据 /// public List RecommendDatas = new List(); /// /// 最新数据 /// public List NewestDatas = new List(); /// /// 好友数据 /// public List FrinedDatas = new List(); /// /// 收藏数据 /// public List FavoriteDatas = new List(); /// /// 我的作品数据 /// public List MySelfDatas = new List(); /// /// 排行榜数据 /// public List RankDatas = new List(); private Dictionary _dicGalleryData = new Dictionary(); public void Clear() { _myWorksRanks.Clear(); _dicGalleryData.Clear(); RecommendDatas.Clear(); NewestDatas.Clear(); FrinedDatas.Clear(); FavoriteDatas.Clear(); MySelfDatas.Clear(); RankDatas.Clear(); ThemeOrder = 0; ThemeId = 1; MyWorksCountOfTheme = 0; HasBonus = false; } public void UpdateGalleryData(PoemGalleryData data) { if (_dicGalleryData.ContainsKey(data.WorkId)) { _dicGalleryData[data.WorkId] = data; } else { _dicGalleryData.Add(data.WorkId, data); } } public void RemoveGalleryData(long workId) { if (_dicGalleryData.ContainsKey(workId)) { // _dicGalleryData.Remove(workId); if (MySelfDatas.IndexOf(workId) >= 0) MySelfDatas.Remove(workId); if (RankDatas.IndexOf(workId) >= 0) RankDatas.Remove(workId); if (FavoriteDatas.IndexOf(workId) >= 0) FavoriteDatas.Remove(workId); } } public PoemGalleryData GetGalleryDataById(long workId) { if (_dicGalleryData.ContainsKey(workId)) { return _dicGalleryData[workId]; } return null; } public void UpdateRoleInfo(long workId, string name, int rank = 0) { if (_dicGalleryData.ContainsKey(workId)) { _dicGalleryData[workId].AuthorName = name; if (rank > 0) { _dicGalleryData[workId].Rank = rank; } } } public void UpdateFavoriteState(long workId, bool state, long count) { if (_dicGalleryData.ContainsKey(workId)) { _dicGalleryData[workId].CollectOrNot = state; _dicGalleryData[workId].CollectCount = count; } } public void UpdateVoteiteState(long workId, bool state, long count) { if (_dicGalleryData.ContainsKey(workId)) { _dicGalleryData[workId].VoteOrNot = state; _dicGalleryData[workId].VoteCount = count; } } public string GetThemeTime() { // int week = GlobalCfgArray.globalCfg.galleryClearingWeekTime - 1 == 0 ? 7 : GlobalCfgArray.globalCfg.galleryClearingWeekTime - 1; long monday00 = TimeUtil.GetCurWeekTime(1);//本周一0点 long monday = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime);//本周结算时间 long startTime = 0; long endTime = 0; if ((TimeInfo.Instance.ServerNow()) < monday)//本周一5点之前显示上周 { startTime = TimeUtil.GetLastWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime); if (GlobalCfgArray.globalCfg.galleryClearingWeekTime == 1) { endTime = TimeUtil.GetLastWeekTime(7); } else { endTime = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime - 1); } } else { startTime = monday; if (GlobalCfgArray.globalCfg.galleryClearingWeekTime == 1) { endTime = TimeUtil.GetCurWeekTime(7); } else { endTime = TimeUtil.GetNextWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime - 1, GlobalCfgArray.globalCfg.galleryClearingEndTime); } } string strStartTime = TimeUtil.FormattingTimeTo_MMdd(startTime); string strEndTime = TimeUtil.FormattingTimeTo_MMdd(endTime); ; return string.Format("{0}至{1}", strStartTime, strEndTime); } /// /// 是否结算中 /// /// public bool IsResulting() { long start = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime); ;//本周一5点刷新本周 long end = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingEndTime);//本周一4点结算上周 long now = TimeInfo.Instance.ServerNow(); return now > start && now < end; } /// /// 是否为本期作品 /// /// public bool IsCurThemeWork(long time) { long monday = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime);//本周结算时间 long startTime = 0; if ((TimeInfo.Instance.ServerNow()) < monday)//本周一5点之前显示上周 { startTime = TimeUtil.GetLastWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime); return time > startTime; } else { startTime = monday; } return time > startTime; } } }