/// <summary> /// 商品分页列表 /// </summary> /// <param name="search"></param> /// <returns></returns> public async Task <PageModelDto <ProductDto> > GetPagedAsync(ProductSearchPagedDto search) { Expression <Func <Product, bool> > whereCondition = x => true; if (!search.Id.IsNullOrEmpty()) { whereCondition = whereCondition.And(x => x.Id == search.Id.ToLong()); } var pagedEntity = await _productRepo.PagedAsync(search.PageIndex, search.PageSize, whereCondition, x => x.Id); var pagedDto = _mapper.Map <PageModelDto <ProductDto> >(pagedEntity); if (pagedDto.Data.Count > 0) { //调用maint微服务获取字典,组合商品状态信息 var rpcReuslt = await _maintRpcSrv.GetDictAsync(DictConsts.ProdunctStatusId); if (rpcReuslt.IsSuccessStatusCode && rpcReuslt.Content.Children.Count > 0) { var dicts = rpcReuslt.Content.Children; pagedDto.Data.ForEach(x => { x.StatusDescription = dicts.FirstOrDefault(d => d.Name == x.StatusCode.ToString())?.Value; }); } } return(pagedDto); }
/// <summary> /// 商品分页列表 /// </summary> /// <param name="search"></param> /// <returns></returns> public async Task <PageModelDto <ProductDto> > GetPagedAsync(ProductSearchPagedDto search) { var whereCondition = ExpressionCreator .New <Product>() .AndIf(search.Id > 0, x => x.Id == search.Id); var pagedEntity = await _productRepo.PagedAsync(search.PageIndex, search.PageSize, whereCondition, x => x.Id); var pagedDto = Mapper.Map <PageModelDto <ProductDto> >(pagedEntity); if (pagedDto.Data.Count > 0) { //调用maint微服务获取字典,组合商品状态信息 var rpcReuslt = await _maintRpcSrv.GetDictAsync(Consts.ProdunctStatusId); if (rpcReuslt.IsSuccessStatusCode && rpcReuslt.Content.Children.Count > 0) { var dicts = rpcReuslt.Content.Children; pagedDto.Data.ForEach(x => { x.StatusDescription = dicts.FirstOrDefault(d => d.Value == x.StatusCode.ToString())?.Name; }); } } return(pagedDto); }
/// <summary> /// 商品分页列表 /// </summary> /// <param name="search"></param> /// <returns></returns> public async Task <PageModelDto <ProductDto> > GetPagedAsync(ProductSearchPagedDto search) { var whereCondition = ExpressionCreator .New <Product>() .AndIf(search.Id > 0, x => x.Id == search.Id); var total = await _productRepo.CountAsync(whereCondition); if (total == 0) { return(new PageModelDto <ProductDto>(search)); } var entities = await _productRepo .Where(whereCondition) .OrderByDescending(x => x.Id) .Skip(search.SkipRows()) .Take(search.PageSize) .ToListAsync(); var productDtos = Mapper.Map <List <ProductDto> >(entities); if (productDtos.IsNotNullOrEmpty()) { //调用maint微服务获取字典,组合商品状态信息 var restRpcResult = await _maintRestClient.GetDictAsync(RpcConsts.ProdunctStatusId); if (restRpcResult.IsSuccessStatusCode) { var dict = restRpcResult.Content; if (dict is not null && dict.Children.IsNotNullOrEmpty()) { productDtos.ForEach(x => { x.StatusDescription = dict.Children.FirstOrDefault(d => d.Value == x.StatusCode.ToString())?.Name; }); } } } return(new PageModelDto <ProductDto>(search, productDtos, total)); }
public async Task <ActionResult <PageModelDto <ProductDto> > > GetPagedAsync([FromQuery] ProductSearchPagedDto search) { return(await _productSrv.GetPagedAsync(search)); }