private static function getPisDataForHost($host, $fromDate, $toDate, $dealId = false) { $keys = array("url" => 1); $cond = array("date" => array('$gte' => new MongoDate(strtotime($fromDate)), '$lte' => new MongoDate(strtotime($toDate)))); $pi_col = MongoUtils::getCollection('pis', $host); $initial = MongoUtils::getInitial('pis'); $reduce = MongoUtils::getReduce('pis'); $g = $pi_col->group($keys, $initial, $reduce, array("condition" => $cond)); $res = array('total' => 0, 'cb' => 0, 'yiid' => 0); $res['services']['all'] = array("cb" => 0, "yiid" => 0); foreach (PseudoStatsModel::$services as $service) { $res['services'][$service] = array("cb" => 0, "yiid" => 0); } foreach ($g['retval'] as $result) { // If we want to see the deal pis and clickbacks, we scope to the child section if ($dealId) { if (isset($result['deal'])) { $result = $result['deal']; } if (isset($g['retval'][0]['deal'])) { $g['retval'][0] = $g['retval'][0]['deal']; } } $res['total'] += $result['total']; $res['cb'] += $result['cb']; $res['yiid'] += $result['yiid']; foreach (PseudoStatsModel::$services as $service) { $res['services'][$service]['cb'] += $g['retval'][0]['services'][$service]['cb']; $res['services'][$service]['yiid'] += $g['retval'][0]['services'][$service]['yiid']; $res['services']['all']['cb'] += $g['retval'][0]['services'][$service]['cb']; $res['services']['all']['yiid'] += $g['retval'][0]['services'][$service]['yiid']; } } $res['statistics'] = MongoUtils::addPiStatistics($res, $fromDate, $toDate); return $res; }