Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }