From 6fc6cd055ba18c8692928cb09a339120d8d6a253 Mon Sep 17 00:00:00 2001 From: Alexander Alexeev Date: Fri, 25 Nov 2016 04:07:50 +0700 Subject: formatted + transactional settings --- .../java/com/juick/service/TelegramService.java | 7 +++- .../com/juick/service/TelegramServiceImpl.java | 45 +++++++++++++--------- 2 files changed, 33 insertions(+), 19 deletions(-) (limited to 'juick-server/src/main/java/com') 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 getChats(); + int getUser(long tgId); + boolean createTelegramUser(long tgID, String tgName); + List getSubscribers(int uid); + List 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 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 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 getSubscribers(int uid) { - return getJdbcTemplate().queryForList("SELECT tg_id FROM telegram INNER JOIN subscr_users " + + 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(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 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