Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
15670 anderson 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Controller;
6
 
15718 anderson 7
use LeadersLinked\Model\User;
15682 anderson 8
use Laminas\View\Model\JsonModel;
9
use Laminas\View\Model\ViewModel;
15718 anderson 10
use LeadersLinked\Mapper\UserMapper;
11
use LeadersLinked\Mapper\QueryMapper;
12
use LeadersLinked\Mapper\DiscoveryContactMapper;
15682 anderson 13
use LeadersLinked\Mapper\DiscoveryContactLogMapper;
15670 anderson 14
use Laminas\Mvc\Controller\AbstractActionController;
15727 anderson 15
use Laminas\Hydrator\ArraySerializableHydrator;
16
use Laminas\Db\ResultSet\HydratingResultSet;
17
use Laminas\Paginator\Adapter\DbSelect;
18
use Laminas\Paginator\Paginator;
15732 anderson 19
use LeadersLinked\Mapper\CompanyMapper;
15806 anderson 20
use LeadersLinked\Model\DiscoveryContactLog;
15970 anderson 21
use LeadersLinked\Model\Push;
15670 anderson 22
 
23
// Create an action controller.
24
class DiscoveryContactProgressController extends AbstractActionController
25
{
15682 anderson 26
    /**
27
     *
28
     * @var AdapterInterface
29
     */
30
    private $adapter;
31
 
32
 
33
    /**
34
     *
35
     * @var AbstractAdapter
36
     */
37
    private $cache;
38
 
39
    /**
40
     *
41
     * @var  LoggerInterface
42
     */
43
    private $logger;
44
 
45
    /**
46
     *
47
     * @var array
48
     */
49
    private $config;
50
 
51
    /**
52
     *
53
     * @param AdapterInterface $adapter
54
     * @param AbstractAdapter $cache
55
     * @param LoggerInterface $logger
56
     * @param array $config
57
     */
58
    public function __construct($adapter, $cache, $logger, $config)
59
    {
60
        $this->adapter      = $adapter;
61
        $this->cache        = $cache;
62
        $this->logger       = $logger;
63
        $this->config       = $config;
64
    }
65
 
15670 anderson 66
 
15678 anderson 67
 
15679 anderson 68
 
15788 anderson 69
    public function indexAction()
70
    {
15794 anderson 71
        //Obtenemos los datos el usuario actualmente logueado
15792 anderson 72
        $currentUserPlugin = $this->plugin('currentUserPlugin');
73
        $currentUser = $currentUserPlugin->getUser();
15793 anderson 74
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
75
        $currentNetwork = $currentNetworkPlugin->getNetwork();
15796 anderson 76
        $request = $this->getRequest();
15793 anderson 77
 
16143 anderson 78
        //if ($request->isGet()) {
79
        $headers  = $request->getHeaders();
80
        $isJson = false;
15795 anderson 81
 
16143 anderson 82
        if ($headers->has('Accept')) {
83
            $accept = $headers->get('Accept');
15796 anderson 84
 
16143 anderson 85
            $prioritized = $accept->getPrioritized();
15796 anderson 86
 
16143 anderson 87
            foreach ($prioritized as $key => $value) {
88
                $raw = trim($value->getRaw());
15796 anderson 89
 
16143 anderson 90
                if (!$isJson) {
91
                    $isJson = strpos($raw, 'json');
15796 anderson 92
                }
93
            }
16143 anderson 94
        }
15796 anderson 95
 
16143 anderson 96
        //if ($isJson) {
97
        $startDate = $this->params()->fromQuery('startDate');
98
        if (empty($startDate)) {
99
            $startDate = date('Y-m-d');
100
        }
15798 anderson 101
 
16143 anderson 102
        $endDate = $this->params()->fromQuery('endDate');
103
        if (empty($endDate)) {
104
            $endDate = date('Y-m-d');
105
        }
15800 anderson 106
 
16143 anderson 107
        $startDate = '2023-01-01';
108
        $endDate = '2023-05-16';
15800 anderson 109
 
16143 anderson 110
        $dtStartDate = \DateTime::createFromFormat('Y-n-d', $startDate);
111
        $dtEndDate = \DateTime::createFromFormat('Y-n-d', $endDate);
15800 anderson 112
 
16143 anderson 113
        if (!$dtStartDate || !$dtEndDate) {
114
            $startDate = date('Y-m-d');
115
            $endDate = date('Y-m-d');
116
        } else {
16125 anderson 117
 
16143 anderson 118
            if ($dtStartDate->getTimestamp() > $dtEndDate->getTimestamp()) {
119
                $startDate = date('Y-m-d');
120
                $endDate = date('Y-m-d');
121
            }
122
        }
15806 anderson 123
 
16143 anderson 124
        $contactProgressRecordMapper = DiscoveryContactLogMapper::getInstance($this->adapter);
125
        $dailyProgress = $contactProgressRecordMapper->fetchAllDataByDateRange($currentUser->id, $startDate, $endDate);
15806 anderson 126
 
15970 anderson 127
 
16143 anderson 128
        //$total = count($dailyProgress);
129
        $users = [];
130
        $added_on = [];
131
        //$total = [];
132
        $data = [
133
            //'total_by_day' => [],
134
            //'added_on' => [],
135
            //'total' => []
136
        ];
16125 anderson 137
 
16143 anderson 138
        foreach ($dailyProgress as $record) {
139
            $users = $record['user_id'];
140
            $added_on = $record['added_on'];
141
            //$total = count($dailyProgress);
142
            //array_push($data['total_by_day'], $users);
143
            //($data['added_on'], $added_on);
16124 anderson 144
 
15840 anderson 145
 
16143 anderson 146
            array_push($data, [
147
                'total_by_day' => $users,
148
                'added_on' => $added_on
149
            ]);
150
            //array_push($data['total'], $total);
151
        }
15842 anderson 152
 
16143 anderson 153
        // array_push($data['total_by_day'], $users);
154
        // array_push($data['added_on'], $added_on);
155
        // array_push($data['total'], $total);
156
 
157
 
158
        return new JsonModel([
159
            'success' => true,
160
            'data' => $data
161
        ]);
162
        // } else {
163
        //     $this->layout()->setTemplate('layout/layout-backend');
164
        //     $viewModel = new ViewModel();
165
        //     $viewModel->setTemplate('leaders-linked/discovery-contact-progress/index.phtml');
166
        //     return $viewModel;
167
        // }
168
        //}
15670 anderson 169
    }
170
}