pequenas otimizações
This commit is contained in:
parent
f5dda37285
commit
0d30afd700
@ -10,7 +10,7 @@ namespace OpenCand.Repository
|
||||
protected readonly IMemoryCache? _cache;
|
||||
|
||||
// Default cache settings
|
||||
protected static readonly TimeSpan DefaultCacheExpiration = TimeSpan.FromDays(7);
|
||||
protected static readonly TimeSpan DefaultCacheExpiration = TimeSpan.MaxValue;
|
||||
protected static readonly CacheItemPriority DefaultCachePriority = CacheItemPriority.Normal;
|
||||
|
||||
public BaseRepository(IConfiguration configuration, IMemoryCache? cache = null)
|
||||
|
@ -25,33 +25,33 @@ namespace OpenCand.API.Repository
|
||||
using (var connection = new NpgsqlConnection(ConnectionString))
|
||||
{
|
||||
return (await connection.QueryAsync<MaioresEnriquecimento>(@"
|
||||
WITH patrimonio_anual AS (
|
||||
SELECT idcandidato, ano, SUM(valor) AS valor_total_ano
|
||||
WITH extremos_declaracao AS (
|
||||
SELECT
|
||||
idcandidato,
|
||||
MIN(ano) AS anoInicial,
|
||||
MAX(ano) AS anoFinal
|
||||
FROM mv_bem_candidato
|
||||
GROUP BY idcandidato, ano
|
||||
),
|
||||
extremos_declaracao AS (
|
||||
SELECT idcandidato, MIN(ano) AS anoInicial, MAX(ano) AS anoFinal
|
||||
FROM patrimonio_anual
|
||||
GROUP BY idcandidato
|
||||
HAVING COUNT(DISTINCT ano) >= 2
|
||||
HAVING COUNT(ano) >= 2
|
||||
)
|
||||
SELECT
|
||||
c.nome,
|
||||
ed.anoInicial,
|
||||
pi.valor_total_ano AS patrimonioInicial,
|
||||
pi.valor AS patrimonioInicial,
|
||||
ed.anoFinal,
|
||||
pf.valor_total_ano AS patrimonioFinal,
|
||||
(pf.valor_total_ano - pi.valor_total_ano) AS enriquecimento
|
||||
pf.valor AS patrimonioFinal,
|
||||
(pf.valor - pi.valor) AS enriquecimento
|
||||
FROM extremos_declaracao ed
|
||||
JOIN candidato c ON ed.idcandidato = c.idcandidato
|
||||
JOIN patrimonio_anual pi ON ed.idcandidato = pi.idcandidato AND ed.anoInicial = pi.ano
|
||||
JOIN patrimonio_anual pf ON ed.idcandidato = pf.idcandidato AND ed.anoFinal = pf.ano
|
||||
ORDER BY enriquecimento DESC
|
||||
JOIN mv_bem_candidato pi ON ed.idcandidato = pi.idcandidato AND ed.anoInicial = pi.ano
|
||||
JOIN mv_bem_candidato pf ON ed.idcandidato = pf.idcandidato AND ed.anoFinal = pf.ano
|
||||
ORDER BY
|
||||
enriquecimento DESC
|
||||
LIMIT 25;")
|
||||
).AsList();
|
||||
}
|
||||
}); return result ?? new List<MaioresEnriquecimento>();
|
||||
});
|
||||
return result ?? new List<MaioresEnriquecimento>();
|
||||
}
|
||||
|
||||
public async Task<ConfigurationModel> GetConfiguration()
|
||||
|
Loading…
x
Reference in New Issue
Block a user