From 21f4a71c63ade23ef690c1dff15670efb2859d74 Mon Sep 17 00:00:00 2001 From: L_DelOff Date: Sun, 17 Dec 2023 16:41:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servermonitorbot/init/StartBot.java | 18 ++++++++++++++++-- .../repository/UserRepository.java | 5 +++++ .../service/command/CommandTemplate.java | 3 ++- .../service/user/UserService.java | 4 ++++ .../service/user/UserServiceImpl.java | 5 +++++ 5 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/ldeloff/servermonitorbot/init/StartBot.java b/src/main/java/ru/ldeloff/servermonitorbot/init/StartBot.java index 5530238..ec24ba4 100644 --- a/src/main/java/ru/ldeloff/servermonitorbot/init/StartBot.java +++ b/src/main/java/ru/ldeloff/servermonitorbot/init/StartBot.java @@ -7,19 +7,25 @@ import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import org.telegram.telegrambots.meta.TelegramBotsApi; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; import org.telegram.telegrambots.updatesreceivers.DefaultBotSession; import ru.ldeloff.servermonitorbot.controller.TelegramBotController; +import ru.ldeloff.servermonitorbot.model.User; +import ru.ldeloff.servermonitorbot.service.command.CommandTemplate; +import ru.ldeloff.servermonitorbot.service.user.UserService; @Slf4j @Component @NoArgsConstructor public class StartBot implements ApplicationRunner { private TelegramBotController telegramBot; + private UserService userService; @Autowired - public StartBot(TelegramBotController telegramBot) { + public StartBot(TelegramBotController telegramBot, UserService userService) { this.telegramBot = telegramBot; + this.userService = userService; } @Override @@ -27,10 +33,18 @@ public class StartBot implements ApplicationRunner { try { TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class); botsApi.registerBot(telegramBot); + userService.getAllUsers().forEach(this::SendInitMessage); log.info("Бот запущен"); } catch (TelegramApiException e) { - e.printStackTrace(); + //e.printStackTrace(); log.error(e.getMessage()); } } + + private void SendInitMessage(User user) { + SendMessage answer = new SendMessage(); + answer.setChatId(user.getTelegramId()); + answer.setText("Бот перезапущен"); + CommandTemplate.sendMessage(answer, telegramBot); + } } diff --git a/src/main/java/ru/ldeloff/servermonitorbot/repository/UserRepository.java b/src/main/java/ru/ldeloff/servermonitorbot/repository/UserRepository.java index ceaacd3..e4a1462 100644 --- a/src/main/java/ru/ldeloff/servermonitorbot/repository/UserRepository.java +++ b/src/main/java/ru/ldeloff/servermonitorbot/repository/UserRepository.java @@ -1,10 +1,15 @@ package ru.ldeloff.servermonitorbot.repository; +import jakarta.validation.constraints.NotNull; +import org.springframework.data.domain.Example; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import ru.ldeloff.servermonitorbot.model.User; +import java.util.List; + @Repository public interface UserRepository extends JpaRepository { User getByTelegramId(long id); + @NotNull List findAll(); } diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/CommandTemplate.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/CommandTemplate.java index 0f178d7..c659778 100644 --- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/CommandTemplate.java +++ b/src/main/java/ru/ldeloff/servermonitorbot/service/command/CommandTemplate.java @@ -39,6 +39,7 @@ public abstract class CommandTemplate { sendMessage(actionForNotAuth(user, answer), bot); } } + protected void logSuccess(User user, String message) { log.info("Получена команда '" + message + "' от " + user.getLogin() + " (" + user.getTelegramId() + "). OK"); @@ -76,7 +77,7 @@ public abstract class CommandTemplate { return ""; } - private void sendMessage(SendMessage message, TelegramBotController bot) { + public static void sendMessage(SendMessage message, TelegramBotController bot) { try { bot.execute(message); } catch (TelegramApiException e) { diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserService.java b/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserService.java index e7ea1ff..fa789e0 100644 --- a/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserService.java +++ b/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserService.java @@ -2,8 +2,12 @@ package ru.ldeloff.servermonitorbot.service.user; import ru.ldeloff.servermonitorbot.model.User; +import java.util.List; + public interface UserService { User saveOrUpdateUser(User user); User getByTelegramId(Long id); + + List getAllUsers(); } diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserServiceImpl.java b/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserServiceImpl.java index ff2844a..43345ed 100644 --- a/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserServiceImpl.java +++ b/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserServiceImpl.java @@ -6,6 +6,8 @@ import org.springframework.stereotype.Service; import ru.ldeloff.servermonitorbot.model.User; import ru.ldeloff.servermonitorbot.repository.UserRepository; +import java.util.List; + @Service @RequiredArgsConstructor @Slf4j @@ -26,4 +28,7 @@ public class UserServiceImpl implements UserService { public User getByTelegramId(Long id) { return userRepository.getByTelegramId(id); } + + @Override + public List getAllUsers() {return userRepository.findAll(); } }