aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src/main/java/com/juick
diff options
context:
space:
mode:
Diffstat (limited to 'juick-server/src/main/java/com/juick')
-rw-r--r--juick-server/src/main/java/com/juick/service/TelegramService.java7
-rw-r--r--juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java45
2 files changed, 33 insertions, 19 deletions
diff --git a/juick-server/src/main/java/com/juick/service/TelegramService.java b/juick-server/src/main/java/com/juick/service/TelegramService.java
index d5aa4fa8..259ab367 100644
--- a/juick-server/src/main/java/com/juick/service/TelegramService.java
+++ b/juick-server/src/main/java/com/juick/service/TelegramService.java
@@ -6,10 +6,15 @@ import java.util.List;
* Created by vt on 24/11/2016.
*/
public interface TelegramService {
- void addChat(Long id);
+ boolean addChat(Long id);
+
List<Long> getChats();
+
int getUser(long tgId);
+
boolean createTelegramUser(long tgID, String tgName);
+
List<Long> getSubscribers(int uid);
+
List<Long> getSubscribersToComments(int mid, int ignore_uid);
}
diff --git a/juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java b/juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java
index d6fabc96..30c0daca 100644
--- a/juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java
+++ b/juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java
@@ -1,8 +1,8 @@
package com.juick.service;
-import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
import javax.inject.Inject;
import java.util.List;
@@ -13,46 +13,55 @@ import java.util.UUID;
*/
@Repository
public class TelegramServiceImpl extends BaseJdbcService implements TelegramService {
+
@Inject
- protected TelegramServiceImpl(JdbcTemplate jdbc) {
+ public TelegramServiceImpl(JdbcTemplate jdbc) {
super(jdbc, null);
}
+ @Transactional(readOnly = true)
@Override
- public void addChat(Long id) {
- getJdbcTemplate().update("INSERT IGNORE INTO telegram_chats(chat_id) VALUES(?)", id);
+ public boolean addChat(final Long id) {
+ return getJdbcTemplate().update("INSERT IGNORE INTO telegram_chats(chat_id) VALUES(?)", id) > 0;
}
+ @Transactional(readOnly = true)
@Override
public List<Long> getChats() {
return getJdbcTemplate().queryForList("SELECT chat_id FROM telegram_chats", Long.class);
}
+ @Transactional(readOnly = true)
@Override
- public int getUser(long tgId) {
- try {
- return getJdbcTemplate().queryForObject("SELECT id FROM users INNER JOIN telegram " +
- "ON telegram.user_id = users.id WHERE telegram.tg_id=?", Integer.class, tgId);
- } catch (EmptyResultDataAccessException e) {
- return 0;
- }
+ public int getUser(final long tgId) {
+ List<Integer> list = getJdbcTemplate().queryForList(
+ "SELECT id FROM users INNER JOIN telegram " +
+ "ON telegram.user_id = users.id WHERE telegram.tg_id=?", Integer.class, tgId);
+
+ return list.isEmpty() ? 0 : list.get(0);
}
+ @Transactional(readOnly = true)
@Override
- public boolean createTelegramUser(long tgID, String tgName) {
- return getJdbcTemplate().update("INSERT INTO telegram(tg_id, tg_name, loginhash) VALUES(?,?,?)",
+ public boolean createTelegramUser(final long tgID, final String tgName) {
+ return getJdbcTemplate().update(
+ "INSERT INTO telegram(tg_id, tg_name, loginhash) VALUES(?,?,?)",
tgID, tgName, UUID.randomUUID().toString()) > 0;
}
+ @Transactional(readOnly = true)
@Override
- public List<Long> getSubscribers(int uid) {
- return getJdbcTemplate().queryForList("SELECT tg_id FROM telegram INNER JOIN subscr_users " +
+ public List<Long> getSubscribers(final int uid) {
+ return getJdbcTemplate().queryForList("" +
+ "SELECT tg_id FROM telegram INNER JOIN subscr_users " +
"ON (subscr_users.user_id=? AND telegram.user_id=subscr_users.suser_id)", Long.class, uid);
}
+ @Transactional(readOnly = true)
@Override
- public List<Long> getSubscribersToComments(int mid, int ignore_uid) {
- return getJdbcTemplate().queryForList("SELECT tg_id FROM telegram INNER JOIN subscr_messages " +
- "ON (telegram.user_id=subscr_messages.suser_id) WHERE message_id=? AND suser_id!=?", Long.class, mid, ignore_uid);
+ public List<Long> getSubscribersToComments(final int mid, final int ignore_uid) {
+ return getJdbcTemplate().queryForList(
+ "SELECT tg_id FROM telegram INNER JOIN subscr_messages " +
+ "ON (telegram.user_id=subscr_messages.suser_id) WHERE message_id=? AND suser_id!=?", Long.class, mid, ignore_uid);
}
}