id 1 -4371
ACESSE SUA CONTA   |   facebook

Cadastre-se   //   Vantagens   //   Esqueci minha senha

Fluxo Técnico do Pregão







1. Inicialização do Pregão

  • Quando o usuário entra na página do pregão, o sistema faz uma consulta no banco para verificar quais peças (moedas ou cédulas) estão com status = 'aberto' na tabela lista_pregao.

  • O sistema carrega o catálogo na ordem definida pelo campo id ou fimPregao, dependendo se a peça já está em leilão ou aguardando.

  • A primeira peça da fila recebe destaque visual (primeira-moeda) e pode ter badge “PRÓXIMA” no frontend.

Queries envolvidas:

 
SELECT * FROM lista_pregao WHERE status = 'aberto' ORDER BY CASE WHEN fimPregao IS NOT NULL THEN 0 ELSE 1 END, id ASC;

2. Organização da Fila de Peças

  • Cada peça recebe uma posição na fila (posicao-fila), calculada pelo index da query.

  • No frontend, a posição é mostrada em um círculo, e os cards são renderizados em ordem sequencial.

  • A fila é atualizada automaticamente a cada 30 segundos via window.location.reload() ou, futuramente, via AJAX.


3. Lance Antecipado

  • Usuários podem dar lances antes da peça iniciar.

  • O sistema verifica:

    1. Se o valor do lance é maior que o maior lance atual.

    2. Se o usuário não deu um lance igual a outro já registrado.

  • Regra de empate: caso dois lances sejam iguais, vence o primeiro lance recebido. O segundo é rejeitado.

Queries envolvidas:

 
-- Maior lance atual da peça SELECT MAX(valor_lance) FROM lances WHERE idMoeda = :idMoeda AND idAnuncio = :idAnuncio; -- Contagem de lances SELECT COUNT(*) FROM lances WHERE idMoeda = :idMoeda AND idAnuncio = :idAnuncio;

4. Início do Leilão

  • Quando a peça inicia, fimPregao recebe timestamp de início + 60 segundos.

  • O contador de tempo é reiniciado se houver novos lances.

  • Todas as ações do usuário (lance, chat) são registradas para auditoria.


5. Recebimento de Lances

  • Cada lance é validado no backend antes de ser aceito:

    • valor_lance > maior_lance_atual

    • idUsuario não duplicado no mesmo lance

  • O banco recebe o registro:

 
INSERT INTO lances (idUsuario, idMoeda, idAnuncio, valor_lance, data_hora) VALUES (:idUsuario, :idMoeda, :idAnuncio, :valor_lance, NOW());

6. Encerramento Automático

  • Quando o tempo do pregão expira, a peça é marcada como status = 'vendido'.

  • O maior lance é identificado como vencedor.

  • O sistema atualiza tabelas relevantes:

 
UPDATE lista_pregao SET status = 'vendido', idVencedor = :idUsuario, valor_venda = :valor_lance WHERE id = :idPregao;
  • Caso não haja lances, a peça pode permanecer aberta ou ser cancelada conforme regras internas.


7. Notificações e Chat

  • Todas as ações do pregão são logadas no chat:

    • Lances realizados

    • Mensagens motivacionais e dúvidas

    • Futuramente: IA leiloeira, que irá participar do chat para tirar dúvidas sobre regras e postar mensagens motivacionais.


8. Encerramento Manual e Penalidades

  • Admin pode cancelar ou suspender o pregão manualmente via painel.

  • O sistema deve registrar motivo e usuário responsável.

  • Penalidades (ex.: lance inválido ou cancelamento) são aplicadas conforme regras legais.



Fonte:

Autor do blog: Nilton Romani

id 2 -4371
Voltar
Compartilhar
Facebook Twitter YouTube Feed de notícias
Coleções de Cédulas e Moedas Brasileiras © 2014. Todos os direitos reservados.