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); } } }
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); } } }