Example #1
0
 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;
 }