protected override async void Run(Session session, C2G_DailySignState message, Action <G2C_DailySignState> reply) { G2C_DailySignState response = new G2C_DailySignState(); try { // 当前连续签到天数 int curLianXuSignDays = 1; bool TodayIsSign = false; DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <DailySign> dailySigns = await proxyComponent.QueryJson <DailySign>($"{{Uid:{message.Uid}}}"); dailySigns.Sort(delegate(DailySign x, DailySign y) { return(x.CreateTime.CompareTo(y.CreateTime)); }); if (dailySigns.Count > 0) { int tianshucha = CommonUtil.tianshucha(dailySigns[dailySigns.Count - 1].CreateTime, CommonUtil.getCurTimeNormalFormat()); if (tianshucha == 0) { TodayIsSign = true; curLianXuSignDays = 1; if (dailySigns.Count >= 2) { for (int i = dailySigns.Count - 1; i >= 1; i--) { int temp = CommonUtil.tianshucha(dailySigns[i - 1].CreateTime, dailySigns[i].CreateTime); if (temp > 1) { break; } else if (temp == 1) { ++curLianXuSignDays; } } } } } { response.TodayIsSign = TodayIsSign; response.TodayReward = C2G_DailySignHandler.getReward(curLianXuSignDays); response.TomorrowReward = C2G_DailySignHandler.getReward(curLianXuSignDays + 1); reply(response); } } catch (Exception e) { ReplyError(response, e, reply); } }
protected override async void Run(Session session, C2G_DailySign message, Action <G2C_DailySign> reply) { G2C_DailySign response = new G2C_DailySign(); try { // 当前连续签到天数 int curLianXuSignDays = 1; DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>(); List <DailySign> dailySigns = await proxyComponent.QueryJson <DailySign>($"{{Uid:{message.Uid}}}"); dailySigns.Sort(delegate(DailySign x, DailySign y) { return(x.CreateTime.CompareTo(y.CreateTime)); }); if (dailySigns.Count > 0) { int tianshucha = CommonUtil.tianshucha(dailySigns[dailySigns.Count - 1].CreateTime, CommonUtil.getCurTimeNormalFormat()); if (tianshucha == 0) { // 今天已经签到过 response.Error = ErrorCode.TodayHasSign; response.Message = "今天已签到,请明天再试"; reply(response); return; } else if (tianshucha == 1) { curLianXuSignDays = 2; if (dailySigns.Count >= 2) { for (int i = dailySigns.Count - 1; i >= 1; i--) { int temp = CommonUtil.tianshucha(dailySigns[i - 1].CreateTime, dailySigns[i].CreateTime); if (temp > 1) { break; } else if (temp == 1) { ++curLianXuSignDays; } } } } } { string reward = getReward(curLianXuSignDays); // 更新用户数据 await DBCommonUtil.changeWealthWithStr(message.Uid, reward, "每日签到"); response.Reward = reward; response.TomorrowReward = getReward(curLianXuSignDays + 1); reply(response); DailySign dailySign = ComponentFactory.CreateWithId <DailySign>(IdGenerater.GenerateId()); dailySign.Uid = message.Uid; dailySign.Reward = reward; await proxyComponent.Save(dailySign); } } catch (Exception e) { ReplyError(response, e, reply); } }