示例#1
0
        /// <summary>
        /// 计算投注结果
        /// </summary>
        /// <param name="issueCode">当前期号</param>
        /// <param name="openResult">开奖结果</param>
        private void CalculateBetting(string lotteryCode, string issueCode, string openResult)
        {
            //获取本期所有投注数据,进行计算
            int pageSize   = 50;
            int totalCount = 0;

            IDbContextFactory factory = new DbContextFactory();
            var betDetailService      = new BetDetailService(new Repo <BetDetail>(factory));

            var result = betDetailService.GetIssuesBetDetail(lotteryCode, issueCode);

            totalCount = result.Count;
            LogManager.Info(lotteryCode + " 期数:" + issueCode + " 待计算总投注数:" + totalCount);
            if (totalCount < 1)
            {
                IssueCatchNumsing.CreateInstance().CompledRunning(lotteryCode + "_" + issueCode);
                return;
            }
            List <BetDetail> details = new List <BetDetail>();
            var curIndex             = 1;

            for (var i = 0; i < totalCount; i++)
            {
                if (result[i].IsBuyTogether == 1 && result[i].GroupByState == 0)
                {
                    continue;
                }
                details.Add(result[i]);
                if (curIndex == pageSize || (i + 1) == totalCount)
                {
                    PoolParam param = new PoolParam()
                    {
                        Issue       = issueCode,
                        openResult  = openResult,
                        PageSize    = pageSize,
                        pageIndex   = i,
                        lotteryCode = lotteryCode,
                        Details     = details
                    };
                    IssueBettingNumsing.CreateInstance().PutRunning(lotteryCode + "_" + issueCode, new Running()
                    {
                        IsCompled = false,
                        PageIndex = i
                    });

                    ThreadPool.QueueUserWorkItem(CalculatePage, param);
                    details  = new List <BetDetail>();
                    curIndex = 1;
                }
                curIndex++;
            }
        }
示例#2
0
        protected readonly MessageService mMessageService;                           //消息处理类
        public BetDetailsCalculate_Auto()
        {
            IDbContextFactory factory = new DbContextFactory();

            this.mBetDetailService        = new BetDetailService(new Repo <BetDetail>(factory));
            this.mSysCatchNumService      = new SysCatchNumService(new Repo <CatchNum>(factory));
            this.mSysCatchNumIssueService = new SysCatchNumIssueService(new Repo <CatchNumIssue>(factory));

            Ytg.Comm.IHasher hasher = new Ytg.Comm.Hasher();

            var sysUser = new SysUserService(new Repo <SysUser>(factory), hasher);

            mMessageService = new MessageService(new Repo <Message>(factory));

            this.mSysUserBalanceService       = new SysUserBalanceService(new Repo <SysUserBalance>(factory), hasher, sysUser);
            this.mSysUserBalanceDetailService = new SysUserBalanceDetailService(new Repo <SysUserBalanceDetail>(factory), this.mSysUserBalanceService);

            mRebateHelper = new Service.Logic.RebateHelper(sysUser, this.mSysUserBalanceService, this.mSysUserBalanceDetailService);
        }