Skip to content
Snippets Groups Projects
Verified Commit 7ffe4649 authored by Damien's avatar Damien
Browse files

FEAT BAN

parent 532a22bd
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
require '../vendor/autoload.php';
$indexFileDirectory = __DIR__ . '/indexes/';
$banDirectory = __DIR__ . '/BAN/';
$banDirectory = __DIR__ . '/src/';
$filesBan = scandir($banDirectory);
if (!is_dir($indexFileDirectory)) {
......@@ -18,36 +18,46 @@ $index->setFormatVersion(Zend_Search_Lucene::FORMAT_2_3); // we set the lucene f
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive());
$index->setMaxBufferedDocs(1000);
$row = 1;
foreach ($filesBan as $fileBan) {
if (!in_array($fileBan, ['.', '..']) && ($handle = fopen($banDirectory . $fileBan, "r")) !== false) {
$row = 1;
echo "$fileBan\n";
$duplicateAddresses = [];
$currentCity = '';
$i = 1;
while (($data = fgetcsv($handle, 0, ";")) !== false) {
if ($row == 1) {
$row++;
if ($i == 1) {
$i++;
continue;
}
if (!empty($data[9])) {
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('id', \SrcCore\models\TextFormatModel::normalize(['string' => $data[0]])));
if (!empty($data[1])) {
$doc->addField(Zend_Search_Lucene_Field::Text('streetName', \SrcCore\models\TextFormatModel::normalize(['string' => $data[1]])));
if (!empty($data[9])) {
if ($currentCity != $data[6]) {
$duplicateAddresses = [];
}
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('streetNumber', $data[3] . ' ' . $data[4]));
$doc->addField(Zend_Search_Lucene_Field::Text('postalCode', $data[6]));
$doc->addField(Zend_Search_Lucene_Field::Text('afnorName', $data[9]));
$doc->addField(Zend_Search_Lucene_Field::Text('city', \SrcCore\models\TextFormatModel::normalize(['string' => $data[10]])));
$currentCity = $data[6];
$index->addDocument($doc);
if (empty($duplicateAddresses[$data[3] . $data[4] . $data[9] . $data[6]])) {
$doc = new Zend_Search_Lucene_Document();
if ($row == 1000) {
break;
}
if (fmod($row, 100) == 0) {
echo "$row\n";
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('banId', \SrcCore\models\TextFormatModel::normalize(['string' => $data[0]])));
if (!empty($data[1])) {
$doc->addField(Zend_Search_Lucene_Field::Text('streetName', \SrcCore\models\TextFormatModel::normalize(['string' => $data[1]])));
}
$streetNumber = empty($data[4]) ? $data[3] : ($data[3] . ' ' . $data[4]);
$doc->addField(Zend_Search_Lucene_Field::Text('streetNumber', $streetNumber));
$doc->addField(Zend_Search_Lucene_Field::Text('postalCode', $data[6]));
$doc->addField(Zend_Search_Lucene_Field::Text('afnorName', $data[9]));
$doc->addField(Zend_Search_Lucene_Field::Text('city', \SrcCore\models\TextFormatModel::normalize(['string' => $data[10]])));
$index->addDocument($doc);
$duplicateAddresses[$data[3] . $data[4] . $data[9] . $data[6]] = true;
}
$row++;
}
if (fmod($row, 100) == 0) {
echo "$row\n";
}
$row++;
}
fclose($handle);
}
......@@ -55,21 +65,6 @@ foreach ($filesBan as $fileBan) {
$index->commit();
// set_include_path(__DIR__ . '/../apps/maarch_entreprise/tools/' . PATH_SEPARATOR . get_include_path());
// $_ENV['maarch_tools_path'] = __DIR__ . '/../apps/maarch_entreprise/tools/';
// Zend_Search_Lucene_Analysis_Analyzer::setDefault(
// new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive() // we need utf8 for accents
// );
// Zend_Search_Lucene_Search_QueryParser::setDefaultOperator(Zend_Search_Lucene_Search_QueryParser::B_AND);
// Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
// $index = Zend_Search_Lucene::open($indexFileDirectory);
// $hits = $index->find('gambetta~');
// foreach ($hits as $hit) {
// var_dump($hit->Id . ': ' . $hit->streetNumber . ' ' . $hit->streetName . ' ' . $hit->postalCode . ' ' . $hit->city . ' ' . $hit->afnorName);
// }
/**
* Check if a folder is empty
* @param $dir string path of the directory to chek
......
......@@ -58,11 +58,11 @@ class UserModelAbstract
return $aUser[0];
}
public static function create(array $aArgs = [])
public static function create(array $aArgs)
{
ValidatorModel::notEmpty($aArgs, ['user']);
ValidatorModel::notEmpty($aArgs['user'], ['userId', 'firstname', 'lastname']);
ValidatorModel::stringType($aArgs['user'], ['userId', 'firstname', 'lastname', 'mail', 'initials', 'thumbprint', 'phone', 'changePassword']);
ValidatorModel::stringType($aArgs['user'], ['userId', 'firstname', 'lastname', 'mail', 'initials', 'thumbprint', 'phone', 'changePassword', 'loginmode']);
DatabaseModel::insert([
'table' => 'users',
......@@ -77,7 +77,7 @@ class UserModelAbstract
'enabled' => 'Y',
'status' => 'OK',
'change_password' => empty($aArgs['user']['changePassword']) ? 'Y' : $aArgs['user']['changePassword'],
'loginmode' => 'standard',
'loginmode' => empty($aArgs['user']['loginmode']) ? 'standard' : $aArgs['user']['loginmode'],
'password' => SecurityModel::getPasswordHash('maarch')
]
]);
......@@ -90,7 +90,7 @@ class UserModelAbstract
ValidatorModel::notEmpty($aArgs, ['id', 'user']);
ValidatorModel::notEmpty($aArgs['user'], ['firstname', 'lastname']);
ValidatorModel::intVal($aArgs, ['id']);
ValidatorModel::stringType($aArgs['user'], ['firstname', 'lastname', 'mail', 'initials', 'thumbprint', 'phone', 'enabled']);
ValidatorModel::stringType($aArgs['user'], ['firstname', 'lastname', 'mail', 'initials', 'thumbprint', 'phone', 'enabled', 'loginmode']);
DatabaseModel::update([
'table' => 'users',
......@@ -101,7 +101,8 @@ class UserModelAbstract
'phone' => $aArgs['user']['phone'],
'initials' => $aArgs['user']['initials'],
'enabled' => $aArgs['user']['enabled'],
'thumbprint' => $aArgs['user']['thumbprint']
'thumbprint' => $aArgs['user']['thumbprint'],
'loginmode' => empty($aArgs['user']['loginmode']) ? 'standard' : $aArgs['user']['loginmode'],
],
'where' => ['id = ?'],
'data' => [$aArgs['id']]
......
......@@ -131,18 +131,21 @@ class AutoCompleteController
\Zend_Search_Lucene_Search_QueryParser::setDefaultOperator(\Zend_Search_Lucene_Search_QueryParser::B_AND);
\Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
$index = \Zend_Search_Lucene::open('addresses_ban/indexes');
$index = \Zend_Search_Lucene::open('ban/indexes');
\Zend_Search_Lucene::setResultSetLimit(10);
$hits = $index->find($data['address']);
$addresses = [];
foreach($hits as $key => $hit){
$addresses[] = [
$hit->id,
$hit->afnorName,
$hit->postalCode,
$hit->streetNumber
'banId' => $hit->banId,
'number' => $hit->streetNumber,
'afnorName' => $hit->afnorName,
'postalCode' => $hit->postalCode,
'city' => $hit->city
];
}
return $response->withJson(['count' => count($hits), 'addresses' => $addresses]);
return $response->withJson(['addresses' => $addresses]);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment