public ActionResult ListData(TicketQueryModel model)
        {
            model.OTABusinessId = UserInfo.OtaBusinessId;
            var result = _ticketFacadeService.GetPageList(model);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        public TPageResult <TicketViewModel> GetPageList(TicketQueryModel model)
        {
            var result = new TPageResult <TicketViewModel>();
            //过滤掉已过期的产品
            DateTime nowTime    = DateTime.Now.Date;
            DateTime endTime    = nowTime.AddDays(-1).Date;
            var      tbl_Ticket = PredicateBuilder.True <Tbl_Ticket>();

            if (!string.IsNullOrEmpty(model.TicketName))
            {
                using (var db = DbFactory.GetSqlSugarClient())
                {
                    var total = 0;
                    var data  = db.Queryable <Tbl_Ticket, Tbl_OTATicketRelation>((a, b) =>
                                                                                 new object[] { JoinType.Left, a.TicketId == b.TicketId }).
                                Where((a, b) =>
                                      a.TicketName.Contains(model.TicketName) &&
                                      b.OTABusinessId == model.OTABusinessId &&
                                      a.TicketSource == 2 &&
                                      a.ExpiryDateStart <= nowTime &&
                                      a.ExpiryDateEnd >= nowTime).
                                OrderBy((a) => a.CreateTime).
                                Select((a) => new TicketViewModel
                    {
                        TicketId    = a.TicketId,
                        TicketName  = a.TicketName,
                        Price       = a.SalePrice,
                        BookCount   = 1,
                        TotalAmount = a.SalePrice
                    }).ToPageList(model.Page, model.Limit, ref total);
                    return(result.SuccessResult(data, total));
                }
            }
            using (var db = DbFactory.GetSqlSugarClient())
            {
                var total = 0;
                var data  = db.Queryable <Tbl_Ticket, Tbl_OTATicketRelation>((a, b) =>
                                                                             new object[] { JoinType.Left, a.TicketId == b.TicketId }).
                            Where((a, b) =>
                                  b.OTABusinessId == model.OTABusinessId &&
                                  a.TicketSource == 2 &&
                                  a.ExpiryDateStart <= nowTime &&
                                  a.ExpiryDateEnd >= nowTime).
                            OrderBy((a) => a.CreateTime).
                            Select((a) => new TicketViewModel
                {
                    TicketId    = a.TicketId,
                    TicketName  = a.TicketName,
                    Price       = a.SalePrice,
                    BookCount   = 1,
                    TotalAmount = a.SalePrice
                }).ToPageList(model.Page, model.Limit, ref total);
                return(result.SuccessResult(data, total));
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 获取旅行社可用产品列表
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public TPageResult <TicketViewModel> GetPageList(TicketQueryModel model)
        {
            var ticketData = _ticketRepository.GetPageList(model);

            if (!ticketData.Success)
            {
                return(ticketData);
            }
            var      ticketIds           = ticketData.Data.Select(a => a.TicketId).ToList();
            var      Tbl_TicketRelations = _ticketRelationRepository.GetAllList(p => ticketIds.Contains(p.TicketId));
            DateTime playTime            = model.PlayDate.Date;

            //根据游玩日期,变动价格
            foreach (var item in ticketData.Data)
            {
                //根据orderId 顺序排列 取第一条
                var tbl_TicketRelation = Tbl_TicketRelations.Where(p =>
                                                                   p.TicketId == item.TicketId &&
                                                                   p.Type == (int)TicketRelationEnum.TimeSlot &&
                                                                   p.ExpiryDateStart <= playTime &&
                                                                   p.ExpiryDateEnd >= playTime
                                                                   ).OrderBy(c => c.OrderId).FirstOrDefault();

                if (tbl_TicketRelation != null)
                {
                    item.Price = tbl_TicketRelation.SalePrice;
                    continue;
                }
                //特殊时间段价格表为空 同时 游玩日期 是周末则启动周末价格策略
                var dayOfWeek = playTime.DayOfWeek;
                if (dayOfWeek != DayOfWeek.Saturday && dayOfWeek != DayOfWeek.Sunday)
                {
                    continue;
                }
                var ticketRelation = Tbl_TicketRelations.FirstOrDefault(p => p.TicketId == item.TicketId && p.Type == (int)TicketRelationEnum.Weekend);
                if (ticketRelation != null)
                {
                    item.Price = ticketRelation.SalePrice;
                }
                item.TotalAmount = item.BookCount * item.Price;
            }
            return(ticketData);
        }
        public TPageResult <TicketViewModel> GetPageList(TicketQueryModel model)
        {
            var result = new TPageResult <TicketViewModel>();

            if (model.PlayDate.Date < DateTime.Now.Date)
            {
                return(result.FailureResult(null, "游玩日期不能小于今天"));
            }
            //过滤掉已过期的产品
            DateTime nowTime    = model.PlayDate.Date;
            var      tbl_Ticket = PredicateBuilder.True <Tbl_Ticket>();

            if (!string.IsNullOrEmpty(model.TicketName))
            {
                using (var db = DbFactory.GetSqlSugarClient())
                {
                    var total = 0;
                    var data  = db.Queryable <Tbl_Ticket, Tbl_OTATicketRelation>((a, b) =>
                                                                                 new object[] { JoinType.Left, a.TicketId == b.TicketId }).
                                Where((a, b) =>
                                      a.TicketName.Contains(model.TicketName) &&
                                      b.OTABusinessId == model.OTABusinessId &&
                                      a.TicketSource == 2 &&
                                      a.ExpiryDateStart <= nowTime &&
                                      a.ExpiryDateEnd >= nowTime).
                                OrderBy((a) => a.CreateTime).
                                Select((a) => new TicketViewModel
                    {
                        TicketId    = a.TicketId,
                        TicketName  = a.TicketName,
                        Price       = a.SalePrice,
                        BookCount   = 1,
                        TotalAmount = a.SalePrice,
                        Min         = a.MinOQ,
                        Max         = a.MaxOQ
                    }).ToPageList(model.Page, model.Limit, ref total);
                    foreach (var row in data)
                    {
                        row.BookCount   = row.Min > 0 ? row.Min : 1;
                        row.TotalAmount = row.BookCount * row.Price;
                    }
                    return(result.SuccessResult(data, total));
                }
            }
            using (var db = DbFactory.GetSqlSugarClient())
            {
                var total = 0;
                var data  = db.Queryable <Tbl_Ticket, Tbl_OTATicketRelation>((a, b) =>
                                                                             new object[] { JoinType.Left, a.TicketId == b.TicketId }).
                            Where((a, b) =>
                                  b.OTABusinessId == model.OTABusinessId &&
                                  a.TicketSource == 2 &&
                                  a.ExpiryDateStart <= nowTime &&
                                  a.ExpiryDateEnd >= nowTime).
                            OrderBy((a) => a.CreateTime).
                            Select((a) => new TicketViewModel
                {
                    TicketId    = a.TicketId,
                    TicketName  = a.TicketName,
                    Price       = a.SalePrice,
                    BookCount   = 1,
                    TotalAmount = a.SalePrice,
                    Min         = a.MinOQ,
                    Max         = a.MaxOQ
                }).ToPageList(model.Page, model.Limit, ref total);
                foreach (var row in data)
                {
                    row.BookCount = row.Min > 0 ? row.Min : 1;
                }
                return(result.SuccessResult(data, total));
            }
        }
 public TPageResult <TicketViewModel> GetPageList(TicketQueryModel model)
 {
     return(_ticketService.GetPageList(model));
 }
Exemplo n.º 7
0
 /// <summary>
 /// 获取旅行社可用产品列表
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public TPageResult <TicketViewModel> GetPageList(TicketQueryModel model)
 {
     return(_ticketRepository.GetPageList(model));
 }
Exemplo n.º 8
0
        public ActionResult Index()
        {
            var model = new TicketQueryModel();

            return View(model);
        }