public ActionResult Index(TicketQueryModel model) { try { //需要前端验证 if (!model.FromStationId.HasValue || !model.ToStationId.HasValue) { throw new Exception("你还没选择出发站或者到达站"); } //需要前端验证 if (model.FromStationId >= model.ToStationId) { throw new Exception("到达站不能在出发站之前"); } Ticket queryTicket = new Ticket { From = model.FromStationId.GetValueOrDefault(0), To = model.ToStationId.GetValueOrDefault(0) }; model.AvailableTicketsCount = this.ticketService.GetAvailableTicketsCount(queryTicket); } catch (Exception ex) { ErrorNotification(ex.Message); } return View(model); }
public virtual int GetAvailableTicketsCount(Ticket ticket) { //假设火车共100座位 int TICKETSCOUNT = 100; //查询起始站冲突的订单座位 Sql sql = Sql.Builder.Append("SELECT COUNT(Id) FROM `order` WHERE `From` < @0 AND `To` > @1 AND OrderStatus = @2", ticket.To, ticket.From, OrderStatus.Success.ToString()); return TICKETSCOUNT - this.repository.ExecuteScalar<int>(sql.SQL, sql.Arguments); }