diff options
author | Vitaly Takmazov | 2017-11-13 15:23:06 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2017-11-13 15:23:06 +0300 |
commit | fc77902b14c16e7c911a0f2fe6a73e69b252f699 (patch) | |
tree | 4e86783db9b588af9f98a8a3e56a48be7a6d53a5 /juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java | |
parent | 4f32ea8c6889be56861a290e633a89c5b6740e3a (diff) |
notifications: moved top service from cron
Diffstat (limited to 'juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java')
-rw-r--r-- | juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java b/juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java index f71837a7..751b7fc3 100644 --- a/juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java +++ b/juick-server-jdbc/src/main/java/com/juick/service/MessagesServiceImpl.java @@ -870,4 +870,18 @@ public class MessagesServiceImpl extends BaseJdbcService implements MessagesServ .addValue("before", before), new MessageMapper()); } + @Transactional(readOnly = true) + @Override + public List<Integer> getPopularCandidates() { + return getJdbcTemplate().queryForList("SELECT replies.message_id FROM replies " + + "INNER JOIN messages ON replies.message_id = messages.message_id " + + "LEFT JOIN messages_tags ON messages_tags.message_id = messages.message_id " + + "WHERE COALESCE(messages_tags.tag_id, 0) != 2 AND replies.ts > DATE_ADD(now(), INTERVAL -2 HOUR) " + + "AND messages.popular=0 GROUP BY message_id having COUNT(DISTINCT(replies.user_id)) > 5 " + + "UNION ALL SELECT favorites.message_id FROM favorites " + + "INNER JOIN messages ON messages.message_id = favorites.message_id " + + "LEFT JOIN messages_tags ON messages_tags.message_id = messages.message_id " + + "WHERE COALESCE(messages_tags.tag_id, 0) != 2 AND favorites.ts > DATE_ADD(NOW(), INTERVAL -2 HOUR) " + + "GROUP BY message_id HAVING COUNT(DISTINCT favorites.user_id) > 1;", Integer.class); + } } |