public JsonResult GetItemList(int page, int rows) { ILimitTimeBuyService limitTimeBuyService = ServiceHelper.Create <ILimitTimeBuyService>(); LimitTimeQuery limitTimeQuery = new LimitTimeQuery() { ShopId = new long?(base.CurrentSellerManager.ShopId), PageSize = rows, PageNo = page }; PageModel <LimitTimeMarketInfo> itemList = limitTimeBuyService.GetItemList(limitTimeQuery); List <LimitTimeMarketModel> limitTimeMarketModels = new List <LimitTimeMarketModel>(); foreach (LimitTimeMarketInfo model in itemList.Models) { if (model.EndTime < DateTime.Now) { model.AuditStatus = LimitTimeMarketInfo.LimitTimeMarketAuditStatus.Ended; } LimitTimeMarketModel limitTimeMarketModel = new LimitTimeMarketModel() { Id = model.Id, StartTime = model.StartTime.ToString("yyyy-MM-dd HH:mm"), EndTime = model.EndTime.ToString("yyyy-MM-dd HH:mm"), ProductId = model.ProductId, SaleCount = model.SaleCount, ProductName = model.ProductName, AuditStatusNum = (int)model.AuditStatus, AuditStatus = model.AuditStatus.ToDescription(), CancelReson = model.CancelReson, MaxSaleCount = model.MaxSaleCount }; limitTimeMarketModels.Add(limitTimeMarketModel); } return(Json(new { rows = limitTimeMarketModels, total = itemList.Total })); }
public JsonResult List(int?AuditStatus, int page, int rows, string shopName, string productName) { LimitTimeMarketInfo.LimitTimeMarketAuditStatus?nullable; LimitTimeQuery limitTimeQuery = new LimitTimeQuery(); LimitTimeQuery limitTimeQuery1 = limitTimeQuery; int? auditStatus = AuditStatus; if ((auditStatus.GetValueOrDefault() != 0 ? false : auditStatus.HasValue)) { nullable = null; } else { int?auditStatus1 = AuditStatus; if (auditStatus1.HasValue) { nullable = new LimitTimeMarketInfo.LimitTimeMarketAuditStatus?((LimitTimeMarketInfo.LimitTimeMarketAuditStatus)((short)auditStatus1.GetValueOrDefault())); } else { nullable = null; } } limitTimeQuery1.AuditStatus = nullable; limitTimeQuery.PageSize = rows; limitTimeQuery.PageNo = page; limitTimeQuery.ShopName = shopName; limitTimeQuery.ItemName = productName; PageModel <LimitTimeMarketInfo> itemList = ServiceHelper.Create <ILimitTimeBuyService>().GetItemList(limitTimeQuery); IEnumerable <LimitTimeBuyModel> array = from item in itemList.Models.ToArray() select new LimitTimeBuyModel() { Id = item.Id, StartDate = item.StartTime.ToString("yyyy-MM-dd"), EndDate = item.EndTime.ToString("yyyy-MM-dd"), ShopName = item.ShopName, ProductName = item.ProductName, ProductId = item.ProductId.ToString(), Status = (item.EndTime < DateTime.Now ? LimitTimeMarketInfo.LimitTimeMarketAuditStatus.Ended.ToDescription() : item.AuditStatus.ToDescription()), Price = item.Price.ToString("f2"), RecentMonthPrice = item.RecentMonthPrice.ToString("f2"), SaleCount = item.SaleCount.ToString() }; DataGridModel <LimitTimeBuyModel> dataGridModel = new DataGridModel <LimitTimeBuyModel>() { rows = array, total = itemList.Total }; return(Json(dataGridModel)); }
public JsonResult GetlimitTimeProducts(LimitTimeQuery query) { query.ShopId = this.CurrentShop.Id;//只取当前商家的限时购商品 // var result = EngineContext.Current.Resolve<ILimitTimeBuyService>().GetFlashSaleInfos(query); var result = EngineContext.Current.Resolve <ILimitTimeBuyService>().GetFlashSaleInfos(query); var products = ProductManagerApplication.GetProducts(result.Models.Select(p => p.ProductId)); var shops = ShopApplication.GetShops(result.Models.Select(p => p.ShopId)); var market = result.Models.Select(item => { var product = products.FirstOrDefault(p => p.Id == item.ProductId); var shop = shops.FirstOrDefault(p => p.Id == item.ShopId); var m = new FlashSaleModel { Id = item.Id, Title = item.Title, BeginDate = item.BeginDate.ToString("yyyy-MM-dd"), EndDate = item.EndDate.ToString("yyyy-MM-dd"), ShopName = shop.ShopName, ProductName = product.ProductName, ProductId = item.ProductId, StatusStr = item.Status.ToDescription() }; if (item.Status != FlashSaleInfo.FlashSaleStatus.WaitForAuditing && item.Status != FlashSaleInfo.FlashSaleStatus.AuditFailed && item.BeginDate > DateTime.Now && item.EndDate < DateTime.Now) { m.StatusStr = "进行中"; } else if (item.Status != FlashSaleInfo.FlashSaleStatus.WaitForAuditing && item.Status != FlashSaleInfo.FlashSaleStatus.AuditFailed && item.BeginDate > DateTime.Now) { m.StatusStr = "未开始"; } m.SaleCount = item.SaleCount; m.MinPrice = item.MinPrice; m.MarketPrice = product.MarketPrice; m.ProductImg = MallIO.GetProductSizeImage(product.ImagePath, 1, (int)ImageSize.Size_350); return(m); }); var dataGrid = new DataGridModel <FlashSaleModel>() { rows = market, total = result.Total }; return(Json(dataGrid)); }
public JsonResult GetItemList(LimitTimeQuery query) { var service = _iLimitTimeBuyService; query.ShopId = CurrentSellerManager.ShopId; var result = service.GetFlashSaleInfos(query); var list = new List <FlashSaleModel>(); var products = ProductManagerApplication.GetProducts(result.Models.Select(p => p.ProductId)); foreach (var i in result.Models) { var product = products.FirstOrDefault(p => p.Id == i.ProductId); if (i.Status != FlashSaleInfo.FlashSaleStatus.WaitForAuditing && i.Status != FlashSaleInfo.FlashSaleStatus.AuditFailed && i.BeginDate > DateTime.Now && i.EndDate < DateTime.Now) { i.Status = FlashSaleInfo.FlashSaleStatus.Ongoing; } else if (i.Status != FlashSaleInfo.FlashSaleStatus.WaitForAuditing && i.Status != FlashSaleInfo.FlashSaleStatus.AuditFailed && i.BeginDate > DateTime.Now) { i.Status = FlashSaleInfo.FlashSaleStatus.NotBegin; } list.Add(new FlashSaleModel { Id = i.Id, BeginDate = i.BeginDate.ToString("yyyy-MM-dd HH:mm"), EndDate = i.EndDate.ToString("yyyy-MM-dd HH:mm"), ProductId = i.ProductId, SaleCount = i.SaleCount, ProductName = product.ProductName, StatusNum = (int)i.Status, StatusStr = i.Status.ToDescription(), LimitCountOfThePeople = i.LimitCountOfThePeople, IsStarted = (i.BeginDate > DateTime.Now) }); } var model = new { rows = list, total = result.Total }; return(Json(model)); }
private GetBuilder <FlashSaleInfo> WhereBuilder(LimitTimeQuery query) { var db = DbFactory.Default .Get <FlashSaleInfo>() .InnerJoin <ShopInfo>((fsi, si) => fsi.ShopId == si.Id) .InnerJoin <ProductInfo>((fsi, pi) => fsi.ProductId == pi.Id); if (!string.IsNullOrEmpty(query.ShopName)) { db.Where <ShopInfo>(p => p.ShopName.Contains(query.ShopName)); } if (!string.IsNullOrWhiteSpace(query.ProductName)) { db.Where <ProductInfo>(p => p.ProductName.Contains(query.ProductName)); } if (!string.IsNullOrEmpty(query.Title)) { db.Where(p => p.Title.Contains(query.Title)); } if (query.StartDate.HasValue) { db.Where(a => a.BeginDate >= query.StartDate); } if (query.EndDate.HasValue) { query.EndDate = query.EndDate.Value.AddDays(1); db.Where(a => a.BeginDate <= query.EndDate); } if (query.ShopId.HasValue) { db.Where(a => a.ShopId == query.ShopId.Value); } if (query.Status.HasValue) { var status = (FlashSaleInfo.FlashSaleStatus)query.Status; if (status == FlashSaleInfo.FlashSaleStatus.Ended) { db.Where(p => p.EndDate < DateTime.Now && p.Status != FlashSaleInfo.FlashSaleStatus.Cancelled); } else if (status == FlashSaleInfo.FlashSaleStatus.WaitForAuditing) { db.Where(p => p.Status == status); } else if (status == FlashSaleInfo.FlashSaleStatus.Ongoing) { db.Where(p => p.Status != FlashSaleInfo.FlashSaleStatus.WaitForAuditing && p.Status != FlashSaleInfo.FlashSaleStatus.AuditFailed && p.BeginDate < DateTime.Now && p.EndDate > DateTime.Now); } else if (status == FlashSaleInfo.FlashSaleStatus.AuditFailed) { db.Where(a => a.Status == status); } else if (status == FlashSaleInfo.FlashSaleStatus.Cancelled) { db.Where(a => a.Status == status); } else if (status == FlashSaleInfo.FlashSaleStatus.NotBegin) { db.Where(p => p.Status != FlashSaleInfo.FlashSaleStatus.WaitForAuditing && p.Status != FlashSaleInfo.FlashSaleStatus.AuditFailed && p.BeginDate > DateTime.Now); } } return(db); }
public int GetFlashSaleCount(LimitTimeQuery query) { var db = WhereBuilder(query); return(db.Count()); }
public QueryPageModel <FlashSaleInfo> GetFlashSaleInfos(LimitTimeQuery query) { ExpiredDataChangeStatus(); var db = WhereBuilder(query); switch (query.Sort.ToLower()) { case "begindate": if (query.IsAsc) { db.OrderBy(p => p.BeginDate); } else { db.OrderByDescending(p => p.BeginDate); } break; case "enddate": if (query.IsAsc) { db.OrderBy(p => p.EndDate); } else { db.OrderByDescending(p => p.EndDate); } break; case "salecount": if (query.IsAsc) { db.OrderBy(p => p.SaleCount); } else { db.OrderByDescending(p => p.SaleCount); } break; case "limitcountofthepeople": if (query.IsAsc) { db.OrderBy(p => p.LimitCountOfThePeople); } else { db.OrderByDescending(p => p.LimitCountOfThePeople); } break; default: db.OrderByDescending(o => o.BeginDate); break; } var datas = db.Select().ToPagedList(query.PageNo, query.PageSize); return(new QueryPageModel <FlashSaleInfo>() { Models = datas, Total = datas.TotalRecordCount }); }
public PageModel <LimitTimeMarketInfo> GetItemList(LimitTimeQuery query) { IQueryable <LimitTimeMarketInfo> endTime = context.LimitTimeMarketInfo.AsQueryable <LimitTimeMarketInfo>(); if (query.OrderType != 0) { endTime = from item in endTime where item.EndTime > DateTime.Now select item; } if (query.ShopId.HasValue) { endTime = from item in endTime where query.ShopId == item.ShopId select item; } if (!string.IsNullOrWhiteSpace(query.ItemName)) { endTime = from item in endTime where item.ProductName.Contains(query.ItemName) select item; } if (!string.IsNullOrWhiteSpace(query.ShopName)) { endTime = from item in endTime where item.ShopName.Contains(query.ShopName) select item; } if (!string.IsNullOrWhiteSpace(query.CategoryName)) { endTime = endTime.FindBy((LimitTimeMarketInfo d) => d.CategoryName == query.CategoryName); } DateTime now = DateTime.Now; if (query.AuditStatus.HasValue) { if (query.AuditStatus.Value == LimitTimeMarketInfo.LimitTimeMarketAuditStatus.Ended) { endTime = from a in endTime where (a.EndTime < now) && ((int)a.AuditStatus == 2 || (int)a.AuditStatus == 1) select a; } else if (query.AuditStatus.Value != LimitTimeMarketInfo.LimitTimeMarketAuditStatus.Ongoing) { endTime = (query.AuditStatus.Value != LimitTimeMarketInfo.LimitTimeMarketAuditStatus.WaitForAuditing ? from a in endTime where (int)a.AuditStatus == (int)query.AuditStatus.Value select a : from a in endTime where (int)a.AuditStatus == 1 && (a.EndTime > now) select a); } else { endTime = from a in endTime where (int)a.AuditStatus == 2 && (a.EndTime > now) select a; } } int num = 0; endTime = from l in endTime join p in context.ProductInfo on l.ProductId equals p.Id where (int)p.AuditStatus == 2 && (!query.CheckProductStatus || query.CheckProductStatus && (int)p.SaleStatus == 1) select l; if (query.PageSize == 0) { query.PageSize = 10; } if (endTime.Count() / query.PageSize < query.PageNo - 1) { query.PageNo = 1; } Func <IQueryable <LimitTimeMarketInfo>, IOrderedQueryable <LimitTimeMarketInfo> > orderBy = endTime.GetOrderBy((IQueryable <LimitTimeMarketInfo> d) => from item in d orderby item.Id descending select item); switch (query.OrderKey) { case 2: { orderBy = endTime.GetOrderBy((IQueryable <LimitTimeMarketInfo> d) => from item in d orderby item.SaleCount select item); break; } case 3: { if (query.OrderType != 2) { orderBy = endTime.GetOrderBy((IQueryable <LimitTimeMarketInfo> d) => from item in d orderby item.Price descending select item); break; } else { orderBy = endTime.GetOrderBy((IQueryable <LimitTimeMarketInfo> d) => from item in d orderby item.Price select item); break; } } case 4: { orderBy = endTime.GetOrderBy((IQueryable <LimitTimeMarketInfo> d) => from item in d orderby item.EndTime select item); break; } case 5: { orderBy = endTime.GetOrderBy((IQueryable <LimitTimeMarketInfo> d) => from item in d orderby item.AuditStatus select item); break; } default: { orderBy = endTime.GetOrderBy((IQueryable <LimitTimeMarketInfo> d) => from item in d orderby item.Id descending select item); break; } } endTime = endTime.GetPage(out num, orderBy, query.PageNo, query.PageSize); return(new PageModel <LimitTimeMarketInfo>() { Models = endTime, Total = num }); }
public ActionResult Home(string keywords = "", string catename = "", int orderKey = 1, int orderType = 1, int pageNo = 1, int pageSize = 60) { LimitTimeQuery limitTimeQuery = new LimitTimeQuery() { ItemName = keywords, OrderKey = orderKey, OrderType = orderType, CategoryName = catename, PageNo = pageNo, PageSize = pageSize, AuditStatus = new LimitTimeMarketInfo.LimitTimeMarketAuditStatus?(LimitTimeMarketInfo.LimitTimeMarketAuditStatus.Ongoing), CheckProductStatus = true }; LimitTimeQuery limitTimeQuery1 = limitTimeQuery; List <SelectListItem> selectListItems = new List <SelectListItem>(); string[] serviceCategories = ServiceHelper.Create <ILimitTimeBuyService>().GetServiceCategories(); for (int i = 0; i < serviceCategories.Length; i++) { string str = serviceCategories[i]; SelectListItem selectListItem = new SelectListItem() { Selected = false, Text = str, Value = str }; selectListItems.Add(selectListItem); } if (!string.IsNullOrWhiteSpace(catename)) { SelectListItem selectListItem1 = selectListItems.FirstOrDefault((SelectListItem c) => c.Text.Equals(catename)); if (selectListItem1 != null) { selectListItem1.Selected = true; } } ViewBag.Cate = selectListItems; ViewBag.keywords = keywords; ViewBag.orderKey = orderKey; ViewBag.orderType = orderType; base.ViewBag.Logined = (base.CurrentUser != null ? 1 : 0); ViewBag.Slide = ServiceHelper.Create <ISlideAdsService>().GetSlidAds(0, SlideAdInfo.SlideAdType.PlatformLimitTime); PageModel <LimitTimeMarketInfo> itemList = ServiceHelper.Create <ILimitTimeBuyService>().GetItemList(limitTimeQuery1); int total = itemList.Total; LimitTimeMarketInfo[] array = itemList.Models.ToArray(); if (itemList.Total == 0) { ViewBag.keywords = keywords; return(View()); } PagingInfo pagingInfo = new PagingInfo() { CurrentPage = limitTimeQuery1.PageNo, ItemsPerPage = pageSize, TotalItems = total }; ViewBag.pageInfo = pagingInfo; return(View(array ?? new LimitTimeMarketInfo[0])); }
public static int GetFlashSaleCount(LimitTimeQuery query) { return(Service.GetFlashSaleCount(query)); }