コード例 #1
0
        public async Task <IActionResult> Create([FromBody] BidModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            var bet = this.bettingService.GetById(model.BettingId);

            if (bet != null && bet.Status == BettingStatus.Continue)
            {
                model.Date          = DateTime.Now;
                model.UserId        = (await this.userManager.FindByNameAsync(this.User.Identity.Name)).Id;
                model.Coefficient   = BettingHelper.GetTimeCoefficient(bet.StartDate, bet.FinishDate, model.Date);
                model.PaymentStatus = PaymentStatus.None;


                var result = this.bidService.Create(model);
                model.PaymentAddress = this.bitcoinWalletService.GetAddressById(model.BidId).ToString();
                this.bidService.Update(model);

                if (result)
                {
                    return(this.Ok(new { result = true, bid = model }));
                }
            }

            return(this.Ok(new { result = false }));
        }
コード例 #2
0
        public static CTZQ_MatchInfo_New MatchList_New(string issuse, string gameType)
        {
            BettingHelper bizHelper = new BettingHelper();
            var           match     = bizHelper.GetMatchInfoList <CTZQ_MatchInfo>(MatchFile(gameType, issuse));
            var           odds      = bizHelper.GetMatchInfoList <CTZQ_OddInfo>(OddFiles(gameType, issuse));

            CTZQ_MatchInfo_New matchinfo = new CTZQ_MatchInfo_New();

            matchinfo.stop_sale_time = "";
            matchinfo.term_no        = issuse;
            matchinfo.match          = new List <Match>();
            foreach (var item in match)
            {
                var res = odds.FirstOrDefault(p => p.Id == item.Id);

                #region 队伍基础信息
                var info = new Match()
                {
                    match_name = item.MatchName,
                    away_team  = item.GuestTeamName.Replace("&nbsp;", ""),
                    home_team  = item.HomeTeamName.Replace("&nbsp;", ""),
                    bout_index = item.OrderNumber.ToString(),
                    match_time = item.MatchStartTime,
                    url        = "",
                    color      = item.Color
                };
                #endregion

                #region 附加平均赔率数据

                if (res != null)//"全:2.23|3.22|3.02"
                {
                    if (gameType == "T14C" || gameType == "T4CJQ" || gameType == "TR9")
                    {
                        string[] aOdds = res.AverageOdds.Split('|');
                        if (aOdds.Length == 3)
                        {
                            info.odd_home = aOdds[0] == null ? "0" : aOdds[0];
                            info.odd_draw = aOdds[2] == null ? "0" : aOdds[2];
                            info.odd_away = aOdds[1] == null ? "0" : aOdds[1];
                        }
                    }
                    else if (gameType == "T6BQC")
                    {
                        string[] aOdds = res.FullAverageOdds.Replace("全:", "").Split('|');
                        if (aOdds.Length == 3)
                        {
                            info.odd_home = aOdds[0] == null ? "0" : aOdds[0];
                            info.odd_draw = aOdds[1] == null ? "0" : aOdds[1];
                            info.odd_away = aOdds[2] == null ? "0" : aOdds[2];
                        }
                    }
                }

                #endregion

                matchinfo.match.Add(info);
            }
            return(matchinfo);
        }
コード例 #3
0
        public async Task <IActionResult> GetById(int bettingId)
        {
            var bids = this.bidService.Get(x => x.BettingId == bettingId);

            string userId = (await userManager.FindByNameAsync(User.Identity.Name)).Id;

            if (bids != null)
            {
                foreach (var bid in bids)
                {
                    if (bid.UserId != userId)
                    {
                        bid.PaymentAddress = null;
                    }

                    bid.PossibleWin = BettingHelper.GetAmountPayment(
                        bid.Amount,
                        bid.Coefficient,
                        this.bettingService.GetBank(bid.BettingId, bid.Side),
                        this.bettingService.GetBank(bid.BettingId, !bid.Side));
                }

                return(Ok(new { result = true, list = bids }));
            }

            return(Ok(new { result = false }));
        }
コード例 #4
0
        /// <summary>
        /// 冻结需要充值的金额,并生成一条游戏充值数据存入游戏交易表中,返回订单号
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        public CommonActionResult FreezeGameRecharge(string userId, decimal money, string userDisplayName)
        {
            var orderId = BettingHelper.GetGameTransferId();
            var msg     = string.Format("游戏充值订单号{0}", orderId);

            DB.Begin();
            try
            {
                BusinessHelper.Payout_To_Frozen(BusinessHelper.FundCategory_GameRecharge, userId, orderId, money, msg, "GameTransfer", "");
                DB.GetDal <C_Game_Transfer>().Add(new C_Game_Transfer()
                {
                    OrderId         = orderId,
                    RequestMoney    = money,
                    RequestTime     = DateTime.Now,
                    Status          = (int)FillMoneyStatus.Requesting,
                    UserId          = userId,
                    TransferType    = (int)GameTransferType.Recharge,
                    UserDisplayName = userDisplayName
                });
                DB.Commit();
            }
            catch (Exception ex)
            {
                DB.Rollback();
                throw ex;
            }
            return(new CommonActionResult()
            {
                IsSuccess = true, ReturnValue = orderId
            });
        }
コード例 #5
0
        public void GetAmountPayment_InvalidParams_ExpectException()
        {
            var bet          = -1M;
            var coefficient  = 0M;
            var betBank      = 0M;
            var oppositeBank = 0M;

            Assert.ThrowsException <ArgumentException>(() => BettingHelper.GetAmountPayment(bet, coefficient, betBank, oppositeBank));
        }
コード例 #6
0
        public void GetTimeCoefficient_InvalidParams_ExpectCoeffOne()
        {
            var start  = DateTime.MaxValue;
            var finish = DateTime.Now.Date;
            var curr   = DateTime.MinValue;

            var coefficient = BettingHelper.GetTimeCoefficient(start, finish, curr);

            Assert.AreEqual(coefficient, 1M);
        }
コード例 #7
0
        public void GetTimeCoefficient_ValidParams_ExpectCoeffTwo()
        {
            var offset = TimeSpan.FromSeconds(1000);
            var start  = DateTime.Now.Date;
            var finish = DateTime.Now.Date.Add(offset);
            var curr   = start;

            var coefficient = BettingHelper.GetTimeCoefficient(start, finish, curr);

            Assert.AreEqual(coefficient, 2M);
        }
コード例 #8
0
        public void GetAmountPayment_ValidParams_ExpectWin()
        {
            var bet          = 1M;
            var coefficient  = 2M;
            var betBank      = 1M;
            var oppositeBank = 1M;

            var amount = BettingHelper.GetAmountPayment(bet, coefficient, betBank, oppositeBank);

            Assert.AreEqual(amount, 1.9M);
        }
コード例 #9
0
 /// <summary>
 /// 添加订单(单式)到Redis库,本方法决定拆票或不拆票
 /// </summary>
 public static void AddOrderToRedis(string gameCode, RedisWaitTicketOrderSingle order)
 {
     if (BettingHelper.CanRequestBet(gameCode))
     {
         //可以拆票
         DoSplitOrderTicketWithThread_Single(order);
     }
     else
     {
         //不能拆票
         AddOrderToWaitSplitList(order);
     }
 }
コード例 #10
0
        /// <summary>
        /// 传统足球 - 奖期数据列表
        /// </summary>
        /// <param name="type"></param>
        /// <returns>奖期数据列表</returns>
        public static List <CtzqIssuesWeb> IssuseList(string type)
        {
            var bizHelper = new BettingHelper();

            try
            {
                var issues = bizHelper.GetMatchInfoList <CtzqIssuesWeb>(IssuseFile(type));
                return(issues);
            }
            catch (Exception ex)
            {
                return(new List <CtzqIssuesWeb>());
            }
        }
コード例 #11
0
ファイル: Json_JCZQ.cs プロジェクト: BULUSDUAN/lottery_PC
        /// <summary>
        /// 竞彩足球 - 世界冠军竞猜读取数据
        /// </summary>
        /// <param name="type">类型</param>
        /// <returns>队伍信息列表</returns>
        public static List <JCZQ_SJBMatchInfo> SJBMatchList(string type)
        {
            var bizHelper = new BettingHelper();
            List <JCZQ_SJBMatchInfo> matches = null;

            try
            {
                matches = bizHelper.GetMatchInfoList <JCZQ_SJBMatchInfo>(SJBFile(type));
                return(matches);
            }
            catch (Exception)
            {
                return(new List <JCZQ_SJBMatchInfo>());
            }
        }
コード例 #12
0
        public CommonActionResult Sports_Betting(Sports_BetingInfo info, string password, decimal redBagMoney, string userid)
        {
            try
            {
                //检查彩种是否暂停销售
                KaSon.FrameWork.ORM.Helper.BusinessHelper.CheckGameEnable(info.GameCode.ToUpper());
                BettingHelper.CheckGameCodeAndType(info.GameCode, info.GameType);
                // 验证用户身份及权限
                //var userId = GameBizAuthBusiness.ValidateUserAuthentication(userToken);

                //栓查是否实名
                //if (!BusinessHelper.IsUserValidateRealName(userId))
                //    throw new LogicException("未实名认证用户不能购买彩票");

                CheckJCRepeatBetting(userid, info);
                //检查投注内容,并获取投注注数
                var totalCount = BusinessHelper.CheckBetCode(userid, info.GameCode.ToUpper(), info.GameType.ToUpper(), info.SchemeSource, info.PlayType, info.Amount, info.TotalMoney, info.AnteCodeList);
                //检查投注的比赛,并获取最早结束时间
                var stopTime = RedisMatchBusiness.CheckGeneralBettingMatch(info.GameCode.ToUpper(), info.GameType.ToUpper(), info.PlayType, info.AnteCodeList, info.IssuseNumber, info.BettingCategory);

                string schemeId = string.Empty;
                //lock (UsefullHelper.moneyLocker)
                //{
                schemeId = new Sports_Business().SportsBetting(info, userid, password, "Bet", totalCount, stopTime, redBagMoney);
                //}
                //! 执行扩展功能代码 - 提交事务后
                BusinessHelper.ExecPlugin <IBettingSport_AfterTranCommit>(new object[] { userid, info, schemeId });

                return(new CommonActionResult
                {
                    IsSuccess = true,
                    ReturnValue = schemeId + "|" + info.TotalMoney,
                    Message = "足彩投注成功",
                });
            }
            //catch (AggregateException ex)
            //{
            //    throw new AggregateException(ex.Message);
            //}
            catch (LogicException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new Exception("订单投注异常,请重试 ", ex);
            }
        }
コード例 #13
0
        /// <summary>
        /// 检查投注比赛是否可投注,并返回最早结束的比赛时间
        /// </summary>
        public static DateTime CheckGeneralBettingMatch(string gameCode, string gameType, string playType, List <Sports_AnteCodeInfo> codeList, string issuseNumber, SchemeBettingCategory?bettingCategory = null)
        {
            var sportsManager = new Sports_Manager();

            if (gameCode == "BJDC")
            {
                var matchIdArray = (from l in codeList select string.Format("{0}|{1}", issuseNumber, l.MatchId)).Distinct().ToArray();
                var matchList    = QueryBJDCMatch(matchIdArray);
                if (matchList.Count != matchIdArray.Length)
                {
                    throw new LogicException("所选比赛中有停止销售的比赛。");
                }
                BettingHelper.CheckPrivilegesType_BJDC(gameCode, gameType, playType, issuseNumber, codeList, matchList);
                return(matchList.Min(m => m.LocalStopTime));
            }
            if (gameCode == "JCZQ")
            {
                var matchIdArray = (from l in codeList select l.MatchId).Distinct().ToArray();
                var matchList    = QueryJCZQMatch(matchIdArray);
                if (matchList.Count != matchIdArray.Length)
                {
                    throw new LogicException("所选比赛中有停止销售的比赛。");
                }
                BettingHelper.CheckPrivilegesType_JCZQ(gameCode, gameType, playType, codeList, matchList);
                if (bettingCategory.HasValue && bettingCategory.Value == SchemeBettingCategory.SingleBetting)
                {
                    return(matchList.Min(m => m.DSStopBettingTime));
                }
                return(matchList.Min(m => m.FSStopBettingTime));
            }
            if (gameCode == "JCLQ")
            {
                var matchIdArray = (from l in codeList select l.MatchId).Distinct().ToArray();
                var matchList    = QueryJCLQMatch(matchIdArray);
                if (matchList.Count != matchIdArray.Length)
                {
                    throw new LogicException("所选比赛中有停止销售的比赛。");
                }
                BettingHelper.CheckPrivilegesType_JCLQ(gameCode, gameType, playType, codeList, matchList);
                if (bettingCategory.HasValue && bettingCategory.Value == SchemeBettingCategory.SingleBetting)
                {
                    return(matchList.Min(m => m.DSStopBettingTime));
                }
                return(matchList.Min(m => m.FSStopBettingTime));
            }
            throw new LogicException(string.Format("错误的彩种编码:{0}", gameCode));
        }
コード例 #14
0
        /// <summary>
        /// 开奖信息
        /// </summary>
        public static async Task Init_Pool_Data()
        {
            while (true)
            {
                try
                {
                    string key = EntityModel.Redis.RedisKeys.KaiJiang_Key;

                    var orderService = new OrderQuery();
                    var gameString   = "JX11X5|GD11X5|SD11X5|CQSSC|SSQ|DLT|FC3D|PL3|CTZQ_T14C|CTZQ_T6BQC|CTZQ_T4CJQ|CTZQ_TR9";
                    var result       = orderService.QueryAllGameNewWinNumber(gameString);
                    var list         = new List <KaiJiang>();
                    if (result != null && result.List.Count > 0)
                    {
                        foreach (var item in result.List)
                        {
                            var poolInfo = BettingHelper.GetPoolInfo(item.GameCode, item.IssuseNumber);
                            list.Add(new KaiJiang()
                            {
                                result    = item.WinNumber,
                                prizepool = poolInfo != null ? poolInfo.TotalPrizePoolMoney.ToString("###,##0.00") : "",
                                nums      = ConvertHelper.Getnums(poolInfo),
                                name      = item.GameCode.ToUpper() == "CTZQ" ? item.GameType : item.GameCode,
                                termNo    = item.IssuseNumber,
                                ver       = "1",
                                grades    = ConvertHelper.Getgrades(poolInfo),
                                date      = item.CreateTime.ToString("yyyy-MM-dd"),
                                type      = ConvertHelper.GetGameName(item.GameCode, item.GameType),
                                sale      = poolInfo != null ? poolInfo.TotalSellMoney.ToString("###,##0.00") : ""
                            });
                        }
                        list[list.Count - 1].name = "TR9";
                        list[list.Count - 1].type = "任选9";
                    }
                    RedisHelperEx.DB_Match.Set(key, list, 30 * 60);
                }
                catch (Exception ex)
                {
                }
                await Task.Delay(60 * 1000);
            }
        }
コード例 #15
0
        /// <summary>
        /// 足彩投注,用户保存的订单
        /// </summary>
        public CommonActionResult SaveOrderSportsBettingByResult(Sports_BetingInfo info, string userid)
        {
            // 验证用户身份及权限
            //var userId = GameBizAuthBusiness.ValidateUserAuthentication(userToken);

            try
            {
                //栓查是否实名
                //if (!BusinessHelper.IsUserValidateRealName(userId))
                //    throw new LogicException("未实名认证用户不能购买彩票");

                CheckDisableGame(info.GameCode, info.GameType);
                BettingHelper.CheckGameCodeAndType(info.GameCode, info.GameType);

                // 检查订单基本信息
                BettingHelper.CheckSchemeOrder(info);

                string schemeId = new Sports_Business().SaveOrderSportsBetting(info, userid);

                //! 执行扩展功能代码 - 提交事务后
                BusinessHelper.ExecPlugin <IBettingSport_AfterTranCommit>(new object[] { userid, info, schemeId });

                return(new CommonActionResult
                {
                    IsSuccess = true,
                    ReturnValue = schemeId + "|" + info.TotalMoney,
                    Message = "保存订单成功",
                });
            }
            catch (LogicException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new Exception("保存订单异常,请重试 ", ex);
            }
        }
コード例 #16
0
ファイル: Json_JCZQ.cs プロジェクト: BULUSDUAN/lottery_PC
        public static List <JCZQ_MatchInfo_WEB> GetJCZQHHDGList()
        {
            List <JCZQ_MatchInfo_WEB> jczqMatchList = new List <JCZQ_MatchInfo_WEB>();
            BettingHelper             bizHelper     = new BettingHelper();
            var matchList = bizHelper.GetMatchInfoList <JCZQHHDGBase>(GetFilePath("Match_List_HH"));

            matchList = matchList.Where(s => long.Parse(Convert.ToDateTime(s.FSStopBettingTime).ToString("yyyyMMddHHmmss")) > long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss")) && s.MatchStopDesc != "2").ToList();
            if (matchList != null && matchList.Count > 0)
            {
                foreach (var item in matchList)
                {
                    JCZQ_MatchInfo_WEB info = new JCZQ_MatchInfo_WEB();
                    info.MatcheDateTime = ConvertHelper.ConvertStrToDateTime("20" + item.MatchData);
                    //info.FSStopBettingTime = bizHelper.ConvertDateTimeInt(Convert.ToDateTime(item.FSStopBettingTime)).ToString();
                    info.FSStopBettingTime = item.FSStopBettingTime;
                    //info.//FSStopBettingTime = item.FSStopBettingTime.ToString("yyyyMMddHHmmss"),
                    //info.//GuestTeamId = item.GuestTeamId,
                    info.GuestTeamName = BettingHelper.GetTeamName(item.GuestTeamName);
                    //info.//HomeTeamId = item.HomeTeamId,
                    info.HomeTeamName = BettingHelper.GetTeamName(item.HomeTeamName);
                    info.LeagueColor  = item.LeagueColor;
                    //info.//LeagueId = item.LeagueId,
                    info.LeagueName = item.LeagueName;
                    info.LetBall    = item.LetBall;
                    //info.//LoseOdds = item.LoseOdds,
                    info.MatchIdName = item.MatchIdName;
                    //info.StartDateTime = bizHelper.ConvertDateTimeInt(Convert.ToDateTime(item.StartDateTime)).ToString();
                    info.StartDateTime = Convert.ToDateTime(item.StartDateTime);
                    //info.//StartDateTime = item.StartDateTime.ToString("yyyyMMddHHmmss"),
                    //info.//WinOdds = item.WinOdds,
                    //info.//FlatOdds = item.FlatOdds,
                    info.MatchData   = item.MatchData;
                    info.MatchId     = item.MatchId;
                    info.MatchNumber = item.MatchNumber;
                    //info.//Mid = item.Mid,
                    info.FXId           = item.FXId;
                    info.State_HHDG     = item.State;
                    info.PrivilegesType = item.PrivilegesType == null ? string.Empty : item.PrivilegesType;

                    //info.State = item.State;
                    #region 附加让球胜平负sp数据
                    if (item.SPF != null)
                    {
                        var json_spf = JsonHelper.Deserialize <JCZQ_SPF_SPInfo>(item.SPF);
                        info.SP_Win_Odds     = json_spf.WinOdds;
                        info.SP_Lose_Odds    = json_spf.LoseOdds;
                        info.SP_Flat_Odds    = json_spf.FlatOdds;
                        info.NoSaleState_SPF = json_spf.NoSaleState;

                        //info.PrivilegesType = json_spf.PrivilegesType==null?string.Empty:json_spf.PrivilegesType;
                    }
                    else
                    {
                        info.SP_Win_Odds     = 0;
                        info.SP_Lose_Odds    = 0;
                        info.SP_Flat_Odds    = 0;
                        info.NoSaleState_SPF = "0";
                        //info.PrivilegesType = string.Empty;
                    }

                    #endregion

                    #region 附加胜平负sp数据

                    if (item.BRQSPF != null)
                    {
                        var json_brqspf = JsonHelper.Deserialize <JCZQ_SPF_SPInfo>(item.BRQSPF);
                        info.SP_Win_Odds_BRQ    = json_brqspf.WinOdds;
                        info.SP_Lose_Odds_BRQ   = json_brqspf.LoseOdds;
                        info.SP_Flat_Odds_BRQ   = json_brqspf.FlatOdds;
                        info.NoSaleState_BRQSPF = json_brqspf.NoSaleState;
                        //info.PrivilegesType = json_brqspf.PrivilegesType==null?string.Empty:json_brqspf.PrivilegesType;
                    }
                    else
                    {
                        info.SP_Win_Odds_BRQ    = 0;
                        info.SP_Lose_Odds_BRQ   = 0;
                        info.SP_Flat_Odds_BRQ   = 0;
                        info.NoSaleState_BRQSPF = "0";
                        //info.PrivilegesType = string.Empty;
                    }

                    #endregion

                    #region 附加总进球sp数据

                    if (item.ZJQ != null)
                    {
                        var json_zjq = JsonHelper.Deserialize <JCZQ_ZJQ_SPInfo>(item.ZJQ);
                        info.JinQiu_0_Odds   = json_zjq.JinQiu_0_Odds;
                        info.JinQiu_1_Odds   = json_zjq.JinQiu_1_Odds;
                        info.JinQiu_2_Odds   = json_zjq.JinQiu_2_Odds;
                        info.JinQiu_3_Odds   = json_zjq.JinQiu_3_Odds;
                        info.JinQiu_4_Odds   = json_zjq.JinQiu_4_Odds;
                        info.JinQiu_5_Odds   = json_zjq.JinQiu_5_Odds;
                        info.JinQiu_6_Odds   = json_zjq.JinQiu_6_Odds;
                        info.JinQiu_7_Odds   = json_zjq.JinQiu_7_Odds;
                        info.NoSaleState_ZJQ = json_zjq.NoSaleState;
                        //info.PrivilegesType = json_zjq.PrivilegesType==null?string.Empty:json_zjq.PrivilegesType;
                    }
                    else
                    {
                        info.JinQiu_0_Odds   = 0;
                        info.JinQiu_1_Odds   = 0;
                        info.JinQiu_2_Odds   = 0;
                        info.JinQiu_3_Odds   = 0;
                        info.JinQiu_4_Odds   = 0;
                        info.JinQiu_5_Odds   = 0;
                        info.JinQiu_6_Odds   = 0;
                        info.JinQiu_7_Odds   = 0;
                        info.NoSaleState_ZJQ = "0";
                        //info.PrivilegesType = string.Empty;
                    }

                    #endregion

                    #region 附加比分sp数据

                    if (item.BF != null)
                    {
                        var json_bf = JsonHelper.Deserialize <JCZQ_BF_SPInfo>(item.BF);
                        info.F_01           = json_bf.F_01;
                        info.F_02           = json_bf.F_02;
                        info.F_03           = json_bf.F_03;
                        info.F_04           = json_bf.F_04;
                        info.F_05           = json_bf.F_05;
                        info.F_12           = json_bf.F_12;
                        info.F_13           = json_bf.F_13;
                        info.F_14           = json_bf.F_14;
                        info.F_15           = json_bf.F_15;
                        info.F_23           = json_bf.F_23;
                        info.F_24           = json_bf.F_24;
                        info.F_25           = json_bf.F_25;
                        info.F_QT           = json_bf.F_QT;
                        info.P_00           = json_bf.P_00;
                        info.P_11           = json_bf.P_11;
                        info.P_22           = json_bf.P_22;
                        info.P_33           = json_bf.P_33;
                        info.P_QT           = json_bf.P_QT;
                        info.S_10           = json_bf.S_10;
                        info.S_20           = json_bf.S_20;
                        info.S_21           = json_bf.S_21;
                        info.S_30           = json_bf.S_30;
                        info.S_31           = json_bf.S_31;
                        info.S_32           = json_bf.S_32;
                        info.S_40           = json_bf.S_40;
                        info.S_41           = json_bf.S_41;
                        info.S_42           = json_bf.S_42;
                        info.S_50           = json_bf.S_50;
                        info.S_51           = json_bf.S_51;
                        info.S_52           = json_bf.S_52;
                        info.S_QT           = json_bf.S_QT;
                        info.NoSaleState_BF = json_bf.NoSaleState;
                        //info.PrivilegesType = json_bf.PrivilegesType==null?string.Empty:json_bf.PrivilegesType;
                    }
                    else
                    {
                        info.F_01           = 0;
                        info.F_02           = 0;
                        info.F_03           = 0;
                        info.F_04           = 0;
                        info.F_05           = 0;
                        info.F_12           = 0;
                        info.F_13           = 0;
                        info.F_14           = 0;
                        info.F_15           = 0;
                        info.F_23           = 0;
                        info.F_24           = 0;
                        info.F_25           = 0;
                        info.F_QT           = 0;
                        info.P_00           = 0;
                        info.P_11           = 0;
                        info.P_22           = 0;
                        info.P_33           = 0;
                        info.P_QT           = 0;
                        info.S_10           = 0;
                        info.S_20           = 0;
                        info.S_21           = 0;
                        info.S_30           = 0;
                        info.S_31           = 0;
                        info.S_32           = 0;
                        info.S_40           = 0;
                        info.S_41           = 0;
                        info.S_42           = 0;
                        info.S_50           = 0;
                        info.S_51           = 0;
                        info.S_52           = 0;
                        info.S_QT           = 0;
                        info.NoSaleState_BF = "0";
                        //info.PrivilegesType = string.Empty;
                    }

                    #endregion

                    #region 附加半全场sp数据

                    if (item.BQC != null)
                    {
                        var json_bqc = JsonHelper.Deserialize <JCZQ_BQC_SPInfo>(item.BQC);
                        info.F_F_Odds        = json_bqc.F_F_Odds;
                        info.F_P_Odds        = json_bqc.F_P_Odds;
                        info.F_SH_Odds       = json_bqc.F_SH_Odds;
                        info.P_F_Odds        = json_bqc.P_F_Odds;
                        info.P_P_Odds        = json_bqc.P_P_Odds;
                        info.P_SH_Odds       = json_bqc.P_SH_Odds;
                        info.SH_F_Odds       = json_bqc.SH_F_Odds;
                        info.SH_P_Odds       = json_bqc.SH_P_Odds;
                        info.SH_SH_Odds      = json_bqc.SH_SH_Odds;
                        info.NoSaleState_BQC = json_bqc.NoSaleState;
                        //info.PrivilegesType = json_bqc.PrivilegesType==null?string.Empty:json_bqc.PrivilegesType;
                    }
                    else
                    {
                        info.F_F_Odds        = 0;
                        info.F_P_Odds        = 0;
                        info.F_SH_Odds       = 0;
                        info.P_F_Odds        = 0;
                        info.P_P_Odds        = 0;
                        info.P_SH_Odds       = 0;
                        info.SH_F_Odds       = 0;
                        info.SH_P_Odds       = 0;
                        info.SH_SH_Odds      = 0;
                        info.NoSaleState_BQC = "0";
                        //info.PrivilegesType = string.Empty;
                    }

                    #endregion

                    jczqMatchList.Add(info);
                }
            }
            return(jczqMatchList);
        }
コード例 #17
0
ファイル: Json_JCZQ.cs プロジェクト: BULUSDUAN/lottery_PC
        /// <summary>
        /// 查询队伍信息与队伍比赛结果信息 - WEB页面使用
        /// - 合并队伍基础信息与队伍结果信息
        /// - 合并各玩法SP数据
        /// </summary>
        /// <param name="service">HttpServerUtilityBase对象</param>
        /// <param name="matchDate">查询日期</param>
        /// <param name="isLeftJoin">是否查询没有结果的队伍比赛信息</param>
        /// <returns>队伍信息及比赛结果信息</returns>
        public static List <JCZQ_MatchInfo_WEB> MatchList_WEB(string gameType, string newVerType, string matchDate = null, bool isLeftJoin = true)
        {
            BettingHelper bizHelper = new BettingHelper();
            var           match     = bizHelper.GetMatchInfoList <JCZQ_MatchInfo>(MatchFile(newVerType, matchDate));

            var matchresult = bizHelper.GetMatchInfoList <JCZQ_MatchResultInfo>(MatchResultFile(matchDate));
            //var sp_spf = bizHelper.GetMatchInfoList<JCZQ_SPF_SPInfo>(SPFile("SPF",matchDate)); //让球胜平负sp数据
            //var sp_brqspf = bizHelper.GetMatchInfoList<JCZQ_SPF_SPInfo>(SPFile("BRQSPF", matchDate)); //胜平负sp数据
            //var sp_zjq = bizHelper.GetMatchInfoList<JCZQ_ZJQ_SPInfo>(SPFile("ZJQ", matchDate)); //总进球sp数据
            //var sp_bf = bizHelper.GetMatchInfoList<JCZQ_BF_SPInfo>(SPFile("BF", matchDate)); //比分sp数据
            //var sp_bqc = bizHelper.GetMatchInfoList<JCZQ_BQC_SPInfo>(SPFile("BQC", matchDate)); //半全场sp数据

            var sp_spf    = bizHelper.GetMatchInfoList <JCZQ_SPF_SPInfo>(SPFile(gameType, matchDate)); //让球胜平负sp数据
            var sp_brqspf = bizHelper.GetMatchInfoList <JCZQ_SPF_SPInfo>(SPFile(gameType, matchDate)); //胜平负sp数据
            var sp_zjq    = bizHelper.GetMatchInfoList <JCZQ_ZJQ_SPInfo>(SPFile(gameType, matchDate)); //总进球sp数据
            var sp_bf     = bizHelper.GetMatchInfoList <JCZQ_BF_SPInfo>(SPFile(gameType, matchDate));  //比分sp数据
            var sp_bqc    = bizHelper.GetMatchInfoList <JCZQ_BQC_SPInfo>(SPFile(gameType, matchDate)); //半全场sp数据

            var list = new List <JCZQ_MatchInfo_WEB>();

            match = match.Where(t => long.Parse(Convert.ToDateTime(t.FSStopBettingTime).ToString("yyyyMMddHHmmss")) > long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss")) && t.MatchStopDesc != "2").ToList();
            foreach (var item in match)
            {
                #region 队伍基础信息
                //var startTime=Convert.ToDateTime(item.StartDateTime);
                //if (startTime.Date == DateTime.Now.AddDays(1).Date)
                //    startTime = startTime.AddHours(-9);

                var matchDataTime = ConvertHelper.ConvertStrToDateTime("20" + item.MatchData);
                //var matchDataTime = bizHelper.ConvertDateTimeInt(bizHelper.ConvertStrToDateTime("20150623"));
                var info = new JCZQ_MatchInfo_WEB()
                {
                    //CreateTime = item.CreateTime.ToString("yyyyMMddHHmmss"),
                    //DSStopBettingTime = item.DSStopBettingTime.ToString("yyyyMMddHHmmss"),
                    MatcheDateTime = matchDataTime,
                    //FSStopBettingTime = bizHelper.ConvertDateTimeInt(Convert.ToDateTime(item.FSStopBettingTime)).ToString(),
                    FSStopBettingTime = item.FSStopBettingTime,
                    //FSStopBettingTime = item.FSStopBettingTime.ToString("yyyyMMddHHmmss"),
                    //GuestTeamId = item.GuestTeamId,
                    GuestTeamName = BettingHelper.GetTeamName(item.GuestTeamName),
                    //HomeTeamId = item.HomeTeamId,
                    HomeTeamName = BettingHelper.GetTeamName(item.HomeTeamName),
                    LeagueColor  = item.LeagueColor,
                    //LeagueId = item.LeagueId,
                    LeagueName = item.LeagueName,
                    LetBall    = item.LetBall,
                    //LoseOdds = item.LoseOdds,
                    MatchIdName   = item.MatchIdName,
                    StartDateTime = Convert.ToDateTime(item.StartDateTime),
                    //StartDateTime = item.StartDateTime.ToString("yyyyMMddHHmmss"),
                    //WinOdds = item.WinOdds,
                    //FlatOdds = item.FlatOdds,
                    MatchData   = item.MatchData,
                    MatchId     = item.MatchId,
                    MatchNumber = item.MatchNumber,
                    //Mid = item.Mid,
                    FXId           = item.FXId,
                    State          = item.State,
                    PrivilegesType = item.PrivilegesType == null ? string.Empty : item.PrivilegesType,
                };
                #endregion

                #region 附加队伍结果信息
                var res = matchresult.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (res != null)
                {
                    //info.ZJQ_Result = res.ZJQ_Result;
                    //info.ZJQ_SP = res.ZJQ_SP;
                    //info.SPF_SP = res.SPF_SP;
                    //info.SPF_Result = res.SPF_Result;
                    //info.BQC_SP = res.BQC_SP;
                    //info.BQC_Result = res.BQC_Result;
                    //info.BF_SP = res.BF_SP;
                    //info.BF_Result = res.BF_Result;
                    //info.FullGuestTeamScore = res.FullGuestTeamScore;
                    //info.FullHomeTeamScore = res.FullHomeTeamScore;
                    //info.HalfGuestTeamScore = res.HalfGuestTeamScore;
                    //info.HalfHomeTeamScore = res.HalfHomeTeamScore;
                    //info.MatchState = res.MatchState;
                }
                else if (!isLeftJoin)
                {
                    continue;
                }
                #endregion

                #region 附加让球胜平负sp数据
                var sp_spf_item = sp_spf.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (gameType.ToLower() == "hh")
                {
                    if (sp_spf_item != null && sp_spf_item.SPF != null)
                    {
                        var json = JsonHelper.Deserialize <JCZQ_SPF_SPInfo>(sp_spf_item.SPF);
                        info.SP_Win_Odds  = json.WinOdds;
                        info.SP_Lose_Odds = json.LoseOdds;
                        info.SP_Flat_Odds = json.FlatOdds;
                        //info.PrivilegesType = json.PrivilegesType==null?string.Empty:json.PrivilegesType;
                    }
                }
                else if (sp_spf_item != null)
                {
                    info.SP_Win_Odds  = sp_spf_item.WinOdds;
                    info.SP_Lose_Odds = sp_spf_item.LoseOdds;
                    info.SP_Flat_Odds = sp_spf_item.FlatOdds;
                    //info.PrivilegesType = sp_spf_item.PrivilegesType;
                }
                #endregion

                #region 附加胜平负sp数据
                var sp_brqspf_item = sp_brqspf.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (gameType.ToLower() == "hh")
                {
                    if (sp_brqspf_item != null && sp_brqspf_item.BRQSPF != null)
                    {
                        var json = JsonHelper.Deserialize <JCZQ_SPF_SPInfo>(sp_brqspf_item.BRQSPF);
                        info.SP_Win_Odds_BRQ  = json.WinOdds;
                        info.SP_Lose_Odds_BRQ = json.LoseOdds;
                        info.SP_Flat_Odds_BRQ = json.FlatOdds;
                        //info.PrivilegesType = json.PrivilegesType==null?string.Empty:json.PrivilegesType;
                    }
                }
                else if (sp_brqspf_item != null)
                {
                    info.SP_Win_Odds_BRQ  = sp_brqspf_item.WinOdds;
                    info.SP_Lose_Odds_BRQ = sp_brqspf_item.LoseOdds;
                    info.SP_Flat_Odds_BRQ = sp_brqspf_item.FlatOdds;
                    //info.PrivilegesType = sp_brqspf_item.PrivilegesType==null?string.Empty:sp_brqspf_item.PrivilegesType;
                }
                #endregion

                #region 附加总进球sp数据
                var sp_zjq_item = sp_zjq.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (gameType.ToLower() == "hh")
                {
                    if (sp_zjq_item != null && sp_zjq_item.ZJQ != null)
                    {
                        var json = JsonHelper.Deserialize <JCZQ_ZJQ_SPInfo>(sp_zjq_item.ZJQ);
                        info.JinQiu_0_Odds = json.JinQiu_0_Odds;
                        info.JinQiu_1_Odds = json.JinQiu_1_Odds;
                        info.JinQiu_2_Odds = json.JinQiu_2_Odds;
                        info.JinQiu_3_Odds = json.JinQiu_3_Odds;
                        info.JinQiu_4_Odds = json.JinQiu_4_Odds;
                        info.JinQiu_5_Odds = json.JinQiu_5_Odds;
                        info.JinQiu_6_Odds = json.JinQiu_6_Odds;
                        info.JinQiu_7_Odds = json.JinQiu_7_Odds;
                        //info.PrivilegesType = json.PrivilegesType==null?string.Empty:json.PrivilegesType;
                    }
                }
                else if (sp_zjq_item != null)
                {
                    info.JinQiu_0_Odds = sp_zjq_item.JinQiu_0_Odds;
                    info.JinQiu_1_Odds = sp_zjq_item.JinQiu_1_Odds;
                    info.JinQiu_2_Odds = sp_zjq_item.JinQiu_2_Odds;
                    info.JinQiu_3_Odds = sp_zjq_item.JinQiu_3_Odds;
                    info.JinQiu_4_Odds = sp_zjq_item.JinQiu_4_Odds;
                    info.JinQiu_5_Odds = sp_zjq_item.JinQiu_5_Odds;
                    info.JinQiu_6_Odds = sp_zjq_item.JinQiu_6_Odds;
                    info.JinQiu_7_Odds = sp_zjq_item.JinQiu_7_Odds;
                    //info.PrivilegesType = sp_zjq_item.PrivilegesType==null?string.Empty:sp_zjq_item.PrivilegesType;
                }
                #endregion

                #region 附加比分sp数据
                var sp_bf_item = sp_bf.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (gameType.ToLower() == "hh")
                {
                    if (sp_bf_item != null && sp_bf_item.BF != null)
                    {
                        var json = JsonHelper.Deserialize <JCZQ_BF_SPInfo>(sp_bf_item.BF);
                        info.F_01 = json.F_01;
                        info.F_02 = json.F_02;
                        info.F_03 = json.F_03;
                        info.F_04 = json.F_04;
                        info.F_05 = json.F_05;
                        info.F_12 = json.F_12;
                        info.F_13 = json.F_13;
                        info.F_14 = json.F_14;
                        info.F_15 = json.F_15;
                        info.F_23 = json.F_23;
                        info.F_24 = json.F_24;
                        info.F_25 = json.F_25;
                        info.F_QT = json.F_QT;
                        info.P_00 = json.P_00;
                        info.P_11 = json.P_11;
                        info.P_22 = json.P_22;
                        info.P_33 = json.P_33;
                        info.P_QT = json.P_QT;
                        info.S_10 = json.S_10;
                        info.S_20 = json.S_20;
                        info.S_21 = json.S_21;
                        info.S_30 = json.S_30;
                        info.S_31 = json.S_31;
                        info.S_32 = json.S_32;
                        info.S_40 = json.S_40;
                        info.S_41 = json.S_41;
                        info.S_42 = json.S_42;
                        info.S_50 = json.S_50;
                        info.S_51 = json.S_51;
                        info.S_52 = json.S_52;
                        info.S_QT = json.S_QT;
                        //info.PrivilegesType = json.PrivilegesType==null?string.Empty:json.PrivilegesType;
                    }
                }
                else if (sp_bf_item != null)
                {
                    info.F_01 = sp_bf_item.F_01;
                    info.F_02 = sp_bf_item.F_02;
                    info.F_03 = sp_bf_item.F_03;
                    info.F_04 = sp_bf_item.F_04;
                    info.F_05 = sp_bf_item.F_05;
                    info.F_12 = sp_bf_item.F_12;
                    info.F_13 = sp_bf_item.F_13;
                    info.F_14 = sp_bf_item.F_14;
                    info.F_15 = sp_bf_item.F_15;
                    info.F_23 = sp_bf_item.F_23;
                    info.F_24 = sp_bf_item.F_24;
                    info.F_25 = sp_bf_item.F_25;
                    info.F_QT = sp_bf_item.F_QT;
                    info.P_00 = sp_bf_item.P_00;
                    info.P_11 = sp_bf_item.P_11;
                    info.P_22 = sp_bf_item.P_22;
                    info.P_33 = sp_bf_item.P_33;
                    info.P_QT = sp_bf_item.P_QT;
                    info.S_10 = sp_bf_item.S_10;
                    info.S_20 = sp_bf_item.S_20;
                    info.S_21 = sp_bf_item.S_21;
                    info.S_30 = sp_bf_item.S_30;
                    info.S_31 = sp_bf_item.S_31;
                    info.S_32 = sp_bf_item.S_32;
                    info.S_40 = sp_bf_item.S_40;
                    info.S_41 = sp_bf_item.S_41;
                    info.S_42 = sp_bf_item.S_42;
                    info.S_50 = sp_bf_item.S_50;
                    info.S_51 = sp_bf_item.S_51;
                    info.S_52 = sp_bf_item.S_52;
                    info.S_QT = sp_bf_item.S_QT;
                    //info.PrivilegesType = sp_bf_item.PrivilegesType==null?string.Empty:sp_bf_item.PrivilegesType;
                }
                #endregion

                #region 附加半全场sp数据
                var sp_bqc_item = sp_bqc.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (gameType.ToLower() == "hh")
                {
                    if (sp_bqc_item != null && sp_bqc_item.BQC != null)
                    {
                        var json = JsonHelper.Deserialize <JCZQ_BQC_SPInfo>(sp_bqc_item.BQC);
                        info.F_F_Odds   = json.F_F_Odds;
                        info.F_P_Odds   = json.F_P_Odds;
                        info.F_SH_Odds  = json.F_SH_Odds;
                        info.P_F_Odds   = json.P_F_Odds;
                        info.P_P_Odds   = json.P_P_Odds;
                        info.P_SH_Odds  = json.P_SH_Odds;
                        info.SH_F_Odds  = json.SH_F_Odds;
                        info.SH_P_Odds  = json.SH_P_Odds;
                        info.SH_SH_Odds = json.SH_SH_Odds;
                        //info.PrivilegesType = json.PrivilegesType==null?string.Empty:json.PrivilegesType;
                    }
                }
                else if (sp_bqc_item != null)
                {
                    info.F_F_Odds   = sp_bqc_item.F_F_Odds;
                    info.F_P_Odds   = sp_bqc_item.F_P_Odds;
                    info.F_SH_Odds  = sp_bqc_item.F_SH_Odds;
                    info.P_F_Odds   = sp_bqc_item.P_F_Odds;
                    info.P_P_Odds   = sp_bqc_item.P_P_Odds;
                    info.P_SH_Odds  = sp_bqc_item.P_SH_Odds;
                    info.SH_F_Odds  = sp_bqc_item.SH_F_Odds;
                    info.SH_P_Odds  = sp_bqc_item.SH_P_Odds;
                    info.SH_SH_Odds = sp_bqc_item.SH_SH_Odds;
                    //info.PrivilegesType = sp_bqc_item.PrivilegesType==null?string.Empty:sp_bqc_item.PrivilegesType;
                }
                #endregion

                list.Add(info);
            }

            return(list);
        }
コード例 #18
0
        public int CheckBettingOrderMoney(List <Sports_AnteCodeInfo> codeList, string gameCode, string gameType, string playType, int amount, decimal schemeTotalMoney, DateTime stopTime, bool isAllow = false, string userId = "")
        {
            //验证投注号码
            if (stopTime < DateTime.Now)
            {
                throw new Exception("投注结束时间不能小于当前时间");
            }

            //验证投注内容是否合法,或是否重复
            foreach (var item in codeList)
            {
                var oneCodeArray = item.AnteCode.Split(',');
                if (oneCodeArray.Distinct().Count() != oneCodeArray.Length)
                {
                    throw new Exception(string.Format("投注号码{0}中包括重复的内容", item.AnteCode));
                }
                BettingHelper.CheckSportAnteCode(gameCode, string.IsNullOrEmpty(item.GameType) ? gameType : item.GameType.ToUpper(), oneCodeArray);
            }

            var tmp        = playType.Split('|');
            var totalMoney = 0M;
            var totalCount = 0;

            var c = new Combination();

            foreach (var chuan in tmp)
            {
                var chuanArray = chuan.Split('_');
                if (chuanArray.Length != 2)
                {
                    continue;
                }

                var m = int.Parse(chuanArray[0]);
                var n = int.Parse(chuanArray[1]);

                //串关包括的真实串数
                var countList = SportAnalyzer.AnalyzeChuan(m, n);
                if (n > 1)
                {
                    //3_3类型
                    c.Calculate(codeList.ToArray(), m, (arr) =>
                    {
                        //m场比赛
                        if (arr.Select(p => p.MatchId).Distinct().Count() == m)
                        {
                            foreach (var count in countList)
                            {
                                //M串1
                                c.Calculate(arr, count, (a1) =>
                                {
                                    var cCount = 1;
                                    foreach (var t in a1)
                                    {
                                        cCount *= t.AnteCode.Split(',').Length;
                                    }
                                    totalCount += cCount;
                                });
                            }
                        }
                    });
                }
                else
                {
                    var ac      = new ArrayCombination();
                    var danList = codeList.Where(a => a.IsDan).ToList();
                    //var tuoList = codeList.Where(a => !a.IsDan).ToList();
                    var totalCodeList = new List <Sports_AnteCodeInfo[]>();
                    foreach (var g in codeList.GroupBy(p => p.MatchId))
                    {
                        totalCodeList.Add(codeList.Where(p => p.MatchId == g.Key).ToArray());
                    }
                    //3_1类型
                    foreach (var count in countList)
                    {
                        //c.Calculate(totalCodeList.ToArray(), count - danList.Count, (arr2) =>
                        c.Calculate(totalCodeList.ToArray(), count, (arr2) =>
                        {
                            ac.Calculate(arr2, (tuoArr) =>
                            {
                                #region 拆分组合票

                                var isContainsDan = true;
                                foreach (var dan in danList)
                                {
                                    var con = tuoArr.FirstOrDefault(p => p.MatchId == dan.MatchId);
                                    if (con == null)
                                    {
                                        isContainsDan = false;
                                        break;
                                    }
                                }

                                if (isContainsDan)
                                {
                                    var cCount = 1;
                                    foreach (var t in tuoArr)
                                    {
                                        cCount *= t.AnteCode.Split(',').Length;
                                    }
                                    totalCount += cCount;
                                    //if (!isAllow && BusinessHelper.IsSiteLimit(gameCode))
                                    //{
                                    //    if (!string.IsNullOrEmpty(userId) && !BusinessHelper.IsSpecificUser(userId))//如果是特定用户,则不限制投注
                                    //    {
                                    //        if ((cCount * amount * 2M) < 50)
                                    //            throw new Exception("您好,根据您投注的内容将产生多张彩票,每张彩票金额不足50元,请您增加倍数以达到出票条件。");
                                    //    }
                                    //}
                                }

                                #endregion
                            });
                        });
                    }
                }
            }
            totalMoney = totalCount * amount * 2M;

            if (totalMoney != schemeTotalMoney)
            {
                throw new ArgumentException(string.Format("订单金额不正确,应该为:{0};实际为:{1}。", totalMoney, schemeTotalMoney));
            }
            return(totalCount);
        }
コード例 #19
0
        /// <summary>
        /// 保存用户未投注订单
        /// </summary>
        public string SaveOrderSportsBetting(Sports_BetingInfo info, string userId)
        {
            string schemeId = string.Empty;

            info.GameCode = info.GameCode.ToUpper();
            info.GameType = info.GameType.ToUpper();
            var gameCode = info.GameCode;

            schemeId = BettingHelper.GetSportsBettingSchemeId(gameCode);
            var sportsManager = new Sports_Manager();
            //验证比赛是否还可以投注
            var stopTime = CheckGeneralBettingMatch(sportsManager, gameCode, info.GameType, info.PlayType, info.AnteCodeList, info.IssuseNumber);
            // 检查订单金额是否匹配
            var betCount    = CheckBettingOrderMoney(info.AnteCodeList, gameCode, info.GameType, info.PlayType, info.Amount, info.TotalMoney, stopTime, false, userId);
            var userManager = new UserBalanceManager();
            var user        = userManager.LoadUserRegister(userId);

            //开启事务
            using (DB)
            {
                //biz.BeginTran();
                DB.Begin();
                try
                {
                    AddRunningOrderAndOrderDetail(schemeId, info.BettingCategory, info.GameCode, info.GameType, info.PlayType, true, info.IssuseNumber, info.Amount, betCount, info.TotalMatchCount, info.TotalMoney, stopTime,
                                                  info.SchemeSource, info.Security, SchemeType.SaveScheme, false, true, user.UserId, user.AgentId, info.CurrentBetTime, info.ActivityType, info.Attach, false, 0M, ProgressStatus.Waitting, TicketStatus.Waitting);
                    foreach (var item in info.AnteCodeList)
                    {
                        //sportsManager.AddSports_AnteCode(new C_Sports_AnteCode
                        //{
                        //    SchemeId = schemeId,
                        //    AnteCode = item.AnteCode,
                        //    BonusStatus = (int)BonusStatus.Waitting,
                        //    CreateTime = DateTime.Now,
                        //    GameCode = gameCode,
                        //    GameType = string.IsNullOrEmpty(item.GameType) ? info.GameType.ToUpper() : item.GameType.ToUpper(),
                        //    IsDan = item.IsDan,
                        //    IssuseNumber = info.IssuseNumber,
                        //    MatchId = item.MatchId,
                        //    PlayType = info.PlayType,
                        //    Odds = string.Empty,
                        //});
                        var c_entity = new C_Sports_AnteCode
                        {
                            SchemeId     = schemeId,
                            AnteCode     = item.AnteCode,
                            BonusStatus  = (int)BonusStatus.Waitting,
                            CreateTime   = DateTime.Now,
                            GameCode     = gameCode,
                            GameType     = string.IsNullOrEmpty(item.GameType) ? info.GameType.ToUpper() : item.GameType.ToUpper(),
                            IsDan        = item.IsDan,
                            IssuseNumber = info.IssuseNumber,
                            MatchId      = item.MatchId,
                            PlayType     = info.PlayType,
                            Odds         = string.Empty,
                        };

                        DB.GetDal <C_Sports_AnteCode>().Add(c_entity);
                    }
                    //C_UserSaveOrder
                    var C_UserSaveOrderEntity = new C_UserSaveOrder
                    {
                        SchemeId              = schemeId,
                        UserId                = userId,
                        GameCode              = info.GameCode,
                        GameType              = info.GameType,
                        PlayType              = info.PlayType,
                        SchemeType            = (int)SchemeType.SaveScheme,
                        SchemeSource          = (int)info.SchemeSource,
                        SchemeBettingCategory = (int)info.BettingCategory,
                        ProgressStatus        = (int)ProgressStatus.Waitting,
                        IssuseNumber          = info.IssuseNumber,
                        Amount                = info.Amount,
                        BetCount              = betCount,
                        TotalMoney            = info.TotalMoney,
                        StopTime              = stopTime,
                        CreateTime            = DateTime.Now,
                        StrStopTime           = stopTime.AddMinutes(-5).ToString("yyyyMMddHHmm"),
                    };
                    //用户的订单保存
                    //sportsManager.AddUserSaveOrder(new C_UserSaveOrder
                    //{
                    //    SchemeId = schemeId,
                    //    UserId = userId,
                    //    GameCode = info.GameCode,
                    //    GameType = info.GameType,
                    //    PlayType = info.PlayType,
                    //    SchemeType = SchemeType.SaveScheme,
                    //    SchemeSource = info.SchemeSource,
                    //    SchemeBettingCategory = info.BettingCategory,
                    //    ProgressStatus = ProgressStatus.Waitting,
                    //    IssuseNumber = info.IssuseNumber,
                    //    Amount = info.Amount,
                    //    BetCount = betCount,
                    //    TotalMoney = info.TotalMoney,
                    //    StopTime = stopTime,
                    //    CreateTime = DateTime.Now,
                    //    StrStopTime = stopTime.AddMinutes(-5).ToString("yyyyMMddHHmm"),
                    //});

                    DB.Commit();
                }
                catch (Exception EX)
                {
                    DB.Rollback();
                    throw EX;
                }
            }
            return(schemeId);
        }
コード例 #20
0
        public C_Sports_Order_Running AddRunningOrderAndOrderDetail(string schemeId, SchemeBettingCategory category,
                                                                    string gameCode, string gameType, string playType, bool stopAfterBonus,
                                                                    string issuseNumber, int amount, int betCount, int totalMatchCount, decimal totalMoney, DateTime stopTime,
                                                                    SchemeSource schemeSource, TogetherSchemeSecurity security, SchemeType schemeType, bool canChase, bool isVirtualOrder,
                                                                    string userId, string userAgent, DateTime betTime, ActivityType activityType, string attach, bool isAppend, decimal redBagMoney, ProgressStatus progressStatus, TicketStatus ticketStatus)
        {
            //if (DateTime.Now >= stopTime)
            if (betTime >= stopTime)
            {
                throw new LogicException(string.Format("订单结束时间是{0},订单不能投注。", stopTime.ToString("yyyy-MM-dd HH:mm")));
            }
            var sportsManager = new Sports_Manager();

            if (new string[] { "JCZQ", "JCLQ" }.Contains(gameCode))
            {
                issuseNumber = DateTime.Now.ToString("yyyy-MM-dd");
            }

            DateTime?ticketTime = null;

            if (ticketStatus == TicketStatus.Ticketed)
            {
                ticketTime = DateTime.Now;
            }
            DateTime createtime = DateTime.Now;

            if (betTime != null && betTime.ToString() != "0001/1/1 0:00:00")
            {
                createtime = betTime;
            }
            else
            {
                betTime = DateTime.Now;
            }
            betTime = createtime;
            var order = new C_Sports_Order_Running
            {
                AfterTaxBonusMoney    = 0M,
                AgentId               = userAgent,
                Amount                = amount,
                BonusStatus           = (int)BonusStatus.Waitting,
                CanChase              = canChase,
                IsVirtualOrder        = isVirtualOrder,
                IsPayRebate           = false,
                RealPayRebateMoney    = 0M,
                TotalPayRebateMoney   = 0M,
                CreateTime            = createtime,
                GameCode              = gameCode,
                GameType              = gameType,
                IssuseNumber          = issuseNumber,
                PlayType              = playType,
                PreTaxBonusMoney      = 0M,
                ProgressStatus        = (int)progressStatus,
                SchemeId              = schemeId,
                SchemeType            = (int)schemeType,
                SchemeBettingCategory = (int)category,
                TicketId              = string.Empty,
                TicketLog             = string.Empty,
                TicketStatus          = (int)ticketStatus,
                TotalMatchCount       = totalMatchCount,
                TotalMoney            = totalMoney,
                SuccessMoney          = totalMoney,
                UserId                = userId,
                StopTime              = stopTime,
                SchemeSource          = (int)schemeSource,
                BetCount              = betCount,
                BonusCount            = 0,
                HitMatchCount         = 0,
                RightCount            = 0,
                Error1Count           = 0,
                Error2Count           = 0,
                MaxBonusMoney         = 0,
                MinBonusMoney         = 0,
                Security              = (int)security,
                TicketGateway         = string.Empty,
                TicketProgress        = 1M,
                BetTime               = betTime,
                ExtensionOne          = string.Format("{0}{1}", "3X1_", (int)activityType),
                Attach                = string.IsNullOrEmpty(attach) ? string.Empty : attach.ToUpper(),
                QueryTicketStopTime   = stopTime.AddMinutes(1).ToString("yyyyMMddHHmm"),
                IsAppend              = isAppend,
                RedBagMoney           = redBagMoney,
                IsSplitTickets        = ticketStatus == TicketStatus.Ticketed,
                TicketTime            = ticketTime,
            };

            sportsManager.AddSports_Order_Running(order);

            //订单总表信息
            var orderDetail = new C_OrderDetail
            {
                AfterTaxBonusMoney = 0M,
                AgentId            = userAgent,
                BonusStatus        = (int)BonusStatus.Waitting,
                //  ComplateTime = null,
                CreateTime            = createtime,
                CurrentBettingMoney   = ticketStatus == TicketStatus.Ticketed ? totalMoney : 0M,
                GameCode              = gameCode,
                GameType              = gameType,
                GameTypeName          = BettingHelper.FormatGameType(gameCode, gameType),
                PreTaxBonusMoney      = 0M,
                ProgressStatus        = (int)progressStatus,
                SchemeId              = schemeId,
                SchemeSource          = (int)schemeSource,
                SchemeType            = (int)schemeType,
                SchemeBettingCategory = (int)category,
                StartIssuseNumber     = issuseNumber,
                StopAfterBonus        = stopAfterBonus,
                TicketStatus          = (int)ticketStatus,
                TotalIssuseCount      = 1,
                TotalMoney            = totalMoney,
                UserId = userId,
                CurrentIssuseNumber = issuseNumber,
                IsVirtualOrder      = isVirtualOrder,
                PlayType            = playType,
                Amount              = amount,
                AddMoney            = 0M,
                BetTime             = betTime,
                IsAppend            = isAppend,
                RedBagMoney         = redBagMoney,
                BonusAwardsMoney    = 0M,
                RealPayRebateMoney  = 0M,
                RedBagAwardsMoney   = 0M,
                TotalPayRebateMoney = 0M,
                TicketTime          = ticketTime,
            };

            new SchemeManager().AddOrderDetail(orderDetail);
            return(order);
        }
コード例 #21
0
        public static List <CTZQ_MatchList_AnteCode> GetMatchListToOrderDetail(string issuse, string gameType, string anteCode)
        {
            List <CTZQ_MatchList_AnteCode> ctzqList = new List <CTZQ_MatchList_AnteCode>();

            BettingHelper bizHelper = new BettingHelper();
            var           match     = bizHelper.GetMatchInfoList <CTZQ_MatchInfo>(MatchFile(gameType, issuse));

            if (match != null && match.Count > 0 && !string.IsNullOrEmpty(anteCode))
            {
                var arr         = anteCode.Split('|');
                var anteCodeArr = anteCode.Split('|')[0].Split(',');
                match = match.OrderBy(s => s.OrderNumber).ToList();
                foreach (var item in match)
                {
                    var antecode = anteCodeArr[item.OrderNumber - 1];
                    if (gameType.ToUpper() == "T4CJQ")
                    {
                        antecode = anteCodeArr[item.OrderNumber * 2 - 2] + "," + anteCodeArr[item.OrderNumber * 2 - 1];
                    }
                    if (gameType.ToUpper() == "T6BQC")
                    {
                        antecode = anteCodeArr[item.OrderNumber - 2] + "," + anteCodeArr[item.OrderNumber - 1];
                    }
                    CTZQ_MatchList_AnteCode info = new CTZQ_MatchList_AnteCode();
                    info.AnteCode    = antecode;
                    info.CurrentSp   = string.Empty;
                    info.Detail_RF   = string.Empty;
                    info.Detail_YSZF = string.Empty;
                    if (item.HomeTeamScore != -1)
                    {
                        info.FullResult = item.HomeTeamScore + "-" + item.GuestTeamScore;
                    }
                    else
                    {
                        info.FullResult = string.Empty;
                    }
                    info.GuestTeamId   = item.GuestTeamId;
                    info.GuestTeamName = item.GuestTeamName;
                    if (item.HomeTeamHalfScore != -1)
                    {
                        info.HalfResult = item.HomeTeamHalfScore + "-" + item.GuestTeamHalfScore;
                    }
                    else
                    {
                        info.HalfResult = string.Empty;
                    }
                    info.HomeTeamId   = item.HomeTeamId;
                    info.HomeTeamName = item.HomeTeamName;
                    if (arr.Length > 1)
                    {
                        info.IsDan = arr[1].Split(',').Contains((item.OrderNumber - 1).ToString());
                    }
                    else
                    {
                        info.IsDan = false;
                    }
                    info.IssuseNumber  = item.IssuseNumber;
                    info.LeagueColor   = item.Color;
                    info.LeagueName    = item.MatchName;
                    info.LetBall       = 0;
                    info.MatchId       = item.MatchId.ToString();
                    info.MatchResult   = item.MatchResult;
                    info.MatchResultSp = 0M;
                    info.MatchState    = item.MatchState.ToString();
                    info.StartTime     = Convert.ToDateTime(item.MatchStartTime);
                    info.OrderNumber   = item.OrderNumber;
                    ctzqList.Add(info);
                }
            }
            return(ctzqList);
        }
コード例 #22
0
        public static List <CTZQ_MatchInfo_WEB> MatchList_WEB(string issuse, string gameType)
        {
            BettingHelper bizHelper = new BettingHelper();
            var           match     = bizHelper.GetMatchInfoList <CTZQ_MatchInfo>(MatchFile(gameType, issuse));
            var           odds      = bizHelper.GetMatchInfoList <CTZQ_OddInfo>(OddFiles(gameType, issuse));

            var list = new List <CTZQ_MatchInfo_WEB>();

            foreach (var item in match)
            {
                var res = odds.FirstOrDefault(p => p.Id == item.Id);

                #region 队伍基础信息
                var info = new CTZQ_MatchInfo_WEB()
                {
                    GameCode    = item.GameCode,
                    Color       = item.Color,
                    GameType    = item.GameType,
                    OrderNumber = item.OrderNumber,
                    Id          = item.Id,
                    //UpdateTime = item.UpdateTime.ToString("yyyyMMddHHmmss"),
                    //MatchId = item.MatchId,
                    MatchName = item.MatchName,
                    //MatchResult = item.MatchResult,
                    MatchStartTime = Convert.ToDateTime(item.MatchStartTime),
                    //MatchStartTime = item.MatchStartTime.ToString("yyyyMMddHHmmss"),
                    MatchState = item.MatchState,
                    //HomeTeamHalfScore = item.HomeTeamHalfScore,
                    //HomeTeamId = item.HomeTeamId,
                    HomeTeamName = BettingHelper.GetTeamName(item.HomeTeamName),
                    //HomeTeamScore = item.HomeTeamScore,
                    HomeTeamStanding = item.HomeTeamStanding,
                    //GuestTeamHalfScore = item.GuestTeamHalfScore,
                    //GuestTeamId = item.GuestTeamId,
                    GuestTeamName = BettingHelper.GetTeamName(item.GuestTeamName),
                    //GuestTeamScore = item.GuestTeamScore,
                    GuestTeamStanding = item.GuestTeamStanding,
                    IssuseNumber      = item.IssuseNumber,
                    //Mid = item.Mid,
                    FXId = item.FXId,
                };
                #endregion

                #region 附加平均赔率数据

                if (res != null)
                {
                    info.AverageOdds = res.AverageOdds;
                    if (gameType == "T6BQC")
                    {
                        info.AverageOdds = res.FullAverageOdds + ";" + res.HalfAverageOdds;
                    }
                    //info.KLFlat = res.KLFlat;
                    //info.KLLose = res.KLLose;
                    //info.KLWin = res.KLWin;
                    //info.LSFlat = res.LSFlat;
                    //info.LSLose = res.LSLose;
                    //info.LSWin = res.LSWin;
                    //info.YPSW = res.YPSW;
                }

                #endregion

                list.Add(info);
            }
            return(list);
        }
コード例 #23
0
        /// <summary>
        /// 申请提现
        /// 实际添加提现记录,扣除用户资金
        /// </summary>
        public void RequestWithdraw_Step2(Withdraw_RequestInfo info, string userId, string balancepwd)
        {
            var userManager = new UserBalanceManager();
            var fundManager = new FundManager();
            var user        = userManager.QueryUserRegister(userId);

            if (!user.IsEnable)
            {
                throw new LogicException("用户已禁用");
            }
            //资金密码判断
            string  place       = "Withdraw";
            decimal payoutMoney = info.RequestMoney;
            var     userBalance = userManager.QueryUserBalance(userId);

            if (userBalance == null)
            {
                throw new LogicException("用户帐户不存在 - " + userId);
            }
            if (userBalance.IsSetPwd && !string.IsNullOrEmpty(userBalance.NeedPwdPlace))
            {
                if (userBalance.NeedPwdPlace == "ALL" || userBalance.NeedPwdPlace.Split('|', ',').Contains(place))
                {
                    balancepwd = Encipherment.MD5(string.Format("{0}{1}", balancepwd, _gbKey)).ToUpper();
                    if (!userBalance.Password.ToUpper().Equals(balancepwd))
                    {
                        throw new LogicException("资金密码输入错误");
                    }
                }
            }
            var totalMoney = userBalance.FillMoneyBalance + userBalance.BonusBalance + userBalance.CommissionBalance + userBalance.ExpertsBalance;

            if (totalMoney < payoutMoney)
            {
                throw new LogicException(string.Format("用户总金额小于 {0:N2}元。", payoutMoney));
            }
            var orderId      = BettingHelper.GetWithdrawId();
            var maxTimes     = 3;
            var currentTimes = fundManager.QueryTodayWithdrawTimes(userId);

            if (currentTimes >= maxTimes)
            {
                throw new LogicException(string.Format("每日只能提现{0}次", maxTimes));
            }
            DB.Begin();
            try
            {
                var resonseMoney = 0M;

                BusinessHelper businessHelper = new BusinessHelper();
                var            category       = businessHelper.Payout_To_Frozen_Withdraw(fundManager, userManager, userBalance, BusinessHelper.FundCategory_RequestWithdraw, userId, orderId, info.RequestMoney
                                                                                         , string.Format("申请提现:{0:N2}元", info.RequestMoney), "Withdraw", balancepwd, out resonseMoney);


                fundManager.AddWithdraw(new C_Withdraw
                {
                    OrderId        = orderId,
                    BankCardNumber = info.BankCardNumber,
                    BankCode       = info.BankCode,
                    BankName       = info.BankName,
                    BankSubName    = info.BankSubName,
                    CityName       = info.CityName,
                    RequestTime    = DateTime.Now,
                    ProvinceName   = info.ProvinceName,
                    UserId         = userId,
                    RequestMoney   = info.RequestMoney,
                    WithdrawAgent  = (int)info.WithdrawAgent,
                    Status         = (int)WithdrawStatus.Requesting,

                    WithdrawCategory = (int)category,
                    ResponseMoney    = resonseMoney,
                });

                //查询到账金额
                //var wi = GetWithdrawById(orderId);


                //判断DP是否可用
                var cacheDataBusiness = new CacheDataBusiness();
                var iscoreConfigInfo  = cacheDataBusiness.QueryCoreConfigByKey("DP.Isvailable");
                //获取当前系统时间(4-5点DP关闭)
                var      datetime    = System.DateTime.Now;
                var      nowHourAndM = datetime.ToString("t");
                var      datestar    = cacheDataBusiness.QueryCoreConfigByKey("DP.StartTime");
                var      dateend     = cacheDataBusiness.QueryCoreConfigByKey("DP.EndTime");
                DateTime dstar       = Convert.ToDateTime(datestar.ConfigValue);
                DateTime dend        = Convert.ToDateTime(dateend.ConfigValue);

                if (iscoreConfigInfo.ConfigValue == "1")
                {
                    if (datetime <= dstar || datetime >= dend)
                    {
                        //发送消息到DP
                        //判断是否发送到DP
                        String htmls = info.BankName;
                        //获取Dp提现最大限额
                        var coreConfigInfo = cacheDataBusiness.QueryCoreConfigByKey("DP.WithdrawHigthMoney");
                        //获取Dp给的公司编码
                        var coreConfigInfoC = cacheDataBusiness.QueryCoreConfigByKey("DP.Companyid");
                        //获取DP给的key
                        var ck = cacheDataBusiness.QueryCoreConfigByKey("DP.Key");
                        //获取DP访问路径
                        var     cw = cacheDataBusiness.QueryCoreConfigByKey("DP.WebUrl");
                        decimal withdrawHigthMoney = decimal.Parse(coreConfigInfo.ConfigValue);
                        //var writer = Common.Log.LogWriterGetter.GetLogWriter();
                        //writer.Write("关于DP日志", "关于DP日志", Common.Log.LogType.Information, "关于DP日志", "withdrawHigthMoney===============" + withdrawHigthMoney);

                        String str = String.Format("BankCardNumber=" + info.BankCardNumber + ",BankCode=" + info.BankCode + ",BankName=" + info.BankName + ",BankSubName=" + info.BankSubName + ",CityName=" + info.CityName + ",ProvinceName=" + info.ProvinceName + ",RequestMoney=" + info.RequestMoney + ",userRealName=" + info.userRealName + ",WithdrawAgent=" + info.WithdrawAgent + "");
                        //writer.Write("输出参数写测试用例", "输出参数写测试用例", Common.Log.LogType.Information, "输出参数写测试用例", "输出参数写测试用例===============" + str);
                        WithdrawApplyInfo wai = new WithdrawApplyInfo();
                        wai.company_order_num  = orderId;
                        wai.company_user       = userId;
                        wai.card_name          = info.userRealName;
                        wai.card_num           = info.BankCardNumber;
                        wai.issue_bank_name    = info.BankName;
                        wai.issue_bank_address = info.BankSubName;
                        wai.memo = "";
                        String amount = resonseMoney.ToString();
                        wai.amount = Math.Round(decimal.Parse(amount), 2);

                        wai.company_id = Int32.Parse(coreConfigInfoC.ConfigValue);
                        String  dpresult    = null;
                        decimal dpHighmoney = decimal.Parse(coreConfigInfo.ConfigValue);
                        if (info.RequestMoney < withdrawHigthMoney)
                        {
                            if (htmls.Contains("工商银行"))
                            {
                                int bankid = (int)BankCode.ICBC;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("招商银行"))
                            {
                                int bankid = (int)BankCode.CMB;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("建设银行"))
                            {
                                int bankid = (int)BankCode.CCB;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("农业银行"))
                            {
                                int bankid = (int)BankCode.ABC;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("中国银行"))
                            {
                                int bankid = (int)BankCode.BOC;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("交通银行"))
                            {
                                int bankid = (int)BankCode.BCM;
                                wai.bank_id = bankid.ToString();
                            }

                            else if (htmls.Contains("中国民生银行") || htmls.Contains("民生银行"))
                            {
                                int bankid = (int)BankCode.CMBC;
                                wai.bank_id = bankid.ToString();
                            }

                            else if (htmls.Contains("中信银行"))
                            {
                                int bankid = (int)BankCode.ECC;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("浦东发展银行") || htmls.Contains("浦发") || htmls.Contains("浦东"))
                            {
                                int bankid = (int)BankCode.SPDB;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("邮政储蓄") || htmls.Contains("中国邮政"))
                            {
                                int bankid = (int)BankCode.PSBC;
                                wai.bank_id = bankid.ToString();
                            }

                            else if (htmls.Contains("光大银行"))
                            {
                                int bankid = (int)BankCode.CEB;
                                wai.bank_id = bankid.ToString();
                            }

                            else if (htmls.Contains("平安银行"))
                            {
                                int bankid = (int)BankCode.PINGAN;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("广东发展银行") || htmls.Contains("广发银行"))
                            {
                                int bankid = (int)BankCode.CGB;
                                wai.bank_id = bankid.ToString();
                            }
                            else if (htmls.Contains("华夏银行"))
                            {
                                int bankid = (int)BankCode.HXB;
                                wai.bank_id = bankid.ToString();
                            }

                            else if (htmls.Contains("兴业银行"))
                            {
                                int bankid = (int)BankCode.CIB;
                                wai.bank_id = bankid.ToString();
                            }
                            else
                            {
                                var pListe = new List <string>();
                                pListe.Add(string.Format("{0}={1}", "[OrderId]", orderId));
                                pListe.Add(string.Format("{0}={1}", "[UserName]", user.DisplayName));
                                pListe.Add(string.Format("{0}={1}", "[RequestMoney]", info.RequestMoney));
                                pListe.Add(string.Format("{0}={1}", "[ResponseMoney]", resonseMoney));
                                //发送短信
                                new SiteMessageControllBusiness().DoSendSiteMessage(userId, "", "ON_User_Request_Withdraw", pListe.ToArray());
                                DB.Commit();
                                //刷新余额
                                BusinessHelper.RefreshRedisUserBalance(userId);
                                return;
                            }
                            dpresult = Withdrawal(wai, ck.ConfigValue, cw.ConfigValue);
                            if (dpresult == null || dpresult == "")
                            {
                                DB.Rollback();
                                throw new Exception("服务繁忙,请稍后重试,如多次尝试失败,请在客服服务时间内联系在线客服咨询");
                            }
                        }
                    }
                }

                #region 发送站内消息:手机短信或站内信
                var pList = new List <string>();
                pList.Add(string.Format("{0}={1}", "[OrderId]", orderId));
                pList.Add(string.Format("{0}={1}", "[UserName]", ""));
                pList.Add(string.Format("{0}={1}", "[RequestMoney]", info.RequestMoney));
                pList.Add(string.Format("{0}={1}", "[ResponseMoney]", resonseMoney));
                //发送短信
                new SiteMessageControllBusiness().DoSendSiteMessage(userId, "", "ON_User_Request_Withdraw", pList.ToArray());

                #endregion

                DB.Commit();
                //刷新余额
                BusinessHelper.RefreshRedisUserBalance(userId);
            }
            catch (Exception ex)
            {
                DB.Rollback();
                throw ex;
            }
        }
コード例 #24
0
        /*
         * [12:10:06] ios app: 索引7位是1111,1标识未开玩法,0表示开售玩法,第18位,1000表示是否开单关。0标识开单关
         * [12:10:29] ios app: 竞彩篮球标记顺序:胜负  让分胜负  大小分  胜分差
         * SF是1
         *  RFSF是2
         *  SFC是3
         *  DXF 是4
         */
        /// <summary>
        /// 转换JCLQjsoN
        /// </summary>
        /// <returns></returns>
        public static string GetJson(string gametype, string matchDate = null)
        {
            var jcLq = GetJCLQHHDGList();
            //var jcLq = MatchList_WEB(gametype, matchDate);
            StringBuilder json   = new StringBuilder("[");
            string        index7 = "";

            foreach (var item in jcLq)
            {
                index7 = "";
                json.Append("[");
                json.AppendFormat("\"{0}\",", item.MatchId);
                json.AppendFormat("\"{0}{1}\",", BettingHelper.Week(), item.MatchNumber);
                json.AppendFormat("\"{0}\",", item.LeagueName);
                json.AppendFormat("\"{0}\",", item.HomeTeamName);
                json.AppendFormat("\"{0}\",", item.GuestTeamName);
                json.AppendFormat("\"{0}\",", item.StartDateTime);
                json.AppendFormat("\"{0}\",", item.FSStopBettingTime);
                if (item.SF_WinSP == 0 || item.SF_LoseSP == 0)
                {
                    index7 += "1";
                }
                else
                {
                    index7 += "0";
                }
                if (item.RF_WinSP == 0 || item.RF_LoseSP == 0)
                {
                    index7 += "1";
                }
                else
                {
                    index7 += "0";
                }
                if (item.HomeWin1_5 == 0)
                {
                    index7 += "1";
                }
                else
                {
                    index7 += "0";
                }
                if (item.DF == 0 || item.XF == 0)
                {
                    index7 += "1";
                }
                else
                {
                    index7 += "0";
                }
                json.AppendFormat("\"{0}\",", index7);
                //json.Append("\"00000\",");
                json.Append("\"-\",");
                json.Append("\"-\",");
                //json.Append("\"-\",");
                json.Append("\"-\",");
                json.Append("\"-\",");
                json.Append("\"-\",");
                json.Append("\"\",");
                json.Append("\"\",");
                json.Append("\"[");
                //非让分
                json.AppendFormat("[{0},{1}],", item.SF_WinSP, item.SF_LoseSP);
                //让分
                json.AppendFormat("[{0},{1},{2}],", item.RF, item.RF_WinSP, item.RF_LoseSP);
                //大小分
                json.AppendFormat("[{0},{1},{2}],", item.YSZF, item.DF, item.XF);
                //身负差
                json.AppendFormat("[{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}],", item.HomeWin1_5, item.HomeWin6_10, item.HomeWin11_15, item.HomeWin16_20, item.HomeWin21_25, item.HomeWin26, item.GuestWin1_5, item.GuestWin6_10, item.GuestWin11_15, item.GuestWin16_20, item.GuestWin21_25, item.GuestWin26);
                json.Append("[],[],[],[]]\",");
                json.AppendFormat("\"{0}\",", BettingHelper.GetLeagueColor());
                json.AppendFormat("\"{0}\",", item.MatchData);
                if (item.State_HHDG == "234")
                {
                    json.Append("\"1000\"");
                }
                else if (item.State_HHDG == "3")
                {
                    json.Append("\"1101\"");
                }
                else
                {
                    json.Append("\"1101\"");
                }
                //switch (item.State_HHDG)
                //{
                //    case "1"://SF是1
                //        json.Append("\"0101\"");
                //        break;
                //    case "2"://RFSF是2
                //        json.Append("\"1001\"");
                //        break;
                //    case "3"://SFC是3
                //        json.Append("\"1101\"");
                //        break;
                //    case "4"://DXF 是4
                //        json.Append("\"1100\"");
                //        break;
                //    default:
                //        json.Append("\"1101\"");
                //        break;

                //}
                //json.Append("\"1000\"");
                json.Append("],");
            }
            string data = json.ToString().TrimEnd(',');

            //json.Append("]");
            return(data + "]");
        }
コード例 #25
0
        /// <summary>
        /// 获取混合单关数据
        /// </summary>
        /// <param name="gameType"></param>
        /// <param name="matchDate"></param>
        /// <param name="isLeftJoin"></param>
        /// <returns></returns>
        public static List <JCLQ_MatchInfo_WEB> GetJCLQHHDGList()
        {
            BettingHelper bizHelper = new BettingHelper();
            var           match     = bizHelper.GetMatchInfoList <JCLQHHDGBase>(GetFilePath("New/Match_HHDG_List"));
            var           list      = new List <JCLQ_MatchInfo_WEB>();

            match = match.Where(t => long.Parse(Convert.ToDateTime(t.FSStopBettingTime).ToString("yyyyMMddHHmmss")) > long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"))).ToList();
            if (match != null && match.Count > 0)
            {
                foreach (var item in match)
                {
                    var matchDataTime = ConvertHelper.ConvertStrToDateTime("20" + item.MatchData);
                    var info          = new JCLQ_MatchInfo_WEB()
                    {
                        //CreateTime = item.CreateTime.ToString("yyyyMMddHHmmss"),
                        //DSStopBettingTime = item.DSStopBettingTime.ToString("yyyyMMddHHmmss"),
                        MatcheDateTime = matchDataTime,
                        //FSStopBettingTime = bizHelper.ConvertDateTimeInt(Convert.ToDateTime(item.FSStopBettingTime)).ToString(),
                        FSStopBettingTime = item.FSStopBettingTime,
                        //FSStopBettingTime = item.FSStopBettingTime.ToString("yyyyMMddHHmmss"),
                        //GuestTeamId = item.GuestTeamId,
                        GuestTeamName = BettingHelper.GetTeamName(item.GuestTeamName),
                        HomeTeamName  = BettingHelper.GetTeamName(item.HomeTeamName),
                        //HomeTeamId = item.HomeTeamId,
                        LeagueColor = item.LeagueColor.Contains("#") ? item.LeagueColor : "#" + "DB7917",
                        //LeagueId = item.LeagueId,
                        LeagueName  = item.LeagueName,
                        MatchIdName = item.MatchIdName,
                        //StartDateTime = bizHelper.ConvertDateTimeInt(Convert.ToDateTime(item.StartDateTime)).ToString(),
                        StartDateTime = Convert.ToDateTime(item.StartDateTime),
                        //StartDateTime = item.StartDateTime.ToString("yyyyMMddHHmmss"),
                        MatchData   = item.MatchData,
                        MatchId     = item.MatchId,
                        MatchNumber = item.MatchNumber,
                        //AverageLose = item.AverageLose,
                        //AverageWin = item.AverageWin,
                        //Mid = item.Mid,
                        FXId           = item.FXId,
                        State_HHDG     = item.State,
                        PrivilegesType = item.PrivilegesType == null ? string.Empty : item.PrivilegesType,
                    };

                    #region 附加胜负sp数据

                    if (item.SF != null)
                    {
                        var sfcjson = JsonHelper.Deserialize <JCLQ_SF_SPInfo>(item.SF);
                        if (sfcjson != null)
                        {
                            info.SF_WinSP  = sfcjson.WinSP;
                            info.SF_LoseSP = sfcjson.LoseSP;
                        }
                    }
                    #endregion


                    #region 附加让分胜负sp数据
                    if (item.RFSF != null)
                    {
                        var json = JsonHelper.Deserialize <JCLQ_RFSF_SPInfo>(item.RFSF);
                        if (json != null)
                        {
                            info.RF        = json.RF;
                            info.RF_LoseSP = json.LoseSP;
                            info.RF_WinSP  = json.WinSP;
                        }
                    }
                    #endregion

                    #region 附加胜分差sp数据

                    if (item.SFC != null)
                    {
                        var json = JsonHelper.Deserialize <JCLQ_SFC_SPInfo>(item.SFC);
                        if (json != null)
                        {
                            info.GuestWin1_5   = json.GuestWin1_5;
                            info.GuestWin11_15 = json.GuestWin11_15;
                            info.GuestWin16_20 = json.GuestWin16_20;
                            info.GuestWin21_25 = json.GuestWin21_25;
                            info.GuestWin26    = json.GuestWin26;
                            info.GuestWin6_10  = json.GuestWin6_10;

                            info.HomeWin1_5   = json.HomeWin1_5;
                            info.HomeWin11_15 = json.HomeWin11_15;
                            info.HomeWin16_20 = json.HomeWin16_20;
                            info.HomeWin21_25 = json.HomeWin21_25;
                            info.HomeWin26    = json.HomeWin26;
                            info.HomeWin6_10  = json.HomeWin6_10;
                        }
                    }

                    #endregion

                    #region 附加大小分sp数据

                    if (item.DXF != null)
                    {
                        var json = JsonHelper.Deserialize <JCLQ_DXF_SPInfo>(item.DXF);
                        if (json != null)
                        {
                            info.DF   = json.DF;
                            info.XF   = json.XF;
                            info.YSZF = json.YSZF;
                        }
                    }

                    #endregion

                    list.Add(info);
                }
            }
            return(list);
        }
コード例 #26
0
        /// <summary>
        /// 查询队伍信息与队伍比赛结果信息 - WEB页面使用
        /// - 合并队伍基础信息与队伍结果信息
        /// - 合并各玩法SP数据
        /// </summary>
        /// <param name="service">HttpServerUtilityBase对象</param>
        /// <param name="type">玩法类型</param>
        /// <param name="matchDate">查询日期</param>
        /// <param name="isLeftJoin">是否查询没有结果的队伍比赛信息</param>
        /// <returns>队伍信息及比赛结果信息</returns>
        public static List <JCLQ_MatchInfo_WEB> MatchList_WEB(string gameType, string matchDate = null, bool isLeftJoin = true)
        {
            BettingHelper bizHelper   = new BettingHelper();
            var           match       = bizHelper.GetMatchInfoList <JCLQ_MatchInfo>(MatchFile(gameType, matchDate));
            var           matchresult = bizHelper.GetMatchInfoList <JCLQ_MatchResultInfo>(MatchResultFile(matchDate));
            //var sp_sf =bizHelper.GetMatchInfoList<JCLQ_SF_SPInfo>(SPFile("SF", matchDate)); //胜负sp数据
            //var sp_rfsf = bizHelper.GetMatchInfoList<JCLQ_RFSF_SPInfo>(SPFile("RFSF", matchDate)); //让分胜负sp数据
            //var sp_sfc = bizHelper.GetMatchInfoList<JCLQ_SFC_SPInfo>(SPFile("SFC", matchDate)); //胜分差sp数据
            //var sp_dxf = bizHelper.GetMatchInfoList<JCLQ_DXF_SPInfo>(SPFile("DXF", matchDate)); //大小分sp数据

            var sp_sf   = bizHelper.GetMatchInfoList <JCLQ_SF_SPInfo>(SPFile(gameType, matchDate));   //胜负sp数据
            var sp_rfsf = bizHelper.GetMatchInfoList <JCLQ_RFSF_SPInfo>(SPFile(gameType, matchDate)); //让分胜负sp数据
            var sp_sfc  = bizHelper.GetMatchInfoList <JCLQ_SFC_SPInfo>(SPFile(gameType, matchDate));  //胜分差sp数据
            var sp_dxf  = bizHelper.GetMatchInfoList <JCLQ_DXF_SPInfo>(SPFile(gameType, matchDate));  //大小分sp数据

            var list = new List <JCLQ_MatchInfo_WEB>();

            match = match.Where(t => long.Parse(Convert.ToDateTime(t.FSStopBettingTime).ToString("yyyyMMddHHmmss")) > long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"))).ToList();
            foreach (var item in match)
            {
                #region 队伍基础信息

                var matchDataTime = ConvertHelper.ConvertStrToDateTime("20" + item.MatchData);
                var info          = new JCLQ_MatchInfo_WEB()
                {
                    //CreateTime = item.CreateTime.ToString("yyyyMMddHHmmss"),
                    //DSStopBettingTime = item.DSStopBettingTime.ToString("yyyyMMddHHmmss"),
                    MatcheDateTime = matchDataTime,
                    //FSStopBettingTime = bizHelper.ConvertDateTimeInt(Convert.ToDateTime(item.FSStopBettingTime)).ToString(),
                    FSStopBettingTime = item.FSStopBettingTime,
                    //FSStopBettingTime = item.FSStopBettingTime.ToString("yyyyMMddHHmmss"),
                    //GuestTeamId = item.GuestTeamId,
                    GuestTeamName = BettingHelper.GetTeamName(item.GuestTeamName),
                    HomeTeamName  = BettingHelper.GetTeamName(item.HomeTeamName),
                    //HomeTeamId = item.HomeTeamId,
                    LeagueColor = item.LeagueColor.Contains("#") ? item.LeagueColor : "#" + "DB7917",
                    //LeagueId = item.LeagueId,
                    LeagueName    = item.LeagueName,
                    MatchIdName   = item.MatchIdName,
                    StartDateTime = Convert.ToDateTime(item.StartDateTime),
                    //StartDateTime = item.StartDateTime.ToString("yyyyMMddHHmmss"),
                    MatchData   = item.MatchData,
                    MatchId     = item.MatchId,
                    MatchNumber = item.MatchNumber,
                    //AverageLose = item.AverageLose,
                    //AverageWin = item.AverageWin,
                    //Mid = item.Mid,
                    FXId           = item.FXId,
                    PrivilegesType = item.PrivilegesType == null ? string.Empty : item.PrivilegesType,
                    State_HHDG     = item.State
                };
                #endregion

                #region 附加队伍结果信息
                var res = matchresult.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (res != null)
                {
                    //info.DXF_Result = res.DXF_Result;
                    //info.DXF_SP = res.DXF_SP;
                    //info.DXF_Trend = res.DXF_Trend;
                    //info.GuestScore = res.GuestScore;
                    //info.HomeScore = res.HomeScore;
                    //info.RFSF_Result = res.RFSF_Result;
                    //info.RFSF_SP = res.RFSF_SP;
                    //info.RFSF_Trend = res.RFSF_Trend;
                    //info.SF_Result = res.SF_Result;
                    //info.SF_SP = res.SF_SP;
                    //info.SFC_Result = res.SFC_Result;
                    //info.SFC_SP = res.SFC_SP;
                    //info.MatchState = res.MatchState;
                }
                else if (!isLeftJoin)
                {
                    continue;
                }
                #endregion

                #region 附加胜负sp数据

                var sp_sf_item = sp_sf.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (gameType.ToLower() == "hh")
                {
                    if (sp_sf_item != null && sp_sf_item.SF != null)
                    {
                        var json = JsonHelper.Deserialize <JCLQ_SF_SPInfo>(sp_sf_item.SF);
                        info.SF_WinSP  = json.WinSP;
                        info.SF_LoseSP = json.LoseSP;
                        //info.PrivilegesType = json.PrivilegesType == null ? string.Empty : json.PrivilegesType;
                    }
                }
                else
                {
                    if (sp_sf_item != null)
                    {
                        info.SF_WinSP  = sp_sf_item.WinSP;
                        info.SF_LoseSP = sp_sf_item.LoseSP;
                        //info.PrivilegesType = sp_sf_item.PrivilegesType == null ? string.Empty : sp_sf_item.PrivilegesType;
                    }
                }

                #endregion

                #region 附加让分胜负sp数据
                var sp_rfsf_item = sp_rfsf.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (gameType.ToLower() == "hh")
                {
                    if (sp_rfsf_item != null && sp_rfsf_item.RFSF != null)
                    {
                        var json = JsonHelper.Deserialize <JCLQ_RFSF_SPInfo>(sp_rfsf_item.RFSF);
                        info.RF        = json.RF;
                        info.RF_LoseSP = json.LoseSP;
                        info.RF_WinSP  = json.WinSP;
                        //info.PrivilegesType = json.PrivilegesType == null ? string.Empty : json.PrivilegesType;
                    }
                }
                else
                {
                    if (sp_rfsf_item != null)
                    {
                        info.RF        = sp_rfsf_item.RF;
                        info.RF_LoseSP = sp_rfsf_item.LoseSP;
                        info.RF_WinSP  = sp_rfsf_item.WinSP;
                        //info.PrivilegesType = sp_rfsf_item.PrivilegesType == null ? string.Empty : sp_rfsf_item.PrivilegesType;
                    }
                }
                #endregion

                #region 附加胜分差sp数据
                var sp_sfc_item = sp_sfc.FirstOrDefault(p => p.MatchId == item.MatchId);

                if (gameType.ToLower() == "hh")
                {
                    if (sp_sfc_item != null && sp_sfc_item.SFC != null)
                    {
                        var json = JsonHelper.Deserialize <JCLQ_SFC_SPInfo>(sp_sfc_item.SFC);
                        info.GuestWin1_5   = json.GuestWin1_5;
                        info.GuestWin11_15 = json.GuestWin11_15;
                        info.GuestWin16_20 = json.GuestWin16_20;
                        info.GuestWin21_25 = json.GuestWin21_25;
                        info.GuestWin26    = json.GuestWin26;
                        info.GuestWin6_10  = json.GuestWin6_10;

                        info.HomeWin1_5   = json.HomeWin1_5;
                        info.HomeWin11_15 = json.HomeWin11_15;
                        info.HomeWin16_20 = json.HomeWin16_20;
                        info.HomeWin21_25 = json.HomeWin21_25;
                        info.HomeWin26    = json.HomeWin26;
                        info.HomeWin6_10  = json.HomeWin6_10;
                        //info.PrivilegesType = json.PrivilegesType == null ? string.Empty : json.PrivilegesType;
                    }
                }
                else
                {
                    if (sp_sfc_item != null)
                    {
                        info.GuestWin1_5   = sp_sfc_item.GuestWin1_5;
                        info.GuestWin11_15 = sp_sfc_item.GuestWin11_15;
                        info.GuestWin16_20 = sp_sfc_item.GuestWin16_20;
                        info.GuestWin21_25 = sp_sfc_item.GuestWin21_25;
                        info.GuestWin26    = sp_sfc_item.GuestWin26;
                        info.GuestWin6_10  = sp_sfc_item.GuestWin6_10;

                        info.HomeWin1_5   = sp_sfc_item.HomeWin1_5;
                        info.HomeWin11_15 = sp_sfc_item.HomeWin11_15;
                        info.HomeWin16_20 = sp_sfc_item.HomeWin16_20;
                        info.HomeWin21_25 = sp_sfc_item.HomeWin21_25;
                        info.HomeWin26    = sp_sfc_item.HomeWin26;
                        info.HomeWin6_10  = sp_sfc_item.HomeWin6_10;
                        //info.PrivilegesType = sp_sfc_item.PrivilegesType == null ? string.Empty : sp_sfc_item.PrivilegesType;
                    }
                }

                #endregion

                #region 附加大小分sp数据

                var sp_dxf_item = sp_dxf.FirstOrDefault(p => p.MatchId == item.MatchId);
                if (gameType.ToLower() == "hh")
                {
                    if (sp_dxf_item != null && sp_dxf_item.DXF != null)
                    {
                        var json = JsonHelper.Deserialize <JCLQ_DXF_SPInfo>(sp_dxf_item.DXF);
                        info.DF   = json.DF;
                        info.XF   = json.XF;
                        info.YSZF = json.YSZF;
                        //info.PrivilegesType = json.PrivilegesType == null ? string.Empty : json.PrivilegesType;
                    }
                }
                else
                {
                    if (sp_dxf_item != null)
                    {
                        info.DF   = sp_dxf_item.DF;
                        info.XF   = sp_dxf_item.XF;
                        info.YSZF = sp_dxf_item.YSZF;
                        //info.PrivilegesType = sp_dxf_item.PrivilegesType == null ? string.Empty : sp_dxf_item.PrivilegesType;
                    }
                }

                #endregion

                list.Add(info);
            }
            return(list);
        }
コード例 #27
0
        public async Task Execute(IJobExecutionContext context)
        {
            var bet = this.bettingService.Get(model => model.Status == BettingStatus.Waiting)
                      .OrderBy(model => model.FinishDate).FirstOrDefault();

            if (bet != null)
            {
                decimal?currentExchange;

                do
                {
                    currentExchange = this.bettingService.CurrentExchange;
                }while (!currentExchange.HasValue);

                var sideWin = currentExchange.Value > bet.ExchangeRate;

                // Set status and who win
                bet.Result = sideWin;
                bet.Status = BettingStatus.Done;
                await this.bettingService.Update(bet);

                var bankMore = this.bettingService.GetBank(bet.BettingId, true);
                var bankLess = this.bettingService.GetBank(bet.BettingId, false);

                var bids = this.bidService.Get(
                    model => model.BettingId == bet.BettingId && !model.Status &&
                    model.PaymentStatus == PaymentStatus.Confirmed);

                // select ids of addresses where can be coins
                var ids = bids.Select(model => model.BidId).ToList();

                // use first address as basic
                ids.Add(this.BasicAddressId);

                foreach (var bid in bids)
                {
                    if (bid.Side == sideWin)
                    {
                        var award = sideWin
                                        ? BettingHelper.GetAmountPayment(bid.Amount, bid.Coefficient, bankMore, bankLess)
                                        : BettingHelper.GetAmountPayment(bid.Amount, bid.Coefficient, bankLess, bankMore);

                        try
                        {
                            var address = this.walletService.GetById(bid.WalletId);
                            if (address != null)
                            {
                                // send to winners and send remainder sum to first address
                                this.bitcoinWalletService.Send(address.Address, award, ids, this.BasicAddressId);

                                bid.Paid = true;


                                var user = await this.userManager.FindByIdAsync(bid.UserId);

                                await this.emailSender.SendEmailAsync(
                                    user.Email,
                                    "Bitcoin app payment",
                                    "You win " + (decimal)award + " on your wallet " + bid.PaymentAddress);
                            }
                        }
                        catch (Exception e)
                        {
                            // ignored
                        }
                    }

                    bid.Status = true;

                    this.bidService.Update(bid);
                }
            }
        }
コード例 #28
0
ファイル: Json_JCZQ.cs プロジェクト: BULUSDUAN/lottery_PC
        /*
         * [2016/8/5 22:36:57] ios app: /*判断是否单关字符串,五位10001,代表不让球胜平负 进球数 比分 半全场 让球是否单关,0是1否*/

        /// <summary>
        /// 转换JCZQjson
        /// </summary>
        /// <returns></returns>
        public static string GetJson()
        {
            var           jczq = GetJCZQHHDGList();
            StringBuilder json = new StringBuilder("[");

            foreach (var item in jczq)
            {
                json.Append("[");
                json.AppendFormat("\"{0}\",", item.MatchId);
                json.AppendFormat("\"{0}{1}\",", BettingHelper.GetWeek(Convert.ToDateTime(item.FSStopBettingTime)), item.MatchNumber);
                json.AppendFormat("\"{0}\",", item.LeagueName);
                json.AppendFormat("\"{0}\",", item.HomeTeamName);
                json.AppendFormat("\"{0}\",", item.GuestTeamName);
                json.AppendFormat("\"{0}\",", item.LetBall);
                json.AppendFormat("\"{0}\",", item.StartDateTime);
                json.AppendFormat("\"{0}\",", item.FSStopBettingTime);
                //json.Append("\"00000\",");
                json.AppendFormat("\"{0}{1}{2}{3}{4}\",", item.NoSaleState_BRQSPF, item.NoSaleState_ZJQ, item.NoSaleState_BF, item.NoSaleState_BQC, item.NoSaleState_SPF);
                json.Append("\"-\",");
                json.Append("\"-\",");
                json.Append("\"-\",");
                json.Append("\"-\",");
                json.Append("\"-\",");
                json.Append("\"-\",");
                json.Append("\",,\",");

                //sp start
                json.Append("\"[");
                //不让球
                json.AppendFormat("[{0},{1},{2}],", item.SP_Win_Odds_BRQ, item.SP_Flat_Odds_BRQ, item.SP_Lose_Odds_BRQ);
                //让球赔率
                json.AppendFormat("[{0},{1},{2}],", item.SP_Win_Odds, item.SP_Flat_Odds, item.SP_Lose_Odds);
                //让球数
                json.AppendFormat("[{0},{1},{2},{3},{4},{5},{6},{7}],", item.JinQiu_0_Odds, item.JinQiu_1_Odds, item.JinQiu_2_Odds, item.JinQiu_3_Odds, item.JinQiu_4_Odds, item.JinQiu_5_Odds, item.JinQiu_6_Odds, item.JinQiu_7_Odds);
                //比分,
                json.AppendFormat("[{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30}],", item.S_10, item.S_20, item.S_21, item.S_30, item.S_31, item.S_32, item.S_40, item.S_41, item.S_42, item.S_50, item.S_51, item.S_52, item.S_QT, item.P_00, item.P_11, item.P_22, item.P_33, item.P_QT, item.F_01, item.F_02, item.F_12, item.F_03, item.F_13, item.F_23, item.F_04, item.F_14, item.F_24, item.F_05, item.F_15, item.F_25, item.F_QT);
                //半全场
                json.AppendFormat("[{0},{1},{2},{3},{4},{5},{6},{7},{8}],", item.SH_SH_Odds, item.SH_P_Odds, item.SH_F_Odds, item.P_SH_Odds, item.P_P_Odds, item.P_F_Odds, item.F_SH_Odds, item.F_P_Odds, item.F_F_Odds);
                json.Append("[],[],[],[]]\",");
                //sp end
                json.AppendFormat("\"{0}\",", item.LeagueColor);//BettingHelper.GetLeagueColor()
                json.AppendFormat("\"{0}\",", item.MatchData);
                //2354 354  代表不让球胜平负 进球数 比分 半全场 让球是否单关,0是1否
                if (item.State_HHDG == "354")
                {
                    json.Append("\"10001\",");
                }
                else if (item.State_HHDG == "2354")
                {
                    json.Append("\"00001\",");
                }
                else
                {
                    json.Append("\"10001\",");
                }

                json.Append("\"http://live.159cai.com/odds/match/928061?lotyid=6&from=iosapp#1\"");
                json.Append("],");
            }
            string data = json.ToString().TrimEnd(',');

            //json.Append("]");
            return(data + "]");
        }
コード例 #29
0
        /// <summary>
        /// 查询队伍信息与队伍比赛结果信息 - WEB页面使用
        /// - 合并队伍基础信息与队伍结果信息
        /// - 合并各玩法SP数据
        /// </summary>
        /// <param name="service">HttpServerUtilityBase对象</param>
        /// <param name="issuse">期数</param>
        /// <param name="isLeftJoin">是否查询没有结果的队伍比赛信息</param>
        /// <returns>队伍信息及比赛结果信息</returns>
        public static List <BJDC_MatchInfo_WEB> MatchList_WEB(string issuse, string gameType, bool isLeftJoin = true)
        {
            BettingHelper bizHelper   = new BettingHelper();
            var           match       = bizHelper.GetMatchInfoList <BJDC_MatchInfo>(MatchFile(issuse)).Where(p => p.MatchState == BJDCMatchState.Sales).ToList();
            var           matchresult = bizHelper.GetMatchInfoList <BJDC_MatchResultInfo>(MatchResultFile(issuse));
            var           sp_spf      = bizHelper.GetMatchInfoList <BJDC_SPF_SpInfo>(SPFile(gameType, issuse));  //胜平负sp数据
            var           sp_zjq      = bizHelper.GetMatchInfoList <BJDC_ZJQ_SpInfo>(SPFile(gameType, issuse));  //总进球sp数据
            var           sp_sxds     = bizHelper.GetMatchInfoList <BJDC_SXDS_SpInfo>(SPFile(gameType, issuse)); //上下单双sp数据
            var           sp_bf       = bizHelper.GetMatchInfoList <BJDC_BF_SpInfo>(SPFile(gameType, issuse));   //比分sp数据
            var           sp_bqc      = bizHelper.GetMatchInfoList <BJDC_BQC_SpInfo>(SPFile(gameType, issuse));  //半全场sp数据

            match = match.Where(s => long.Parse(Convert.ToDateTime(s.LocalStopTime).ToString("yyyyMMddHHmmss")) > long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"))).ToList();
            var list = new List <BJDC_MatchInfo_WEB>();

            foreach (var item in match)
            {
                var res = matchresult.FirstOrDefault(p => p.Id == item.Id);

                #region 队伍基础信息
                var info = new BJDC_MatchInfo_WEB()
                {
                    //CreateTime = item.CreateTime.ToString("yyyyMMddHHmmss"),
                    //FlatOdds = item.FlatOdds,
                    GuestTeamName = BettingHelper.GetTeamName(item.GuestTeamName),
                    //GuestTeamSort = item.GuestTeamSort,
                    //GuestTeamId = item.GuestTeamId.ToString(),
                    HomeTeamName = BettingHelper.GetTeamName(item.HomeTeamName),
                    //HomeTeamSort = item.HomeTeamSort,
                    //HomeTeamId = item.HomeTeamId.ToString(),
                    Id           = item.Id,
                    IssuseNumber = item.IssuseNumber,
                    LetBall      = item.LetBall,
                    MatchState   = (int)item.MatchState,
                    MatchColor   = item.MatchColor,
                    //MatchId = item.MatchId,
                    MatchName     = item.MatchName,
                    LocalStopTime = Convert.ToDateTime(item.LocalStopTime),
                    //LocalStopTime = item.LocalStopTime.ToString("yyyyMMddHHmmss"),
                    //LoseOdds = item.LoseOdds,
                    MatchOrderId = item.MatchOrderId,
                    //MatchStartTime = item.MatchStartTime.ToString("yyyyMMddHHmmss"),
                    MatchStartTime = Convert.ToDateTime(item.MatchStartTime),
                    //WinOdds = item.WinOdds,
                    //Mid = item.Mid,
                    FXId = item.FXId,
                };
                #endregion

                #region 附加队伍结果信息
                if (res != null)
                {
                    //info.ZJQ_Result = res.ZJQ_Result;
                    //info.ZJQ_SP = res.ZJQ_SP;
                    //info.SXDS_SP = res.SXDS_SP;
                    //info.SXDS_Result = res.SXDS_Result;
                    //info.SPF_SP = res.SPF_SP;
                    //info.SPF_Result = res.SPF_Result;
                    //info.MatchStateName = res.MatchState;
                    //info.GuestHalf_Result = res.GuestHalf_Result;
                    //info.GuestFull_Result = res.GuestFull_Result;
                    //info.BQC_SP = res.BQC_SP;
                    //info.BQC_Result = res.BQC_Result;
                    //info.BF_SP = res.BF_SP;
                    //info.BF_Result = res.BF_Result;
                    //info.HomeFull_Result = res.HomeFull_Result;
                    //info.HomeHalf_Result = res.HomeHalf_Result;
                    //info.LotteryTime = res.CreateTime.ToString("yyyyMMddHHmmss");
                }
                else if (!isLeftJoin)
                {
                    continue;
                }
                #endregion

                #region 附加胜平负sp数据
                var sp_spf_item = sp_spf.FirstOrDefault(p => p.MatchOrderId == item.MatchOrderId);
                if (sp_spf_item != null)
                {
                    info.SP_Win_Odds  = sp_spf_item.Win_Odds;
                    info.SP_Lose_Odds = sp_spf_item.Lose_Odds;
                    info.SP_Flat_Odds = sp_spf_item.Flat_Odds;
                }
                #endregion

                #region 附加总进球sp数据
                var sp_zjq_item = sp_zjq.FirstOrDefault(p => p.MatchOrderId == item.MatchOrderId);
                if (sp_zjq_item != null)
                {
                    info.JinQiu_0_Odds = sp_zjq_item.JinQiu_0_Odds;
                    info.JinQiu_1_Odds = sp_zjq_item.JinQiu_1_Odds;
                    info.JinQiu_2_Odds = sp_zjq_item.JinQiu_2_Odds;
                    info.JinQiu_3_Odds = sp_zjq_item.JinQiu_3_Odds;
                    info.JinQiu_4_Odds = sp_zjq_item.JinQiu_4_Odds;
                    info.JinQiu_5_Odds = sp_zjq_item.JinQiu_5_Odds;
                    info.JinQiu_6_Odds = sp_zjq_item.JinQiu_6_Odds;
                    info.JinQiu_7_Odds = sp_zjq_item.JinQiu_7_Odds;
                }
                #endregion

                #region 附加上下单双sp数据
                var sp_sxds_item = sp_sxds.FirstOrDefault(p => p.MatchOrderId == item.MatchOrderId);
                if (sp_sxds_item != null)
                {
                    info.SH_D_Odds = sp_sxds_item.SH_D_Odds;
                    info.SH_S_Odds = sp_sxds_item.SH_S_Odds;
                    info.X_D_Odds  = sp_sxds_item.X_D_Odds;
                    info.X_S_Odds  = sp_sxds_item.X_S_Odds;
                }
                #endregion

                #region 附加比分sp数据
                var sp_bf_item = sp_bf.FirstOrDefault(p => p.MatchOrderId == item.MatchOrderId);
                if (sp_bf_item != null)
                {
                    info.F_01 = sp_bf_item.F_01;
                    info.F_02 = sp_bf_item.F_02;
                    info.F_03 = sp_bf_item.F_03;
                    info.F_04 = sp_bf_item.F_04;
                    info.F_12 = sp_bf_item.F_12;
                    info.F_13 = sp_bf_item.F_13;
                    info.F_14 = sp_bf_item.F_14;
                    info.F_23 = sp_bf_item.F_23;
                    info.F_24 = sp_bf_item.F_24;
                    info.F_QT = sp_bf_item.F_QT;
                    info.P_00 = sp_bf_item.P_00;
                    info.P_11 = sp_bf_item.P_11;
                    info.P_22 = sp_bf_item.P_22;
                    info.P_33 = sp_bf_item.P_33;
                    info.P_QT = sp_bf_item.P_QT;
                    info.S_10 = sp_bf_item.S_10;
                    info.S_20 = sp_bf_item.S_20;
                    info.S_21 = sp_bf_item.S_21;
                    info.S_30 = sp_bf_item.S_30;
                    info.S_31 = sp_bf_item.S_31;
                    info.S_32 = sp_bf_item.S_32;
                    info.S_40 = sp_bf_item.S_40;
                    info.S_41 = sp_bf_item.S_41;
                    info.S_42 = sp_bf_item.S_42;
                    info.S_QT = sp_bf_item.S_QT;
                }
                #endregion

                #region 附加半全场sp数据
                var sp_bqc_item = sp_bqc.FirstOrDefault(p => p.MatchOrderId == item.MatchOrderId);
                if (sp_bqc_item != null)
                {
                    info.F_F_Odds   = sp_bqc_item.F_F_Odds;
                    info.F_P_Odds   = sp_bqc_item.F_P_Odds;
                    info.F_SH_Odds  = sp_bqc_item.F_SH_Odds;
                    info.P_F_Odds   = sp_bqc_item.P_F_Odds;
                    info.P_P_Odds   = sp_bqc_item.P_P_Odds;
                    info.P_SH_Odds  = sp_bqc_item.P_SH_Odds;
                    info.SH_F_Odds  = sp_bqc_item.SH_F_Odds;
                    info.SH_P_Odds  = sp_bqc_item.SH_P_Odds;
                    info.SH_SH_Odds = sp_bqc_item.SH_SH_Odds;
                }
                #endregion

                list.Add(info);
            }
            return(list);
        }
コード例 #30
0
        /// <summary>
        /// 最号订单处理
        /// </summary>
        /// <returns></returns>
        public static string WriteChaseOrderToDb()
        {
            //  var logList = new List<string>();
            //  logList.Add("<---------开始写入追号订单数据到数据库 ");
            ////  Console.WriteLine("<---------开始写入追号订单数据到数据库 ");


            var maxDay    = 5;
            var gameTypes = new LotteryGameManager().QueryEnableGameTypes();

            for (int i = 0; i < maxDay; i++)
            {
                var now  = DateTime.Today.AddDays(-i);
                var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CacheData", "ChaseOrder", now.ToString("yyyy-MM-dd"));
                //   logList.Add(string.Format("查询目录:{0} ", path));

                //  Console.WriteLine(string.Format("查询目录:{0} ", path));
                if (!Directory.Exists(path))
                {
                    continue;
                }

                var sportsManager = new Sports_Manager();
                var schemeManager = new SchemeManager();

                //日期下面只有一级文件
                var fileArray = Directory.GetFiles(path);
                // logList.Add(string.Format("文件数:{0}个 ", fileArray.Length));
                // Console.WriteLine(string.Format("文件数:{0}个 ", fileArray.Length));
                foreach (var item in fileArray)
                {
                    var json         = File.ReadAllText(item, Encoding.UTF8);
                    var chaseOrderId = item.Substring(item.LastIndexOf("\\") + 1).Replace(".json", "");
                    var order        = JsonSerializer.Deserialize <LotteryBettingInfo>(json);

                    order.IssuseNumberList.Sort((x, y) =>
                    {
                        return(x.IssuseNumber.CompareTo(y.IssuseNumber));
                    });

                    // logList.Add(string.Format("开始处理{0} ", chaseOrderId));
                    //  Console.WriteLine(string.Format("开始处理{0} ", chaseOrderId));
                    //一个追号订单,保存到数据库
                    try
                    {
                        var chaseSchemeList = sportsManager.QueryAllLotterySchemeByKeyLine(chaseOrderId);
                        //   Console.WriteLine(string.Format("开始处理1{0} ", chaseOrderId));
                        var schemeIdArray = chaseSchemeList.Select(p => p.SchemeId).ToArray();
                        //   Console.WriteLine(string.Format("开始处理2{0} ", chaseOrderId));
                        //查询三个订单表数据
                        //  string log1 = string.Join(",", schemeIdArray);
                        //   Console.WriteLine(string.Format("订单号****{0} ", log1));
                        var orderDetailList = schemeManager.QueryOrderDetailListBySchemeId(schemeIdArray);
                        //   Console.WriteLine(string.Format("开始处理3{0} ", chaseOrderId));
                        var orderRunningList = sportsManager.QueryOrderRunningBySchemeIdArray(schemeIdArray);
                        //  Console.WriteLine(string.Format("开始处理4{0} ", chaseOrderId));
                        var orderComplateList = sportsManager.QueryOrderComplateBySchemeIdArray(schemeIdArray);
                        //  Console.WriteLine(string.Format("开始处理5{0} ", chaseOrderId));
                        if (chaseSchemeList.Count == orderDetailList.Count && chaseSchemeList.Count == orderRunningList.Count + orderComplateList.Count)
                        {
                            //订单数据正常,删除订单文件
                            //logList.Add("订单数据正常,删除订单文件 ");
                            //   Console.WriteLine("订单数据正常,删除订单文件 ");
                            File.Delete(item);
                            continue;
                        }

                        var gameTypeList = new List <GameTypeInfo>();
                        foreach (var code in order.AnteCodeList)
                        {
                            var t = gameTypes.FirstOrDefault(a => a.Game.GameCode == order.GameCode && a.GameType == code.GameType.ToUpper());
                            if (t != null && !gameTypeList.Contains(t))
                            {
                                gameTypeList.Add(t);
                            }
                        }
                        var gameType = string.Join(",", (from g in gameTypeList group g by g.GameType into g select g.Key).ToArray());

                        //计算OrderDetail表没有的数据并写入
                        foreach (var scheme in chaseSchemeList)
                        {
                            var orderDetail = orderDetailList.FirstOrDefault(p => p.SchemeId == scheme.SchemeId);
                            if (orderDetail == null)
                            {
                                // logList.Add("写入orderDetail ");
                                // Console.WriteLine("写入orderDetail ");
                                var currentIssuse = order.IssuseNumberList.FirstOrDefault(p => p.IssuseNumber == scheme.IssuseNumber);

                                schemeManager.AddOrderDetail(new C_OrderDetail
                                {
                                    SchemeId              = scheme.SchemeId,
                                    AddMoney              = 0M,
                                    AfterTaxBonusMoney    = 0M,
                                    AgentId               = string.Empty,
                                    Amount                = currentIssuse == null ? 1 : currentIssuse.Amount,
                                    BetTime               = DateTime.Now,
                                    BonusAwardsMoney      = 0M,
                                    BonusStatus           = (int)BonusStatus.Waitting,
                                    ComplateTime          = null,
                                    CreateTime            = DateTime.Now,
                                    CurrentBettingMoney   = 0M,
                                    CurrentIssuseNumber   = currentIssuse == null ? string.Empty : currentIssuse.IssuseNumber,
                                    GameCode              = order.GameCode,
                                    GameType              = gameType,
                                    GameTypeName          = BettingHelper.FormatGameType(order.GameCode, gameType), //FormatGameType(order.GameCode, gameType),
                                    IsAppend              = order.IsAppend,
                                    IsVirtualOrder        = false,
                                    PlayType              = string.Empty,
                                    PreTaxBonusMoney      = 0M,
                                    ProgressStatus        = (int)ProgressStatus.Waitting,
                                    RealPayRebateMoney    = 0M,
                                    RedBagAwardsMoney     = 0M,
                                    RedBagMoney           = 0M,
                                    SchemeBettingCategory = (int)SchemeBettingCategory.GeneralBetting,
                                    SchemeSource          = (int)order.SchemeSource,
                                    SchemeType            = (int)SchemeType.ChaseBetting,
                                    StartIssuseNumber     = string.Empty,
                                    StopAfterBonus        = order.StopAfterBonus,
                                    TicketStatus          = (int)TicketStatus.Waitting,
                                    TicketTime            = null,
                                    TotalIssuseCount      = order.IssuseNumberList.Count,
                                    TotalMoney            = currentIssuse.IssuseTotalMoney,
                                    TotalPayRebateMoney   = 0M,
                                    UserId                = order.UserId,
                                });
                            }
                        }

                        //计算OrderRunning表没有的数据并写入
                        foreach (var scheme in chaseSchemeList)
                        {
                            var runningOrder = orderRunningList.FirstOrDefault(p => p.SchemeId == scheme.SchemeId);
                            var comlateOrder = orderComplateList.FirstOrDefault(p => p.SchemeId == scheme.SchemeId);
                            if (runningOrder == null && comlateOrder == null)
                            {
                                //  logList.Add("写入runningOrder ");
                                // Console.WriteLine("写入runningOrder ");
                                var currentIssuse = order.IssuseNumberList.FirstOrDefault(p => p.IssuseNumber == scheme.IssuseNumber);
                                sportsManager.AddSports_Order_Running(new C_Sports_Order_Running
                                {
                                    AfterTaxBonusMoney = 0M,
                                    AgentId            = string.Empty,
                                    Amount             = currentIssuse == null ? 1 : currentIssuse.Amount,
                                    Attach             = string.Empty,

                                    BonusStatus           = (int)BonusStatus.Waitting,
                                    CanChase              = false,
                                    IsVirtualOrder        = false,
                                    IsPayRebate           = false,
                                    RealPayRebateMoney    = 0M,
                                    TotalPayRebateMoney   = 0M,
                                    CreateTime            = DateTime.Now,
                                    GameCode              = order.GameCode,
                                    GameType              = gameType,
                                    IssuseNumber          = currentIssuse == null ? string.Empty : currentIssuse.IssuseNumber,
                                    PlayType              = string.Empty,
                                    PreTaxBonusMoney      = 0M,
                                    ProgressStatus        = (int)ProgressStatus.Waitting,
                                    SchemeId              = scheme.SchemeId,
                                    SchemeType            = (int)SchemeType.ChaseBetting,
                                    SchemeBettingCategory = (int)SchemeBettingCategory.GeneralBetting,
                                    TicketId              = string.Empty,
                                    TicketLog             = string.Empty,
                                    TicketStatus          = (int)TicketStatus.Waitting,
                                    TotalMatchCount       = 0,
                                    TotalMoney            = currentIssuse.IssuseTotalMoney,
                                    SuccessMoney          = 0M,
                                    UserId              = order.UserId,
                                    StopTime            = DateTime.Now,
                                    SchemeSource        = (int)SchemeSource.Web,
                                    BetCount            = 0,
                                    BonusCount          = 0,
                                    HitMatchCount       = 0,
                                    RightCount          = 0,
                                    Error1Count         = 0,
                                    Error2Count         = 0,
                                    MaxBonusMoney       = 0,
                                    MinBonusMoney       = 0,
                                    Security            = (int)TogetherSchemeSecurity.Public,
                                    TicketGateway       = string.Empty,
                                    TicketProgress      = 1M,
                                    BetTime             = DateTime.Now,
                                    ExtensionOne        = string.Format("{0}{1}", "3X1_", (int)order.ActivityType),
                                    QueryTicketStopTime = DateTime.Now.AddMinutes(1).ToString("yyyyMMddHHmm"),
                                    IsAppend            = false,
                                    RedBagMoney         = 0,
                                    IsSplitTickets      = false,
                                    TicketTime          = null,
                                });
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        //  logList.Add(string.Format("保存追号订单数据失败:{0}", ex.ToString()));
                        // Console.WriteLine(string.Format("保存追号订单数据失败:{0}", ex.ToString()));
                    }
                }
            }
            //写入日志
            // logList.Add("本次处理全部完成----------> ");
            // Console.WriteLine("本次处理全部完成----------> ");

            //   string log= string.Join(Environment.NewLine, logList.ToArray());
            //  // Console.WriteLine(log);
            ////   string log = Common.JSON.JsonHelper.Serialize(logList);
            //   Log4Log.Info( "追号消息***", new Exception(log));

            return("");
        }