Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6749 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

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