nkdev55
@nkdev55
Full Stack Magento Developer

Как выводить рейтинг пользователей в laravel?

Всем привет! Нужно на отдельной странице выводить топ 50 пользователей за месяц, за все время. Как в отдельной категории, так и за все категории.
А теперь подробнее.
Сайт еще в стадии разработки, для меня это первый проект на laravel. Поэтому прошу помощи у пользователей Тостера, не обязательно кодом, можно и просто расписать логику. Я даже представить себе не могу как реализовать эту функцию.
У каждого пользователя(table users) есть свои новости(table news), которые он ежедневно добавляет. После проверки администрацией каждой новости присваивается в поле status число. Если 1, то пользователю дается рейтинг +50. Если 2, то -30. Если 3, то не изменяется рейтинг.
Нужно выводить топ пользователей за месяц и за все время, в каждой категории(table categories) и во всех категориях вместе.
Как правильно осуществить этот рейтинг? Помогите с логикой рейтинга. А если еще и код подкинете, буду безмерно благодарен.
  • Вопрос задан
  • 555 просмотров
Решения вопроса 1
MySQL запрос
select 
`id_user`
,sum(case when `status` = 1 then 50 else 0 end) - sum(case when `status` = 2 then 30 else 0 end)

from news
WHERE MONTH(`date`) = 3 AND YEAR(`date`) = 2019
group by 1
order by 2 desc, 1 asc
LIMIT 50
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы