File size: 1,426 Bytes
9304daa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php

/**
 * Matomo - free/libre analytics platform
 *
 * @link    https://matomo.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 *
 */

namespace Piwik\Plugins\Bandwidth\RecordBuilders;

use Piwik\ArchiveProcessor\RecordBuilder;
use Piwik\DataAccess\LogAggregator;
use Piwik\Plugins\Bandwidth\Columns\Bandwidth as BandwidthColumn;

abstract class Base extends RecordBuilder
{
    protected function queryActionsByDimension(LogAggregator $logAggregator, $extraWhere = null, $joinLogActionOnColumn = false)
    {
        $column = new BandwidthColumn();
        $column = $column->getColumnName();
        $table  = 'log_link_visit_action';
        $field  = 'sum_bandwidth';
        $where  = "$table.$column is not null";

        $selects = [
            "sum($table.$column) as `$field`",
        ];

        if (!empty($extraWhere)) {
            $where = "$where AND $extraWhere";
        }

        return $logAggregator->queryActionsByDimension([$column], $where, $selects, false, null, $joinLogActionOnColumn);
    }

    /**
     * @param \Zend_Db_Statement $query
     * @param string             $field
     */
    protected function sumNumericRecord($query, string $field): int
    {
        $total = 0;

        while ($row = $query->fetch()) {
            if (!empty($row[$field])) {
                $total += $row[$field];
            }
        }

        return (int)$total;
    }
}