Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Brunobento1990 committed Jul 20, 2024
1 parent f05a26d commit f6b514f
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 2 deletions.
9 changes: 9 additions & 0 deletions OpenAdm.Api/Controllers/UsuarioController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,15 @@ public async Task<IActionResult> GetConta()
return Ok(usuarioViewModel);
}

[Autentica]
[IsFuncionario]
[HttpGet("get-conta-adm")]
public async Task<IActionResult> GetContaAdm([FromQuery]Guid id)
{
var usuarioViewModel = await _usuarioService.GetUsuarioByIdAdmAsync(id);
return Ok(usuarioViewModel);
}

[Autentica]
[IsFuncionario]
[HttpGet("list")]
Expand Down
1 change: 1 addition & 0 deletions OpenAdm.Application/Interfaces/IUsuarioService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ namespace OpenAdm.Application.Interfaces;
public interface IUsuarioService
{
Task<UsuarioViewModel> GetUsuarioByIdAsync();
Task<UsuarioViewModel> GetUsuarioByIdAdmAsync(Guid id);
Task<IList<UsuarioViewModel>> GetAllUsuariosAsync();
Task<ResponseLoginUsuarioViewModel> CreateUsuarioAsync(CreateUsuarioDto createUsuarioDto);
Task<ResponseLoginUsuarioViewModel> UpdateUsuarioAsync(UpdateUsuarioDto updateUsuarioDto);
Expand Down
29 changes: 29 additions & 0 deletions OpenAdm.Application/Services/UsuarioService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,35 @@ public async Task<UsuarioViewModel> GetUsuarioByIdAsync()
return usuarioViewModel;
}

public async Task<UsuarioViewModel> GetUsuarioByIdAdmAsync(Guid id)
{
var usuario = await _usuarioRepository.GetUsuarioByIdAsync(id)
?? throw new ExceptionApi(CodigoErrors.RegistroNotFound);

var quantidadeDePedidos = await _pedidoRepository.GetQuantidadeDePedidoPorUsuarioAsync(usuario.Id);
var usuarioViewModel = new UsuarioViewModel().ToModel(usuario, quantidadeDePedidos);

usuarioViewModel.PedidosEmAberto = await _pedidoRepository
.GetQuantidadePorStatusUsuarioAsync(usuario.Id, StatusPedido.Aberto);

usuarioViewModel.PedidosFaturado = await _pedidoRepository
.GetQuantidadePorStatusUsuarioAsync(usuario.Id, StatusPedido.Faturado);

usuarioViewModel.PedidosEmEntraga = await _pedidoRepository
.GetQuantidadePorStatusUsuarioAsync(usuario.Id, StatusPedido.RotaDeEntrega);

usuarioViewModel.PedidosEntregue = await _pedidoRepository
.GetQuantidadePorStatusUsuarioAsync(usuario.Id, StatusPedido.Entregue);

usuarioViewModel.PedidosCancelados = await _pedidoRepository
.GetQuantidadePorStatusUsuarioAsync(usuario.Id, StatusPedido.Cancelado);

usuarioViewModel.TotalPedido = await _pedidoRepository
.GetTotalPedidoPorUsuarioAsync(usuario.Id);

return usuarioViewModel;
}

public async Task<PaginacaoViewModel<UsuarioViewModel>> PaginacaoAsync(PaginacaoUsuarioDto paginacaoUsuarioDto)
{
var paginacao = await _usuarioRepository.GetPaginacaoAsync(paginacaoUsuarioDto);
Expand Down
6 changes: 4 additions & 2 deletions OpenAdm.Infra/Repositories/PedidoRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,13 @@ public async Task<int> GetQuantidadePorStatusUsuarioAsync(Guid usuarioId, Status

public async Task<decimal> GetTotalPedidoPorUsuarioAsync(Guid usuarioId)
{
return await _parceiroContext
var pedidos = await _parceiroContext
.Pedidos
.AsNoTracking()
.Include(x => x.ItensPedido)
.Where(x => x.UsuarioId == usuarioId)
.SumAsync(x => x.ValorTotal);
.ToListAsync();

return pedidos.Sum(x => x.ValorTotal);
}
}

0 comments on commit f6b514f

Please sign in to comment.