package com.juick.service; 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; import java.util.UUID; /** * Created by vt on 24/11/2016. */ @Repository public class TelegramServiceImpl extends BaseJdbcService implements TelegramService { @Inject public TelegramServiceImpl(JdbcTemplate jdbc) { super(jdbc, null); } @Transactional @Override 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 getChats() { return getJdbcTemplate().queryForList("SELECT chat_id FROM telegram_chats", Long.class); } @Transactional(readOnly = true) @Override public int getUser(final long tgId) { List 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 @Override 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 @Override public boolean deleteTelegramUser(Integer uid) { return getJdbcTemplate().update("DELETE FROM telegram WHERE user_id=?", uid) > 0; } @Transactional(readOnly = true) @Override public List 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 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); } }