From 02723131139806c761539a42a5fa80b68ecadee8 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 29 Jun 2017 14:03:04 +0300 Subject: project structure: split server into jdbc + web --- .../com/juick/service/TelegramServiceImpl.java | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 juick-server-jdbc/src/main/java/com/juick/service/TelegramServiceImpl.java (limited to 'juick-server-jdbc/src/main/java/com/juick/service/TelegramServiceImpl.java') diff --git a/juick-server-jdbc/src/main/java/com/juick/service/TelegramServiceImpl.java b/juick-server-jdbc/src/main/java/com/juick/service/TelegramServiceImpl.java new file mode 100644 index 00000000..a698e2e8 --- /dev/null +++ b/juick-server-jdbc/src/main/java/com/juick/service/TelegramServiceImpl.java @@ -0,0 +1,73 @@ +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); + } +} -- cgit v1.2.3