Proyectos de Subversion LeadersLinked - Services

Rev

Rev 1 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
345 www 2
declare(strict_types = 1);
1 efrain 3
namespace LeadersLinked\Command;
4
 
5
use Symfony\Component\Console\Command\Command;
6
use Symfony\Component\Console\Input\InputInterface;
7
use Symfony\Component\Console\Output\OutputInterface;
8
use Laminas\Db\Adapter\AdapterInterface;
9
use Laminas\Log\LoggerInterface;
10
use LeadersLinked\Mapper\UserMapper;
11
use LeadersLinked\Mapper\CompanyMapper;
12
use LeadersLinked\Mapper\CompanyUserMapper;
13
use LeadersLinked\Model\User;
14
use LeadersLinked\Model\UserType;
15
use LeadersLinked\Model\CompanyUser;
16
use Laminas\Mvc\I18n\Translator;
17
use LeadersLinked\Cache\CacheInterface;
18
 
19
class CheckDefaultFollowerAndConnectionForDefaultNetworkCommand extends Command
20
{
345 www 21
 
1 efrain 22
    /**
23
     *
24
     * @var \Laminas\Db\Adapter\AdapterInterface
25
     */
26
    private $adapter;
345 www 27
 
1 efrain 28
    /**
29
     *
30
     * @var \LeadersLinked\Cache\CacheInterface
31
     */
32
    private $cache;
33
 
34
    /**
35
     *
36
     * @var \Laminas\Log\LoggerInterface
37
     */
38
    private $logger;
39
 
40
    /**
41
     *
42
     * @var array
43
     */
44
    private $config;
345 www 45
 
1 efrain 46
    /**
345 www 47
     *
1 efrain 48
     * @var \Laminas\Mvc\I18n\Translator
49
     */
50
    private $translator;
345 www 51
 
1 efrain 52
    /**
53
     *
54
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
55
     * @param \LeadersLinked\Cache\CacheInterface $cache
345 www 56
     * @param
57
     *            \Laminas\Log\LoggerInterface
1 efrain 58
     * @param array $config
59
     * @param \Laminas\Mvc\I18n\Translator $translator
60
     */
345 www 61
    public function __construct($adapter, $cache, $logger, $config, $translator)
1 efrain 62
    {
345 www 63
        $this->adapter = $adapter;
64
        $this->cache = $cache;
65
        $this->logger = $logger;
66
        $this->config = $config;
67
        $this->translator = $translator;
68
 
1 efrain 69
        parent::__construct();
70
    }
71
 
345 www 72
    protected function execute(InputInterface $input, OutputInterface $output): int
1 efrain 73
    {
74
        $output->writeln('Cargando las empresas');
345 www 75
 
1 efrain 76
        $companyMapper = CompanyMapper::getInstance($this->adapter);
77
        $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
345 www 78
 
1 efrain 79
        $companies = $companyMapper->fetchAll();
345 www 80
 
81
        foreach ($companies as $company) {
1 efrain 82
            $user = $companyUserMapper->fetchOwnerByCompanyId($company->id);
345 www 83
            if (! $user) {
1 efrain 84
                $output->writeln('Agregando el propietario de la empresa : ' . $company->name);
345 www 85
 
86
                /**
87
                 * Creación del fake user propietario de la empresa
88
                 */
1 efrain 89
                $user = new User();
345 www 90
                $user->email = 'fake-email' . $company->id;
1 efrain 91
                $user->first_name = substr($company->name, 0, 64);
92
                $user->last_name = substr($company->name, 64);
93
                $user->status = User::STATUS_INACTIVE;
94
                $user->blocked = User::BLOCKED_YES;
95
                $user->login_attempt = 0;
96
                $user->email_verified = User::EMAIL_VERIFIED_YES;
97
                $user->show_in_search = User::SHOW_IN_SEARCH_NO;
98
                $user->password = 'NO-PASSWORD';
99
                $user->usertype_id = UserType::COMPANY;
345 www 100
 
1 efrain 101
                $userMapper = UserMapper::getInstance($this->adapter);
345 www 102
                if ($userMapper->insert($user)) {
1 efrain 103
                    $companyUser = new CompanyUser();
104
                    $companyUser->backend = CompanyUser::BACKEND_NO;
105
                    $companyUser->company_id = $company->id;
106
                    $companyUser->creator = CompanyUser::CREATOR_NO;
107
                    $companyUser->owner = CompanyUser::OWNER_YES;
108
                    $companyUser->status = CompanyUser::STATUS_ACCEPTED;
109
                    $companyUser->user_id = $user->id;
345 www 110
 
1 efrain 111
                    $companyUserMapper->insert($companyUser);
112
                }
113
            }
114
        }
115
 
345 www 116
        $output->writeln('Fin del proceso');
1 efrain 117
 
118
        return 0;
119
    }
120
}