zend-blog-3-backend

Форк
0
/
TelegramUpdates.php 
48 строк · 1.4 Кб
1
<?php
2

3
namespace App\Cron\Hourly;
4

5
use App\Cron\HourlyCronServiceInterface;
6
use App\Doctrine\DBAL\Type\MillisecondsDateTime;
7
use App\Entity\SystemParameters;
8
use App\Repository\TelegramUpdateRepository;
9
use App\Service\SystemParametersStorage;
10

11
class TelegramUpdates implements HourlyCronServiceInterface
12
{
13
    private TelegramUpdateRepository $repository;
14

15
    private SystemParametersStorage $paramStorage;
16

17
    private int $adminId;
18

19
    private int $cnt = 0;
20

21
    public function __construct(
22
        TelegramUpdateRepository $repository,
23
        SystemParametersStorage $paramStorage,
24
        int $adminId
25
    ) {
26
        $this->repository = $repository;
27
        $this->paramStorage = $paramStorage;
28
        $this->adminId = $adminId;
29
    }
30

31
    public function run(): void
32
    {
33
        $from = $this->paramStorage->getParameter(SystemParameters::TELEGRAM_UPDATES_CHECK) ?? '2023-06-23 16:00:00';
34
        $now = (new \DateTime())->format(MillisecondsDateTime::FORMAT_TIME);
35

36
        $this->cnt = $this->repository->countNewMessages($from, $now, $this->adminId);
37
        $this->paramStorage->saveParameter(SystemParameters::TELEGRAM_UPDATES_CHECK, $now);
38
    }
39

40
    public function getMessage(): ?string
41
    {
42
        if ($this->cnt > 0) {
43
            return 'Кто-то общался с ботом. Новых сообщений: ' . $this->cnt;
44
        }
45

46
        return null;
47
    }
48
}
49

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.