Completed
Push — master ( b3aad9...ab68d9 )
by Vladimir
15s
created

MatchActivityQueryBuilder::includeMatchActivity()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 10
nc 1
nop 2
1
<?php
2
3
/**
4
 * @property BaseModel $type
5
 */
6
class MatchActivityQueryBuilder extends QueryBuilder
7
{
8
    protected function includeMatchActivity($selectColumns, $leftJoinOn)
9
    {
10
        $type = $this->type;
11
        $columns = $type::getEagerColumns($this->getFromAlias());
12
13
        $this->columns['activity'] = 'activity';
14
        $this->extraColumns = 'SUM(m2.activity) AS activity';
15
        $this->extras .= '
16
          LEFT JOIN
17
            (SELECT
18
              m.id,'
19
              . implode(',', $selectColumns) . ',
20
              TIMESTAMPDIFF(SECOND, timestamp, NOW()) / 86400 AS days_passed,
21
              (0.0116687059537612 * (POW((45 - LEAST((SELECT days_passed), 45)), (1/6)) + ATAN(31 - (SELECT days_passed)) / 2)) AS activity
22
            FROM
23
              matches m
24
            WHERE
25
              DATEDIFF(NOW(), timestamp) <= 45
26
            ORDER BY
27
              timestamp DESC) m2 ON ' . $leftJoinOn
28
        ;
29
30
        $this->groupQuery = 'GROUP BY ' . $columns;
31
32
        return $this;
33
    }
34
}
35