/// <summary> /// 订单分页列表 /// </summary> /// <param name="search"></param> /// <returns></returns> public async Task <PageModelDto <OrderDto> > GetPagedAsync(OrderSearchPagedDto search) { Expression <Func <Order, bool> > whereCondition = x => true; if (search.Id > 0) { whereCondition = whereCondition.And(x => x.Id == search.Id); } var pagedEntity = await _orderRepo.PagedAsync(search.PageIndex, search.PageSize, whereCondition, x => x.Id); var pagedDto = _mapper.Map <PageModelDto <OrderDto> >(pagedEntity); if (pagedDto.Data.Count > 0) { //调用maint微服务获取字典,组合订单状态信息 var rpcReuslt = await _maintRpc.GetDictAsync(DictConsts.OrderStatusId); if (rpcReuslt.IsSuccessStatusCode && rpcReuslt.Content.Children.Count > 0) { var dicts = rpcReuslt.Content.Children; pagedDto.Data.ForEach(x => { x.StatusChangesReason = dicts.FirstOrDefault(d => d.Name == x.StatusCode.ToSafeString())?.Name; }); } } return(pagedDto); }
/// <summary> /// 订单分页列表 /// </summary> /// <param name="search"></param> /// <returns></returns> public async Task <PageModelDto <OrderDto> > GetPagedAsync(OrderSearchPagedDto search) { var whereCondition = ExpressionCreator .New <Order>() .AndIf(search.Id > 0, x => x.Id == search.Id); var total = await _orderRepo.CountAsync(whereCondition); if (total == 0) { return(new PageModelDto <OrderDto>(search)); } var entities = _orderRepo .Where(whereCondition) .OrderByDescending(x => x.Id) .Skip(search.SkipRows()) .Take(search.PageSize) .ToListAsync(); var orderDtos = Mapper.Map <List <OrderDto> >(entities); if (orderDtos.IsNotNullOrEmpty()) { //调用maint微服务获取字典,组合订单状态信息 var restRpcResult = await _maintRestClient.GetDictAsync(RpcConsts.OrderStatusId); if (restRpcResult.IsSuccessStatusCode) { var dict = restRpcResult.Content; if (dict is not null && dict.Children.IsNotNullOrEmpty()) { orderDtos.ForEach(x => { x.StatusChangesReason = dict.Children.FirstOrDefault(d => d.Name == x.StatusCode.ToSafeString())?.Name; }); } } } return(new PageModelDto <OrderDto>(search, orderDtos, total)); }
public async Task <ActionResult <PageModelDto <OrderDto> > > GetPagedAsync([FromQuery] OrderSearchPagedDto search) { return(await _orderSrv.GetPagedAsync(search)); }