コード例 #1
0
        public void AutoBuyChaseTicket(string gameName, string issueNumber)
        {
            TicketManager       ticketManager = new TicketManager(DbAccess);
            UserManager         userManager   = new UserManager(DbAccess);
            IList <ChaseEntity> chaseList     = ticketManager.GetChaseListByIssue(gameName, issueNumber, (int)ChaseStatus.Chasing);

            foreach (ChaseEntity chase in chaseList)
            {
                try
                {
                    UserFacade userFacade = new UserFacade();
                    UserInfo   user       = userFacade.GetUserInfo(chase.UserId);
                    if (user == null)
                    {
                        throw new Exception("用户不存在 - " + chase.UserId);
                    }
                    UserBalanceEntity balance = userManager.GetBalance(chase.UserId);
                    if (balance == null)
                    {
                        throw new Exception("用户帐户不存在 - " + chase.UserId);
                    }
                    TicketEntity ticket = ticketManager.GetTicket(chase.TicketId);
                    if (ticket == null)
                    {
                        throw new Exception("追号的票不存在 - " + chase.TicketId);
                    }
                    IList <TicketAnteCodeEntity> anteCodeList = ticketManager.GetAnteCodeListByTicket(chase.TicketId);
                    List <string> codes = new List <string>();
                    foreach (TicketAnteCodeEntity anteCodeEntity in anteCodeList)
                    {
                        codes.Add(anteCodeEntity.AnteCode);
                    }
                    balance.Freeze -= chase.Money;
                    userManager.ModifyBalance(balance);
                    HPResponseInfo response = DoBuy(user, gameName, issueNumber, (BuyType)ticket.BuyType, codes, chase.Money, chase.Amount);
                    if (response.Code == "0000")
                    {
                        chase.Status = (int)ChaseStatus.Finished;
                    }
                    else
                    {
                        chase.Status = (int)ChaseStatus.Error;
                    }
                    chase.ResponseCode    = response.Code;
                    chase.ResponseMessage = response.Message;
                    ticketManager.ModifyChaseStatus(chase);
                }
                catch (Exception ex)
                {
                    chase.Status          = (int)ChaseStatus.Error;
                    chase.ResponseCode    = "9999";
                    chase.ResponseMessage = "未知异常 - " + ex.Message;
                    ticketManager.ModifyChaseStatus(chase);

                    HandleException(LogCategory.Ticket, "自动认购追号失败!", ex, chase);
                }
            }
        }
コード例 #2
0
        public void AutoBuyChaseTicket(string gameName, string issueNumber)
        {
            TicketManager ticketManager = new TicketManager(DbAccess);
            UserManager userManager = new UserManager(DbAccess);
            IList<ChaseEntity> chaseList = ticketManager.GetChaseListByIssue(gameName, issueNumber, (int)ChaseStatus.Chasing);
            foreach (ChaseEntity chase in chaseList)
            {
                try
                {
                    UserFacade userFacade = new UserFacade();
                    UserInfo user = userFacade.GetUserInfo(chase.UserId);
                    if (user == null)
                    {
                        throw new Exception("用户不存在 - " + chase.UserId);
                    }
                    UserBalanceEntity balance = userManager.GetBalance(chase.UserId);
                    if (balance == null)
                    {
                        throw new Exception("用户帐户不存在 - " + chase.UserId);
                    }
                    TicketEntity ticket = ticketManager.GetTicket(chase.TicketId);
                    if (ticket == null)
                    {
                        throw new Exception("追号的票不存在 - " + chase.TicketId);
                    }
                    IList<TicketAnteCodeEntity> anteCodeList = ticketManager.GetAnteCodeListByTicket(chase.TicketId);
                    List<string> codes = new List<string>();
                    foreach (TicketAnteCodeEntity anteCodeEntity in anteCodeList)
                    {
                        codes.Add(anteCodeEntity.AnteCode);
                    }
                    balance.Freeze -= chase.Money;
                    userManager.ModifyBalance(balance);
                    HPResponseInfo response = DoBuy(user, gameName, issueNumber, (BuyType)ticket.BuyType, codes, chase.Money, chase.Amount);
                    if (response.Code == "0000")
                    {
                        chase.Status = (int)ChaseStatus.Finished;
                    }
                    else
                    {
                        chase.Status = (int)ChaseStatus.Error;
                    }
                    chase.ResponseCode = response.Code;
                    chase.ResponseMessage = response.Message;
                    ticketManager.ModifyChaseStatus(chase);
                }
                catch (Exception ex)
                {
                    chase.Status = (int)ChaseStatus.Error;
                    chase.ResponseCode = "9999";
                    chase.ResponseMessage = "未知异常 - " + ex.Message;
                    ticketManager.ModifyChaseStatus(chase);

                    HandleException(LogCategory.Ticket, "自动认购追号失败!", ex, chase);
                }
            }
        }