NoticeDataManager.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. namespace GFGGame
  4. {
  5. public class NoticeInfo
  6. {
  7. public int noticeId;
  8. public string title;
  9. public long time;//时间戳,单位秒
  10. public string content;
  11. public bool readStatus;//对应的读取状态,true为已读
  12. }
  13. public class NoticeDataManager : SingletonBase<NoticeDataManager>
  14. {
  15. private List<NoticeInfo> _noticeInfos = new List<NoticeInfo>();
  16. public List<NoticeInfo> NoticeInfos
  17. {
  18. get
  19. {
  20. return _noticeInfos;
  21. }
  22. }
  23. private Dictionary<int, NoticeInfo> _noticeInfoDic = new Dictionary<int, NoticeInfo>();
  24. public void UpdateNoticeIdList(NoticeInfo noticeInfo)
  25. {
  26. if (!_noticeInfoDic.ContainsKey(noticeInfo.noticeId))
  27. {
  28. _noticeInfoDic.Add(noticeInfo.noticeId, noticeInfo);
  29. }
  30. else
  31. {
  32. _noticeInfoDic[noticeInfo.noticeId] = noticeInfo;
  33. }
  34. NoticeDicToList();
  35. }
  36. public void UpdateNoticeContent(int noticeId, string content)
  37. {
  38. _noticeInfoDic[noticeId].content = content;
  39. _noticeInfoDic[noticeId].readStatus = true;
  40. NoticeDicToList();
  41. }
  42. public void UpdateSystemNoticeRemove(int noticeId)
  43. {
  44. if (_noticeInfoDic.ContainsKey(noticeId)) _noticeInfoDic.Remove(noticeId);
  45. NoticeDicToList();
  46. }
  47. private void NoticeDicToList()
  48. {
  49. _noticeInfos = _noticeInfoDic.Values.ToList();
  50. _noticeInfos.Sort((NoticeInfo a, NoticeInfo b) =>
  51. {
  52. return b.noticeId.CompareTo(a.noticeId);
  53. });
  54. }
  55. public NoticeInfo GetNoticeInfoById(int noticeId)
  56. {
  57. return _noticeInfoDic[noticeId];
  58. }
  59. }
  60. }