public function getMostDownloadedFiles($articles, $dates = null, $limit = null)
{
$builder = $this->createQueryBuilder('stat');
if ($dates !== null) {
$builder->andWhere('stat.date IN (:dates)')->setParameter('dates', $dates);
}
$builder->join('OjsJournalBundle:ArticleFile', 'file', 'WHERE', 'stat.articleFile = file')->join('OjsJournalBundle:Article', 'article', 'WHERE', 'file.article = article')->addSelect('SUM(stat.download)')->andWhere('article IN (:articles)')->groupBy('stat.articleFile, stat.id')->orderBy('stat.download', 'DESC')->setMaxResults($limit)->setParameter('articles', $articles);
return $builder->getQuery()->getResult();
}