diff options
Diffstat (limited to 'juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java')
-rw-r--r-- | juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java b/juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java new file mode 100644 index 00000000..d6fabc96 --- /dev/null +++ b/juick-server/src/main/java/com/juick/service/TelegramServiceImpl.java @@ -0,0 +1,58 @@ +package com.juick.service; + +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +import javax.inject.Inject; +import java.util.List; +import java.util.UUID; + +/** + * Created by vt on 24/11/2016. + */ +@Repository +public class TelegramServiceImpl extends BaseJdbcService implements TelegramService { + @Inject + protected TelegramServiceImpl(JdbcTemplate jdbc) { + super(jdbc, null); + } + + @Override + public void addChat(Long id) { + getJdbcTemplate().update("INSERT IGNORE INTO telegram_chats(chat_id) VALUES(?)", id); + } + + @Override + public List<Long> getChats() { + return getJdbcTemplate().queryForList("SELECT chat_id FROM telegram_chats", Long.class); + } + + @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; + } + } + + @Override + public boolean createTelegramUser(long tgID, String tgName) { + return getJdbcTemplate().update("INSERT INTO telegram(tg_id, tg_name, loginhash) VALUES(?,?,?)", + tgID, tgName, UUID.randomUUID().toString()) > 0; + } + + @Override + public List<Long> getSubscribers(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); + } + + @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); + } +} |