Beispiel #1
0
 private void btnStart_Click(object sender, EventArgs e)
 {
     foreach (var account in aList.Take((int)numericUpDown1.Value))
     {
         for (int i = 0; i < LotteryOpenTool_11x5.LpList().Count; i++)
         {
             var b = bet(nextOpen.Id, account, i + 1);//生成投注单
             AccountDAL.BalanceChange(account.Id, b);
         }
     }
     aList = AccountDAL.LoginOnTest(txtUser.Text);
     dgvHistory.DataSource = aList;
     MessageBox.Show("投注完成");
 }
Beispiel #2
0
 private void btnAddBet_Click(object sender, EventArgs e)
 {
     if ((dtOne.TotalSeconds > 1 || jix_test) && wBetList.Count > 0)
     {
         //bList.Clear();
         var sp = lblTotal.Tag.ToString().Split(' ');
         if (sp[0] == "0")
         {
             return;
         }
         account = AccountDAL.GetAccount(account.Id);
         if (account.AccountBalance < wBetList.Sum(n => n.BetMoney))
         {
             lblMoney.Text = account.AccountBalance + "元";
             MessageBox.Show("投注金额大于账户余额");
             return;
         }
         #region  注,数据更改
         var lp = LotteryOpenTool_11x5.LpList().FirstOrDefault(n => n.LotteryPlayName == sp[1]);
         wBetList.ForEach(n => n.LotteryOpenId = nextOpen.Id);
         //下注&扣款
         account = AccountDAL.BalanceChange(account.Id, wBetList);
         #endregion
         dgvBet.DataSource = AccountDAL.GetBetHistory(account.Id, lottery, dtLoad);
         wBetList.Clear();
         dgvwBet.Rows.Clear();
         MessageBox.Show("投注成功");
     }
     if (!jix_test)
     {
         txtBetNo.Text = "";
     }
     lblMoney.Text = account.AccountBalance + "元";
 }
        public string SendBetInfo(string Guid, int LotteryId, string Except, List <WS_BetInfo> BetInfo)
        {
            if (!isLogin(Guid))
            {
                return(null);
            }
            var l = EntitiesTool.GetLotteryDic().Values.FirstOrDefault(n => n.Id == LotteryId);

            if (l == null)
            {
                return("无该彩种信息");
            }
            //if (l.LotteryType == "ssc")
            //{
            //    t.Add(new WS_BetInfo
            //        {
            //            BetMoney = 2,
            //            BetMoneyMode = "元",
            //            BetNum = "0|0|0|0|0",
            //            BetPlayTypeCode = 2,
            //            BetTimes = 1,
            //            BetUnit = 1,
            //            ChoicePosition = "",
            //            IsGetBackPercent = true,
            //        });
            //    t.Add(new WS_BetInfo
            //    {
            //        BetMoney = 6,
            //        BetMoneyMode = "角",
            //        BetNum = "0 1 2|0 1 2",
            //        BetPlayTypeCode = 116,
            //        BetTimes = 1,
            //        BetUnit = 30,
            //        ChoicePosition = "0,1,2,3,4",
            //        IsGetBackPercent = true,
            //    });
            //}
            //if (l.LotteryType == "11x5")
            //{
            //    t.Add(new WS_BetInfo
            //    {
            //        BetMoney = 2,
            //        BetMoneyMode = "元",
            //        BetNum = "04|05|06",
            //        BetPlayTypeCode = 1,
            //        BetTimes = 1,
            //        BetUnit = 1,
            //        ChoicePosition = "",
            //        IsGetBackPercent = false,
            //    });
            //}
            //BetInfo = ObjectToJson(t);//示例[{"BetNum":"0","BetPlayTypeCode":1,"BetUnit":1,"BetTimes":1,"BetMoneyMode":"元","BetMoney":0.0,"ChoicePosition":"","IsGetBackPercent":true}]
            try
            {
                var t     = new List <WS_BetInfo>();
                var accId = GetLoginId(Guid);
                var acc   = AccountDAL.GetAccount(accId);
                //var acc = AccountDAL.GetAccount(2);//jix008
                var list = BetInfo; //JsonToObject(BetInfo, new List<WS_BetInfo>()) as List<WS_BetInfo>;
                #region 验证下注信息
                var returnStr = LotteryOpenInfoDAL.IsExistsExpect(LotteryId, Except, EntitiesTool.GetLotteryDic().Values.FirstOrDefault(n => n.Id == LotteryId).IsPrivate);
                if (returnStr != "")
                {
                    return(returnStr);
                }
                var minDec = new decimal(0.2);
                if (list.Exists(n => n.BetMoney < minDec))
                {
                    return("每种玩法的下注金额不能少于" + minDec + "元");
                }
                if (list.Sum(n => n.BetMoney) > acc.AccountBalance)
                {
                    return("余额不足");
                }
                var wBetList = new List <BetInfo>();
                foreach (var item in list)
                {
                    var betU = Tools.Calculate(l.LotteryType, item.BetPlayTypeCode, item.BetNum, item.ChoicePosition, item.BetUnit);
                    if (betU != item.BetUnit)
                    {
                        return("下单注数验证失败");
                    }
                    if (betU <= 0)
                    {
                        return("下单注数应大于0");
                    }
                    decimal mm = 0;
                    switch (item.BetMoneyMode)
                    {
                    case "元":
                        mm = 2;
                        break;

                    case "角":
                        mm = new decimal(0.2);
                        break;

                    case "分":
                        mm = new decimal(0.02);
                        break;

                    case "厘":
                        mm = new decimal(0.002);
                        break;
                    }
                    if (betU * mm * item.BetTimes != item.BetMoney)
                    {
                        return("下单金额有误");
                    }
                    var betInfo = new BetInfo
                    {
                        AccountId        = acc.Id,
                        ResultType       = (int)Enum_ResultType.Wait,
                        BetNum           = item.BetNum,
                        BetPlayTypeCode  = item.BetPlayTypeCode,
                        BetTimes         = item.BetTimes,
                        BetUnit          = item.BetUnit,
                        BetMoney         = item.BetMoney,
                        ChoicePosition   = item.ChoicePosition,
                        IsGetBackPercent = item.IsGetBackPercent,
                        LotteryId        = LotteryId,
                        LotteryExcept    = Except,
                    };
                    switch (l.LotteryType)
                    {
                    case "ssc":
                        betInfo.GetBackPercent = acc.AgentPercentSSC;
                        betInfo.MaxBackMoney   = (betInfo.IsGetBackPercent ? LotteryInfo_SSC.LpList()[item.BetPlayTypeCode - 1].PayBack : AgentCalculateTool.GetAgentBackMoney_SSC(LotteryInfo_SSC.LpList()[item.BetPlayTypeCode - 1].PayBack, betInfo.GetBackPercent)) * (betInfo.BetMoney / betInfo.BetUnit / 2);
                        break;

                    case "11x5":
                        betInfo.GetBackPercent = acc.AgentPercent11X5;
                        betInfo.MaxBackMoney   = (betInfo.IsGetBackPercent ? LotteryOpenTool_11x5.LpList()[item.BetPlayTypeCode - 1].PayBack : AgentCalculateTool.GetAgentBackMoney_SSC(LotteryOpenTool_11x5.LpList()[item.BetPlayTypeCode - 1].PayBack, betInfo.GetBackPercent)) * (betInfo.BetMoney / betInfo.BetUnit / 2);
                        break;

                    case "dpc":
                        betInfo.GetBackPercent = acc.AgentPercentDPC;
                        betInfo.MaxBackMoney   = (betInfo.IsGetBackPercent ? LotteryOpenTool_3D.LpList()[item.BetPlayTypeCode - 1].PayBack : AgentCalculateTool.GetAgentBackMoney_SSC(LotteryOpenTool_3D.LpList()[item.BetPlayTypeCode - 1].PayBack, betInfo.GetBackPercent)) * (betInfo.BetMoney / betInfo.BetUnit / 2);
                        break;
                    }
                    wBetList.Add(betInfo);
                }
                #endregion
                if (wBetList.Count == 0)
                {
                    return("无有效下注信息");
                }
                var dt = EntitiesTool.GetDateTimeNow(new LotteryAPPEntities());
                wBetList.ForEach(n => n.CreateTime = dt);
                var account = AccountDAL.BalanceChange(acc.Id, wBetList);
                return(account.AccountBalance + "(元)");
            }
            catch (Exception ex)
            {
                return("错误的下注信息" + ex.Message);
            }
        }