Exemplo n.º 1
0
        /// <param name="periodNo">期号</param>
        /// <param name="rule">玩法枚举</param>
        /// <param name="number">下注号码</param>
        /// <param name="money">单个号码金额</param>
        public BetParam(long periodNo, Pk10Rule rule, string number, decimal money)
        {
            this.TurnNum = periodNo;

            string[] arrNums = CheckNumberValid(rule, number);

            BetBeanList = new List <BetBean>();
            foreach (string num in arrNums)
            {
                RulePlayId rulePlayId = Da2088Helper.GetPlayId(rule, num);
                if (rulePlayId == null)
                {
                    throw new ArgumentOutOfRangeException($"玩法 {rule.GetAttributeValue()}, 下注号码: {num}, 下注号码不合规则!");
                }

                BetBeanList.Add(new BetBean(rulePlayId.PlayId, money));
            }

            // 初始化总金额
            TotalNums  = arrNums.Length;
            TotalMoney = arrNums.Length * money;
        }
Exemplo n.º 2
0
        /// <summary>
        /// 下注
        /// </summary>
        /// <param name="periodNo">期号</param>
        /// <param name="rule">玩法枚举</param>
        /// <param name="number">下注号码</param>
        /// <param name="money">单个号码金额</param>
        public void Bet(long periodNo, Pk10Rule rule, string number, decimal money)
        {
            LotteryData lotteryData = GetLotteryData();

            PrintLog($"{Environment.NewLine}即将下注,账户余额:¥ [{lotteryData.Balance}], 玩法: [{rule.GetAttributeValue()}],号码: [{number}], 下注金额: {money}.");

            string url = $"bet/bet.do?_t={DateTime.UtcNow.Ticks}";

            // 构建表单参数
            var betParam = new BetParam(periodNo, rule, number, money);

            var postBodyBuilder = new StringBuilder();

            postBodyBuilder.Append($"gameId={betParam.GameId}&turnNum={betParam.TurnNum}&totalNums={betParam.TotalNums}");
            postBodyBuilder.Append($"&totalMoney={betParam.TotalMoney}&betSrc={betParam.BetSrc}");

            for (int idx = 0; idx < betParam.BetBeanList.Count; idx++)
            {
                var bean = betParam.BetBeanList[idx];
                postBodyBuilder.Append($"&betBean[{idx}].playId={bean.PlayId}&betBean[{idx}].money={bean.Money}");
            }

            // 提交投注
            try
            {
                BetResult result = _restHelper.Post <BetResult>(url, postBodyBuilder.ToString());

                if (!result.Success)
                {
                    if (result.Msg.Contains("该账号在异地登陆"))
                    {
                        LoginTimeout = true;
                        throw new ArgumentException("该账号在异地登陆, 请重试!");
                    }
                    else
                    {
                        throw new ArgumentException($"{result.Msg}, 状态码: {result.Code}.");
                    }
                }
                else
                {
                    PrintLog($"下注成功, 当前账户余额: {lotteryData.Balance}");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }