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