Adiciona paginacao no ranking do frontend
This commit is contained in:
@@ -9,13 +9,12 @@ const api = axios.create({
|
||||
});
|
||||
|
||||
export const rankingService = {
|
||||
async getRanking(limite = 100) {
|
||||
// Usa ranking paginado (Oracle) para não depender do Elasticsearch
|
||||
const params = { page: 1, size: limite };
|
||||
async getRanking(page = 1, size = 100) {
|
||||
// Usa ranking paginado (Oracle) para percorrer os 350k
|
||||
const params = { page, size };
|
||||
const response = await api.get('/ranking/paginado', { params });
|
||||
const data = response.data;
|
||||
|
||||
// Adapta para o formato esperado pelo frontend
|
||||
const hoje = new Date();
|
||||
|
||||
const consultores = (data.consultores || []).map((c) => {
|
||||
@@ -35,35 +34,38 @@ export const rankingService = {
|
||||
rank: c.posicao,
|
||||
posicao: c.posicao,
|
||||
pontuacao_total: c.pontuacao_total,
|
||||
componente_a: c.componente_a,
|
||||
componente_b: c.componente_b,
|
||||
componente_c: c.componente_c,
|
||||
componente_d: c.componente_d,
|
||||
ativo: c.ativo,
|
||||
anos_atuacao: c.anos_atuacao,
|
||||
veterano: anos >= 10,
|
||||
pontuacao: {
|
||||
pontuacao_total: c.pontuacao_total,
|
||||
componente_a: { base: c.componente_a, tempo: 0, extras: 0, bonus: 0, retorno: 0, total: c.componente_a },
|
||||
componente_b: { base: c.componente_b, tempo: 0, extras: 0, bonus: 0, retorno: 0, total: c.componente_b },
|
||||
componente_c: { base: c.componente_c, tempo: 0, extras: 0, bonus: 0, retorno: 0, total: c.componente_c },
|
||||
componente_d: { base: c.componente_d, tempo: 0, extras: 0, bonus: 0, retorno: 0, total: c.componente_d },
|
||||
},
|
||||
consultoria: {
|
||||
total_eventos: consultoria.total_eventos ?? 0,
|
||||
eventos_recentes: consultoria.eventos_recentes ?? 0,
|
||||
vezes_responsavel: consultoria.vezes_responsavel ?? 0,
|
||||
primeiro_evento: consultoria.primeiro_evento || primeiroEvento.toISOString(),
|
||||
ultimo_evento: consultoria.ultimo_evento || null,
|
||||
},
|
||||
coordenacoes_capes: [],
|
||||
coordenacoes_programas: [],
|
||||
premiacoes: [],
|
||||
}});
|
||||
componente_a: c.componente_a,
|
||||
componente_b: c.componente_b,
|
||||
componente_c: c.componente_c,
|
||||
componente_d: c.componente_d,
|
||||
ativo: c.ativo,
|
||||
anos_atuacao: anos,
|
||||
veterano: anos >= 10,
|
||||
pontuacao: {
|
||||
pontuacao_total: c.pontuacao_total,
|
||||
componente_a: { base: c.componente_a, tempo: 0, extras: 0, bonus: 0, retorno: 0, total: c.componente_a },
|
||||
componente_b: { base: c.componente_b, tempo: 0, extras: 0, bonus: 0, retorno: 0, total: c.componente_b },
|
||||
componente_c: { base: c.componente_c, tempo: 0, extras: 0, bonus: 0, retorno: 0, total: c.componente_c },
|
||||
componente_d: { base: c.componente_d, tempo: 0, extras: 0, bonus: 0, retorno: 0, total: c.componente_d },
|
||||
},
|
||||
consultoria: {
|
||||
total_eventos: consultoria.total_eventos ?? 0,
|
||||
eventos_recentes: consultoria.eventos_recentes ?? 0,
|
||||
vezes_responsavel: consultoria.vezes_responsavel ?? 0,
|
||||
primeiro_evento: consultoria.primeiro_evento || primeiroEvento.toISOString(),
|
||||
ultimo_evento: consultoria.ultimo_evento || null,
|
||||
},
|
||||
coordenacoes_capes: [],
|
||||
coordenacoes_programas: [],
|
||||
premiacoes: [],
|
||||
};
|
||||
});
|
||||
|
||||
return {
|
||||
total: data.total,
|
||||
total_pages: data.total_pages,
|
||||
page: data.page ?? page,
|
||||
size: data.size ?? size,
|
||||
consultores,
|
||||
};
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user