PoemGalleryDataManager.cs 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using ET;
  5. using FairyGUI;
  6. using UnityEngine;
  7. namespace GFGGame
  8. {
  9. public class PoemGalleryDataManager : SingletonBase<PoemGalleryDataManager>
  10. {
  11. public const int pageCount = 10;
  12. private long _themeOrder = 0;
  13. /// <summary>
  14. /// 主题期数
  15. /// </summary>
  16. public long ThemeOrder
  17. {
  18. get
  19. {
  20. return _themeOrder;
  21. }
  22. set
  23. {
  24. _themeOrder = value;
  25. }
  26. }
  27. private long _themeId = 1;
  28. /// <summary>
  29. /// 主题配置id
  30. /// </summary>
  31. public long ThemeId
  32. {
  33. get
  34. {
  35. return _themeId;
  36. }
  37. set
  38. {
  39. _themeId = value;
  40. }
  41. }
  42. private long _myRank = 0;
  43. /// <summary>
  44. /// 我的最高排行,排行榜界面展示用
  45. /// </summary>
  46. public long MyRank
  47. {
  48. get
  49. {
  50. return _myRank;
  51. }
  52. set
  53. {
  54. _myRank = value;
  55. }
  56. }
  57. private long _myWorksCountOfTheme = 0;
  58. /// <summary>
  59. /// 本期主题我的作品数
  60. /// </summary>
  61. public long MyWorksCountOfTheme
  62. {
  63. get
  64. {
  65. return _myWorksCountOfTheme;
  66. }
  67. set
  68. {
  69. _myWorksCountOfTheme = value;
  70. }
  71. }
  72. private bool _hasBonus = false;
  73. /// <summary>
  74. /// 本期主题我的作品数
  75. /// </summary>
  76. public bool HasBonus
  77. {
  78. get
  79. {
  80. return _hasBonus;
  81. }
  82. set
  83. {
  84. _hasBonus = value;
  85. }
  86. }
  87. private List<int> _myWorksRanks = new List<int>() { 1, 5 };
  88. /// <summary>
  89. /// 本期主题我的作品数
  90. /// </summary>
  91. public List<int> MyWorksRanks
  92. {
  93. get
  94. {
  95. return _myWorksRanks;
  96. }
  97. set
  98. {
  99. _myWorksRanks = value;
  100. }
  101. }
  102. /// <summary>
  103. /// 推荐数据
  104. /// </summary>
  105. public List<long> RecommendDatas = new List<long>();
  106. /// <summary>
  107. /// 最新数据
  108. /// </summary>
  109. public List<long> NewestDatas = new List<long>();
  110. /// <summary>
  111. /// 好友数据
  112. /// </summary>
  113. public List<long> FrinedDatas = new List<long>();
  114. /// <summary>
  115. /// 收藏数据
  116. /// </summary>
  117. public List<long> FavoriteDatas = new List<long>();
  118. /// <summary>
  119. /// 我的作品数据
  120. /// </summary>
  121. public List<long> MySelfDatas = new List<long>();
  122. /// <summary>
  123. /// 排行榜数据
  124. /// </summary>
  125. public List<long> RankDatas = new List<long>();
  126. private Dictionary<long, PoemGalleryData> _dicGalleryData = new Dictionary<long, PoemGalleryData>();
  127. public void Clear()
  128. {
  129. _myWorksRanks.Clear();
  130. _dicGalleryData.Clear();
  131. RecommendDatas.Clear();
  132. NewestDatas.Clear();
  133. FrinedDatas.Clear();
  134. FavoriteDatas.Clear();
  135. MySelfDatas.Clear();
  136. RankDatas.Clear();
  137. ThemeOrder = 0;
  138. ThemeId = 1;
  139. MyWorksCountOfTheme = 0;
  140. HasBonus = false;
  141. }
  142. public void UpdateGalleryData(PoemGalleryData data)
  143. {
  144. if (_dicGalleryData.ContainsKey(data.WorkId))
  145. {
  146. _dicGalleryData[data.WorkId] = data;
  147. }
  148. else
  149. {
  150. _dicGalleryData.Add(data.WorkId, data);
  151. }
  152. }
  153. public void RemoveGalleryData(long workId)
  154. {
  155. if (_dicGalleryData.ContainsKey(workId))
  156. {
  157. // _dicGalleryData.Remove(workId);
  158. if (MySelfDatas.IndexOf(workId) >= 0) MySelfDatas.Remove(workId);
  159. if (RankDatas.IndexOf(workId) >= 0) RankDatas.Remove(workId);
  160. if (FavoriteDatas.IndexOf(workId) >= 0) FavoriteDatas.Remove(workId);
  161. }
  162. }
  163. public PoemGalleryData GetGalleryDataById(long workId)
  164. {
  165. if (_dicGalleryData.ContainsKey(workId))
  166. {
  167. return _dicGalleryData[workId];
  168. }
  169. return null;
  170. }
  171. public void UpdateRoleInfo(long workId, string name, int rank = 0)
  172. {
  173. if (_dicGalleryData.ContainsKey(workId))
  174. {
  175. _dicGalleryData[workId].AuthorName = name;
  176. if (rank > 0)
  177. {
  178. _dicGalleryData[workId].Rank = rank;
  179. }
  180. }
  181. }
  182. public void UpdateFavoriteState(long workId, bool state, long count)
  183. {
  184. if (_dicGalleryData.ContainsKey(workId))
  185. {
  186. _dicGalleryData[workId].CollectOrNot = state;
  187. _dicGalleryData[workId].CollectCount = count;
  188. }
  189. }
  190. public void UpdateVoteiteState(long workId, bool state, long count)
  191. {
  192. if (_dicGalleryData.ContainsKey(workId))
  193. {
  194. _dicGalleryData[workId].VoteOrNot = state;
  195. _dicGalleryData[workId].VoteCount = count;
  196. }
  197. }
  198. public string GetThemeTime()
  199. {
  200. // int week = GlobalCfgArray.globalCfg.galleryClearingWeekTime - 1 == 0 ? 7 : GlobalCfgArray.globalCfg.galleryClearingWeekTime - 1;
  201. long monday00 = TimeUtil.GetCurWeekTime(1);//本周一0点
  202. long monday = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime);//本周结算时间
  203. long startTime = 0;
  204. long endTime = 0;
  205. if ((TimeInfo.Instance.ServerNow()) < monday)//本周一5点之前显示上周
  206. {
  207. startTime = TimeUtil.GetLastWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime);
  208. if (GlobalCfgArray.globalCfg.galleryClearingWeekTime == 1)
  209. {
  210. endTime = TimeUtil.GetLastWeekTime(7);
  211. }
  212. else
  213. {
  214. endTime = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime - 1);
  215. }
  216. }
  217. else
  218. {
  219. startTime = monday;
  220. if (GlobalCfgArray.globalCfg.galleryClearingWeekTime == 1)
  221. {
  222. endTime = TimeUtil.GetCurWeekTime(7);
  223. }
  224. else
  225. {
  226. endTime = TimeUtil.GetNextWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime - 1, GlobalCfgArray.globalCfg.galleryClearingEndTime);
  227. }
  228. }
  229. string strStartTime = TimeUtil.FormattingTime3(startTime);
  230. string strEndTime = TimeUtil.FormattingTime3(endTime); ;
  231. return string.Format("{0}至{1}", strStartTime, strEndTime);
  232. }
  233. /// <summary>
  234. /// 是否结算中
  235. /// </summary>
  236. /// <returns></returns>
  237. public bool IsResulting()
  238. {
  239. long start = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime); ;//本周一5点刷新本周
  240. long end = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingEndTime);//本周一4点结算上周
  241. long now = TimeInfo.Instance.ServerNow();
  242. return now > start && now < end;
  243. }
  244. /// <summary>
  245. /// 是否为本期作品
  246. /// </summary>
  247. /// <returns></returns>
  248. public bool IsCurThemeWork(long time)
  249. {
  250. long monday = TimeUtil.GetCurWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime);//本周结算时间
  251. long startTime = 0;
  252. if ((TimeInfo.Instance.ServerNow()) < monday)//本周一5点之前显示上周
  253. {
  254. startTime = TimeUtil.GetLastWeekTime(GlobalCfgArray.globalCfg.galleryClearingWeekTime, GlobalCfgArray.globalCfg.galleryClearingStartTime);
  255. return time > startTime;
  256. }
  257. else
  258. {
  259. startTime = monday;
  260. }
  261. return time > startTime;
  262. }
  263. }
  264. }