Skip to main content

Importação de fotos - Accelero

Às vezes (geralmente durante o início do sistema), o cliente manda fotos para serem importadas nos cadastros das pessoas do Accelero.

Não há nenhum problema em pegar as fotos do cliente e jogar pra dentro, mas algumas coisas devem ser observadas:

  • o nome da foto deve ser, obrigatoriamente, IDDAPESSOA_1.jpg ou IDDAPESSOA_2.jpg ou IDDAPESSOA_3.jpg. Os números 1/2/3 se referem à posição da foto na tela. A foto 1 (e apenas ela) é utilizada para fins de reconhecimento facial.
    • como você faz pra descobrir o ID da pessoa, bem... aí é com você. O ID da pessoa é a coluna pesID no banco de dados.
    • exemplo de nome de foto da pessoa cujo ID é 451276: 451276_1.jpg
  • as fotos devem ser colocadas dentro do diretório client/public/user_pics.
  • as fotos devem ser "pequenas" (recomendação, não mais que 30kb por foto). Se as fotos forem maiores que isso, a sugestão é fazer o redimensionamento "por dentro" do Accelero. Instruções mais abaixo.

REDIMENSIONAMENTO DE FOTOS

Se as fotos importadas forem grandes (>~30kb), devemos redimensioná-las. Podemos fazer isso através das ferramentas do Accelero.

O processo é trabalhoso, portanto se tiver dúvidas, chame alguém.

Descobrir quais fotos devem ser redimensionadas

Acesse o servidor e digite o seguinte comando (acerte para o diretório correto do cliente):

find /root/docker/cliente.accelerobr.com.br/client/public/user_pics/ -size +30k | awk -F'[/_.]' '{print $(NF-2) ","}'

O resultado deve ser a lista de IDs das fotos com mais de 30kb. Por exemplo:

2147467867,
1123276168,
1739524502,
1654458397,
102986923,

Preparar o script de migração

Em seguida, crie o arquivo app/private/photoMigration.php com o seguinte conteúdo:

<?php

use Accelero\Accelero;
use Accelero\Pessoa;
use Accelero\PessoaPhotoHandlerFactory;
use Accelero\Usuario;

require_once __DIR__ . '/../config/bootstrap.php';

Accelero::markAsLoggedUser(Usuario::loadByUsuID(1));
$arrPesID = [
//AQUI VAI A SUA LISTA DE IDS GERADA NA ETAPA ANERIOR
2147467867,
1123276168,
1739524502,
1654458397,
102986923,
]
;

$total = count($arrPesID);
$i = 0;
foreach ($arrPesID as $pesID) {
$pes = Pessoa::loadByPesID($pesID);
$handler = Accelero::getInjection(PessoaPhotoHandlerFactory::class)->forPessoa($pes);
$photo = 'data:image/jpeg;base64,' . base64_encode($handler->getFoto(1));
$handler->setPesFotoByID(1, $photo);
echo ++$i . '/' . $total . PHP_EOL;
}

Executar o script de migração

Acesse o container do php_asyncprocessor e execute o script que foi criado:

root@servidor: ~/docker/cliente.accelerobr.com.br# ./scripts/comp.sh exec php_asyncprocessor sh
/var/www/accelero # php private/photoMigration.php

As fotos serão redimensionadas.

Será printado em tela o andamento do processo.