public async Task <GoodsSearchResult> SearchAsync(string keyword, DateTime?startTime, DateTime?endTime, int pageIndex, int pageSize) { using (MyDbContext dbc = new MyDbContext()) { GoodsSearchResult result = new GoodsSearchResult(); var entities = dbc.GetAll <GoodsEntity>().Include(g => g.GoodsArea).Include(g => g.GoodsSecondType).Include(g => g.GoodsType).AsNoTracking().Where(g => g.IsPutaway == true); if (!string.IsNullOrEmpty(keyword)) { entities = entities.Where(g => g.Name.Contains(keyword) || g.Description.Contains(keyword) || g.GoodsSecondType.Name.Contains(keyword) || g.GoodsType.Name.Contains(keyword)); } if (startTime != null) { entities = entities.Where(a => a.CreateTime >= startTime); } if (endTime != null) { entities = entities.Where(a => SqlFunctions.DateDiff("day", endTime, a.CreateTime) <= 0); } result.PageCount = (int)Math.Ceiling((await entities.LongCountAsync()) * 1.0f / pageSize); var goodsTypesResult = await entities.OrderByDescending(a => a.CreateTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync(); result.Goods = goodsTypesResult.Select(a => ToDTO(a)).ToArray(); return(result); } }
public async Task <ApiResult> Search(GoodsSearchModel model) { string parm = doMain; GoodsSearchResult result = await goodsService.SearchAsync(model.KeyWord, null, null, model.PageIndex, model.PageSize); List <SearchResultModel> lists; lists = result.Goods.Select(g => new SearchResultModel { id = g.Id, inventory = g.Inventory, name = g.Name, price = g.Price, realityPrice = g.RealityPrice, saleNum = g.SaleNum, imgUrl = parm + goodsImgService.GetFirstImg(g.Id) }).ToList(); GoodsSearchApiModel apiModel = new GoodsSearchApiModel(); apiModel.goods = lists; apiModel.pageCount = result.PageCount; return(new ApiResult { status = 1, data = apiModel }); }
public async Task <HttpMessage <GoodsSearchResult> > PartNumber(PartNumberQuery pq) => await TryCatchResponseAsync(async() => { return(await Task.Run(() => { List <GoodsSearch> resultSearch = GetSearchGoods(pq.partNumber, pq.pageRows, pq.page); Principal principal = Core.Http.HttpContext.Current.User as Principal; int userId = principal == null || principal.User == null ? 0 : principal.User.Id; GoodsResult goodsResult = GetGoods(resultSearch, userId, pq, true); GoodsSearchResult result = new GoodsSearchResult() { //Result = goodsResult.Result.Values.ToList(), //ResultSub = goodsResult.ResultSubs.Values.ToList(), Result = new List <GoodsSubTypeSearchResult>(), Page = resultSearch.Count > 0 ? resultSearch[0].Page : 0, MaxPage = resultSearch.Count > 0 ? resultSearch[0].MaxPage : 0 }; foreach (var sti in goodsResult.Result.Values) { result.Result.Add(new GoodsSubTypeSearchResult() { Id = sti.Id, Descr = sti.Descr, Goods = sti.Goods.Values.ToList() }); } foreach (var sti in result.Result) { foreach (var ritem in sti.Goods) { ritem.Deliveries.Sort((x, y) => x.DeliveryAmount.CompareTo(y.DeliveryAmount)); ritem.DefaultDelivery = ritem.Deliveries.Count > 0 ? ritem.Deliveries[0] : new DeliveryInfo(); } } //foreach (var ritem in result.ResultSub) //{ // ritem.Deliveries.Sort((x, y) => x.DeliveryAmount.CompareTo(y.DeliveryAmount)); // ritem.DefaultDelivery = ritem.Deliveries.Count > 0 ? ritem.Deliveries[0] : new DeliveryInfo(); //} return CreateResponseOk(result); })); });
public async Task <ApiResult> List(GoodsListModel model) { string parm = await settingService.GetParmByNameAsync("网站域名"); GoodsSearchResult result = await goodsService.FrontModelListAsync(model.AreaId, model.TypeId, model.SecondTypeId, null, null, null, model.PageIndex, model.PageSize); List <SearchResultModel> lists; lists = result.Goods.Select(g => new SearchResultModel { id = g.Id, inventory = g.Inventory, name = g.Name, realityPrice = g.RealityPrice, saleNum = g.SaleNum, imgUrl = parm + goodsImgService.GetFirstImg(g.Id) }).ToList(); GoodsSearchApiModel apiModel = new GoodsSearchApiModel(); apiModel.goods = lists; apiModel.pageCount = result.PageCount; return(new ApiResult { status = 1, data = apiModel }); }