Files
grzanieplus.pl/plugins/stUserTrackerLevelPlugin/data/tasks/testData.php
2025-03-12 17:06:23 +01:00

147 lines
4.9 KiB
PHP

<?php
pake_desc('Generowanie testowych danych do monitorowania klientow');
pake_task('create-ut-data', 'project_exists');
pake_desc('Usuwanie testowych danych do monitorowania klientow');
pake_task('delete-ut-data', 'project_exists');
// ./symfony create-ut-data 240 10
function run_create_ut_data(pakeTask $task, array $args = [], array $options = [])
{
define('SF_ROOT_DIR', sfConfig::get('sf_root_dir'));
define('SF_APP', 'backend');
define('SF_ENVIRONMENT', 'dev');
define('SF_DEBUG', true);
require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
if($args[0]){
$conut_balls = $args[0];
}else{
$conut_balls = 30;
}
$percent = 90;
$small_number = 6;
if($args[1]){
$max_number = $args[1];
}else{
$max_number = 12;
}
$databaseManager = new sfDatabaseManager();
$databaseManager->initialize();
date_default_timezone_set('Europe/Warsaw');
$c = new Criteria();
$products = ProductPeer::doSelect($c);
for ($i = 0; $i < $conut_balls; $i++) {
$browsers = array("firefox", "chrome", "safari", "opera", "edge");
$random_browser = $browsers[array_rand($browsers)];
$system = array("mac", "windows", "linux");
$random_system = $system[array_rand($system)];
$hardware = array("mobile", "desktop");
$random_hardware = $hardware[array_rand($hardware)];
$ip = array();
for ($ii = 0; $ii < 4; $ii++) {
$ip[] = rand(0, 255);
}
$remote_address = implode(".", $ip);
$color = stUserTrackerLevelInterface::generateColor();
if($products){
$random_product = $products[array_rand($products)];
$product_view = $random_product->getId();
$random_product = $products[array_rand($products)];
$add_to_basket = $random_product->getId();
}
$random_number = rand(1, 100);
if ($random_number <= $percent) {
// W 80% przypadków losujemy liczbę z zakresu 1-8
$result = rand(1, $small_number);
} else {
// W pozostałych 20% przypadków losujemy liczbę z zakresu 9-30
$result = rand($small_number+1, $max_number);
}
$visit_count = $result;
$utl_cookies['created_at'] = date('Y-m-d H:i:s');
$utl_cookies['cookie_id'] = "test";
$utd_cookies['cookie_id'] = "test";
$utd_cookies['visit_count'] = $visit_count;
$utd_cookies['place_order'] = 0;
$utd_cookies['product_view'] = $product_view;
$utd_cookies['add_to_basket'] = $add_to_basket;
$utd_cookies['remote_address'] = $remote_address;
$utd_cookies['browser'] = $random_browser;
$utd_cookies['system'] = $random_system;
$utd_cookies['hardware'] = $random_hardware;
$stUserTrackerLevel = new stUserTrackerLevel();
$stUserTrackerLevel->setCreatedAt($utl_cookies['created_at']);
$stUserTrackerLevel->setCookieId($utl_cookies['cookie_id']);
$stUserTrackerLevel->setUtColor($color);
$stUserTrackerLevel->setUpdatedAt(date('Y-m-d H:i:s'));
$stUserTrackerLevel->setCookieUtdId($utd_cookies['cookie_id']);
$stUserTrackerLevel->setVisitCount($utd_cookies['visit_count']);
$stUserTrackerLevel->setPlaceOrder($utd_cookies['place_order']);
$stUserTrackerLevel->setProductView($utd_cookies['product_view']);
$stUserTrackerLevel->setAddToBasket($utd_cookies['add_to_basket']);
$stUserTrackerLevel->setRemoteAddress($utd_cookies['remote_address']);
$stUserTrackerLevel->setBrowser($utd_cookies['browser']);
$stUserTrackerLevel->setSystem($utd_cookies['system']);
$stUserTrackerLevel->setHardware($utd_cookies['hardware']);
$stUserTrackerLevel->setIsTest(1);
$stUserTrackerLevel->save();
}
$databaseManager->shutdown();
pake_echo('data created');
}
// ./symfony delete-ut-data
function run_delete_ut_data(pakeTask $task, array $args = [], array $options = [])
{
define('SF_ROOT_DIR', sfConfig::get('sf_root_dir'));
define('SF_APP', 'backend');
define('SF_ENVIRONMENT', 'dev');
define('SF_DEBUG', true);
require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
$databaseManager = new sfDatabaseManager();
$databaseManager->initialize();
$c = new Criteria();
$c->add(stUserTrackerLevelPeer::IS_TEST, 1);
$stUserTrackerLevel = stUserTrackerLevelPeer::doDelete($c);
$databaseManager->shutdown();
pake_echo('data deleted');
}