private static async void InitGlobalTimer() { while (true) { int hour = CommonUtil.getCurHour(); int min = CommonUtil.getCurMinute(); int sec = CommonUtil.getCurSecond(); await Game.Scene.GetComponent <TimerComponent>().WaitAsync(1000); #region TaskTest if ((sec == 0)) { DBHelper.RefreshGameRank(); } if ((sec == 30)) { DBHelper.RefreshWealthRank(); } #endregion #region 每周一刷新周排行榜数据 if (CommonUtil.IsMonday()) { //周一零点刷新数据 if ((hour == 0) && (min == 0) && (sec == 10)) { DBCommonUtil.AccountWeekData(); } } #endregion } }
protected override async void Run(Session session, C2G_WeekRank message, Action <G2C_WeekRank> reply) { G2C_WeekRank response = new G2C_WeekRank(); try { DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <PlayerBaseInfo> info = await proxyComponent.QueryJson <PlayerBaseInfo>($"{{_id:{message.UId}}}"); List <WeekRank> weekRank = await proxyComponent.QueryJson <WeekRank>($"{{UId:{message.UId}}}"); if (weekRank.Count <= 0) { WeekRank weekInfo = ComponentFactory.CreateWithId <WeekRank>(IdGenerater.GenerateId()); weekInfo.UId = message.UId; weekInfo.IsGetGameRank = false; weekInfo.IsGetGoldRank = false; weekInfo.GameIndex = -1; weekInfo.GoldIndex = -1; await proxyComponent.Save(weekInfo); } else { response.IsGetGameRank = weekRank[0].IsGetGameRank; response.IsGetGoldRank = weekRank[0].IsGetGoldRank; response.GameIndex = weekRank[0].GameIndex; response.WealthIndex = weekRank[0].GoldIndex; reply(response); return; } weekRank = await proxyComponent.QueryJson <WeekRank>($"{{UId:{message.UId}}}"); if (CommonUtil.IsMonday()) { for (int i = 0; i < Game.Scene.GetComponent <RankDataComponent>().GetFWealthRankData().Count; ++i) { if (message.UId == Game.Scene.GetComponent <RankDataComponent>().GetFWealthRankData()[i].UId) { weekRank[0].IsGetGoldRank = true; weekRank[0].GoldIndex = i + 1; await proxyComponent.Save(weekRank[0]); break; } else { weekRank[0].IsGetGoldRank = false; weekRank[0].GoldIndex = -1; await proxyComponent.Save(weekRank[0]); } } for (int i = 0; i < Game.Scene.GetComponent <RankDataComponent>().GetFGameRankData().Count; ++i) { if (message.UId == Game.Scene.GetComponent <RankDataComponent>().GetFGameRankData()[i].UId) { weekRank[0].IsGetGameRank = true; weekRank[0].GameIndex = i + 1; await proxyComponent.Save(weekRank[0]); break; } else { weekRank[0].IsGetGameRank = false; weekRank[0].GameIndex = -1; await proxyComponent.Save(weekRank[0]); } } } else { weekRank[0].IsGetGameRank = false; weekRank[0].IsGetGoldRank = false; weekRank[0].GameIndex = -1; weekRank[0].GoldIndex = -1; await proxyComponent.Save(weekRank[0]); } response.IsGetGameRank = weekRank[0].IsGetGameRank; response.IsGetGoldRank = weekRank[0].IsGetGoldRank; response.GameIndex = weekRank[0].GameIndex; response.WealthIndex = weekRank[0].GoldIndex; reply(response); } catch (Exception e) { ReplyError(response, e, reply); } }