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 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 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 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); } }