diff options
author | Alexander Alexeev | 2016-11-17 23:45:13 +0700 |
---|---|---|
committer | Vitaly Takmazov | 2016-11-23 13:02:55 +0300 |
commit | 19709fa2ade17433b9a76ad4459e1e09d27b88bf (patch) | |
tree | 188ba9d24f4fc5bdf7707c57d61cd9c7212b45cf /juick-server/src/main/java/com/juick/service/PushQueriesServiceImpl.java | |
parent | 78a1a68e5555648a07588873b08d59a094391709 (diff) |
repository improvenments: using Collection in params, forse using exists in some query, force using Lists as query result
Diffstat (limited to 'juick-server/src/main/java/com/juick/service/PushQueriesServiceImpl.java')
-rw-r--r-- | juick-server/src/main/java/com/juick/service/PushQueriesServiceImpl.java | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/juick-server/src/main/java/com/juick/service/PushQueriesServiceImpl.java b/juick-server/src/main/java/com/juick/service/PushQueriesServiceImpl.java index 9bbadef6..b11f0a79 100644 --- a/juick-server/src/main/java/com/juick/service/PushQueriesServiceImpl.java +++ b/juick-server/src/main/java/com/juick/service/PushQueriesServiceImpl.java @@ -1,11 +1,14 @@ package com.juick.service; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; import javax.inject.Inject; +import java.util.Collection; +import java.util.Collections; import java.util.List; /** @@ -29,10 +32,13 @@ public class PushQueriesServiceImpl extends BaseJdbcService implements PushQueri } @Override - public List<String> getAndroidTokens(final List<Integer> uids) { - return getJdbcTemplate().queryForList( - "SELECT regid FROM android INNER JOIN users " + - "ON (users.id=android.user_id) WHERE users.id IN (" + StringUtils.collectionToCommaDelimitedString(uids) + ")", + public List<String> getAndroidTokens(final Collection<Integer> uids) { + if (CollectionUtils.isEmpty(uids)) + return Collections.emptyList(); + + return getNamedParameterJdbcTemplate().queryForList( + "SELECT regid FROM android INNER JOIN users ON (users.id = android.user_id) WHERE users.id IN (:ids)", + new MapSqlParameterSource("ids", uids), String.class); } @@ -45,10 +51,13 @@ public class PushQueriesServiceImpl extends BaseJdbcService implements PushQueri } @Override - public List<String> getWindowsTokens(final List<Integer> uids) { - return getJdbcTemplate().queryForList( - "SELECT url FROM winphone INNER JOIN users " + - "ON (users.id=winphone.user_id) WHERE users.id IN (" + StringUtils.collectionToCommaDelimitedString(uids) + ")", + public List<String> getWindowsTokens(final Collection<Integer> uids) { + if (CollectionUtils.isEmpty(uids)) + return Collections.emptyList(); + + return getNamedParameterJdbcTemplate().queryForList( + "SELECT url FROM winphone INNER JOIN users ON (users.id=winphone.user_id) WHERE users.id IN (:ids)", + new MapSqlParameterSource("ids", uids), String.class); } @@ -66,10 +75,13 @@ public class PushQueriesServiceImpl extends BaseJdbcService implements PushQueri } @Override - public List<String> getAPNSTokens(final List<Integer> uids) { - return getJdbcTemplate().queryForList( - "SELECT token FROM ios INNER JOIN users " + - "ON (users.id=ios.user_id) WHERE users.id IN (" + StringUtils.collectionToCommaDelimitedString(uids) + ")", + public List<String> getAPNSTokens(final Collection<Integer> uids) { + if (CollectionUtils.isEmpty(uids)) + return Collections.emptyList(); + + return getNamedParameterJdbcTemplate().queryForList( + "SELECT token FROM ios INNER JOIN users ON (users.id = ios.user_id) WHERE users.id IN (:ids)", + new MapSqlParameterSource("ids", uids), String.class); } } |