using ET; using System.Collections.Generic; using System.Linq; namespace GFGGame { public class NoticeInfo { public int noticeId; public string title; public long time;//时间戳,单位秒 public string content = ""; public bool readStatus;//对应的读取状态,true为已读 } public class NoticeDataManager : SingletonBase { private NoticeInfo _lastNoticeInfo; public NoticeInfo LastNoticeInfo { get { return _lastNoticeInfo; } set { _lastNoticeInfo = value; } } private List _noticeInfos = new List(); public List NoticeInfos { get { return _noticeInfos; } } private Dictionary _noticeInfoDic = new Dictionary(); public void UpdateNoticeIdList(NoticeInfo noticeInfo) { if (!_noticeInfoDic.ContainsKey(noticeInfo.noticeId)) { _noticeInfoDic.Add(noticeInfo.noticeId, noticeInfo); } else { _noticeInfoDic[noticeInfo.noticeId] = noticeInfo; } NoticeDicToList(); } public void UpdateNoticeContent(int noticeId, string content) { _noticeInfoDic[noticeId].content = content; _noticeInfoDic[noticeId].readStatus = true; NoticeDicToList(); } public void UpdateSystemNoticeRemove(int noticeId) { if (_noticeInfoDic.ContainsKey(noticeId)) _noticeInfoDic.Remove(noticeId); NoticeDicToList(); } private void NoticeDicToList() { _noticeInfos = _noticeInfoDic.Values.ToList(); _noticeInfos.Sort((NoticeInfo a, NoticeInfo b) => { return b.noticeId.CompareTo(a.noticeId); }); } public NoticeInfo GetNoticeInfoById(int noticeId) { return _noticeInfoDic[noticeId]; } public List UpdateShowActivity() { AdCfg[] activitydata = AdCfgArray.Instance.dataArray; List showActivity = new List(); for (int i = 0; i < activitydata.Length; i++) { AdCfg adCfg = activitydata[i]; if (adCfg.activityId > 0) { if (ActivityGlobalDataManager.Instance.GetActivityInfo(adCfg.activityId) == null) continue; ActivityInfo activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(adCfg.activityId); if (TimeHelper.ServerNow() < activityInfo.StartTime || TimeHelper.ServerNow() > activityInfo.EndTime) continue; } if (adCfg.NoticeTips != null && adCfg.NoticeTips != "") { if (adCfg.activityId != 0) { ActivityInfo activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(adCfg.activityId); if (TimeHelper.ServerNow() < activityInfo.StartTime || TimeHelper.ServerNow() > activityInfo.EndTime) { } else { showActivity.Add(adCfg); continue; } } if (adCfg.startTime != "" && adCfg.startTime != null) { long startTime = TimeUtil.DateTimeToTimestamp(adCfg.startTime); long endTime = TimeUtil.DateTimeToTimestamp(adCfg.endTime); if (TimeHelper.ServerNow() < startTime || TimeHelper.ServerNow() > endTime) { continue; } else { showActivity.Add(adCfg); } } } } return showActivity; } public bool GetRedDotState(string jumpId, int activityID) { switch (jumpId) { case "DailySignView": return RedDotDataManager.Instance.GetActivityDay7Red(); case "LuckyBoxView": return RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitTsy) || RedDotDataManager.Instance.GetLuckyBoxFreeTimes(); case "NewLimitChargeView": return RedDotDataManager.Instance.GetLimiteChargeRewardRed(activityID); case "OpenServerActivityView": return RedDotDataManager.Instance.GetOpenServerRed(); } return false; } } }