first commit

This commit is contained in:
2025-08-02 16:30:27 +02:00
commit 23646bfcee
14851 changed files with 1750626 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
<?php
namespace KupShop\UserBundle\Resources\script;
use KupShop\AdminBundle\Util\Script\Script;
use KupShop\KupShopBundle\Util\Compat\ServiceContainer;
use KupShop\KupShopBundle\Util\Mail\EmailCheck;
use Query\Operator;
class CheckUsersEmailsScript extends Script
{
protected static $name = 'Check Users Emails (isEmailDomainValid)';
protected static $defaultParameters = [
'limit' => 1000,
'offset' => 0,
'delete_users' => false,
];
protected function run(array $arguments)
{
/** @var EmailCheck $emailCheck */
$emailCheck = ServiceContainer::getService(EmailCheck::class);
$users = sqlQueryBuilder()->select('u.id, u.email, u.figure, u.get_news, COUNT(o.id) AS orders_count')
->from('users', 'u')->leftJoin('u', 'orders', 'o', 'o.id_user = u.id')
->groupBy('u.id')->orderBy('u.id')
->setFirstResult($arguments['offset'] ?? 0)->setMaxResults($arguments['limit'] ?? 1000)
->execute()->fetchAll();
$users = array_combine(array_column($users, 'email'), $users);
$u = [];
$delete_users = !empty($arguments['delete_users']);
$deleted = 0;
foreach ($users as $email => $user) {
if (!empty($email) && !$emailCheck->isEmailDomainValid($email)) {
if (empty($user['orders_count'])) {
if ($delete_users) {
$user['deleted'] = sqlQueryBuilder()->delete('users')->where(Operator::equals(['id' => $user['id']]))->execute();
$deleted += $user['deleted'];
}
} else {
$user["can't delete"] = $user['orders_count'].' orders';
}
$u[$email] = $user;
}
}
$this->log('Not valid: '.count($u).' users of '.count($users).' selected');
if ($delete_users) {
$this->log("delete_users: {$deleted}, can't delete: ".(count($u) - $deleted));
}
$this->log(var_dump($u));
$this->log('Hotovo.');
}
}
return CheckUsersEmailsScript::class;