- return $this->winners()->selectRaw('(select t2.uname from guessing_winners t2 where t2.uid = guessing_winners.uid order by created_at desc limit 1) as name, sum(score) as score')->groupBy('uid')->orderBy('score', 'desc')->limit(10)->get();
+ $query = $this->winners()
+ ->selectRaw('(select t2.uname from guessing_winners t2 where t2.uid = guessing_winners.uid order by created_at desc limit 1) as name, sum(score) as score')
+ ->where('score', '!=', 0)
+ ->groupBy('uid')
+ ->orderBy('score', 'desc')
+ ->limit(10);
+ $type = $this->getGuessingSetting('leaderboard_type', 'all');
+ if ($type == 'month') {
+ $query->where('created_at', '>=', now()->startOfMonth());
+ } else if ($type == 'year') {
+ $query->where('created_at', '>=', now()->startOfYear());
+ } else if (is_numeric($type)) {
+ $query->where('created_at', '>=', now()->sub($type, 'days'));
+ }
+ return $query->get();