Корпоративная Web3-экосистема для автоматизации платных подписок, отслеживания транзакций в блокчейне BSC (USDT), синхронизации прав в Discord и геймификации активности с накопительной системой лояльности.
public_html/controllers/CommandController.php (Изменен) — Исправлена привязка реферала для новых пользователей: теперь, если при клике по реферальной ссылке запись подписчика отсутствует, она создается немедленно с указанием referrer_id и генерацией referral_code, предотвращая потерю связи.public_html/core/SubscriptionManager.php (Изменен) — Интегрирована автоматическая отправка начислений в таблицу referrals при успешной активации подписки (как через прямые платежи, так и через наблюдатель транзакций).public_html/controllers/JoinRequestAdminController.php (Изменен) — Добавлен вызов начисления реферальной комиссии при ручном одобрении заявки на вступление администратором.public_html/controllers/ReferralController.php (Изменен) — Добавлен новый SQL-запрос для извлечения всех реферальных связей (Кто ➔ Кого привел) с поддержкой поиска.public_html/views/referrals/index.php (Изменен) — Оформлен премиальный интерфейс вкладок (Рефереры и Все приглашенные) для удобного мониторинга связей рефералов.deploy.py (Изменен) — Добавлено принудительное переопределение кодировки вывода sys.stdout и sys.stderr на UTF-8 для устранения падений консоли Windows из-за некодируемых смайликов/символов.public_html/controllers/CommandController.php (Изменен) — Массив $pricesGrid с жестко заданными суммами заменен на динамический хелпер getDiscountMultiplier(), возвращающий коэффициент скидки для каждого уровня лояльности (0-6 звезд). Все перерасчеты цен тарифов переведены на использование базовой цены из базы данных, умноженной на коэффициент скидки.public_html/controllers/PaymentsController.php (Изменен) — Логика расчета стоимости прямого перевода переведена с жесткого $pricesGrid на использование динамического коэффициента скидки, получаемого через CommandController::getDiscountMultiplier().deploy.py (Создан) — Скрипт автоматизации деплоя, поддерживающий загрузку файлов через SFTP (с исключением локальных служебных файлов), интерактивный SSH-терминал и удаленный запуск команд..env (Изменен) — Добавлены и раскомментированы переменные подключения к VPS (VPS_HOST, VPS_USER, VPS_PASS, VPS_PORT), а также добавлен список из двух Ankr API-ключей в переменную BSC_RPC_URL через запятую..env.example (Изменен) — Добавлены шаблоны переменных доступа к VPS и документирована поддержка нескольких RPC-нод через запятую в BSC_RPC_URL.README.md (Изменен) — Документированы команды быстрого деплоя, одиночных команд и шелл-доступа с помощью deploy.py.public_html/core/Blockchain.php (Изменен) — Реализована поддержка comma-separated списка кастомных RPC-нод в getRpcUrls(), а также улучшено автоопределение кастомных нод в getLogs() по исключению из массива публичных резервных нод.public_html/core/Blockchain.php (Изменен) — Переработана логика BSC RPC запросов: добавлен импорт Env для конфигурации BSC_RPC_URL, добавлена поддержка динамического списка резервных публичных узлов при сбоях, логирование подробных ошибок в blockchain.log, чанкирование запросов логов (по 50 блоков для публичных узлов и по 1000 блоков для персональных), а также оптимизирован обратный поиск транзакции (от новых блоков к старым) с ранним выходом.public_html/cron/blockchain_observer.php (Изменен) — Переведен на использование новых методов Blockchain::getLatestBlock() и Blockchain::getLogs(). Реализована блокировка сдвига номера последнего обработанного блока при сбоях запросов RPC, чтобы избежать пропуска транзакций. Добавлено сохранение времени успешной проверки last_bsc_check_time в таблицу system_state..env.example (Изменен) — Добавлен шаблон для конфигурации переменной BSC_RPC_URL (BSC Smart Chain USDT Mainnet).public_html/controllers/JoinRequestAdminController.php (Изменен) — Интегрировано дублирование платежей в общую таблицу payments при ручном одобрении заявок (Join Requests) для корректного отображения выручки, графиков и статистики на дашборде. Исправлена nullability-проблема с plan_id.public_html/controllers/CommandController.php (Изменен) — Добавлена динамическая смена текста оплат: при исправной автопроверке (последний крон запущен менее 15 минут назад) выводится сообщение об Автопилоте, при сбоях/отключении — сообщение с контактами администраторов (@TIENAM, @TalonMatrix, @alexandr_shm) для ручной верификации.public_html/controllers/JoinRequestAdminController.php (Создан, изменен) — Административный контроллер: добавлена пагинация списка заявок (по 20 шт.), связь с direct_payments для предвыбора тарифа, генерация оплаченных счетов при ручном одобрении для привязки Discord, и очистка чата/состояний/счетов при отклонении/удалении заявки.public_html/views/join_requests/index.php (Создан, изменен) — Премиальный веб-интерфейс: добавлен вывод пагинации, отображение выбранного пользователем тарифа и автоматический предвыбор тарифа в модальном окне.public_html/controllers/CommandController.php (Изменен) — Добавлено сохранение message_id сообщения бота со счетом BSC в базу данных для возможности последующего удаления из чата.public_html/cron_join_requests_cleanup.php (Создан) — Ежедневный Cron-скрипт для автоочистки заявок и сопутствующих платежей/сообщений/состояний старше 14 дней.public_html/index.php (Изменен) — Добавлен роут join_requests для перенаправления запросов в новый административный контроллер.public_html/views/layouts/main.php (Изменен) — Добавлена вкладка «Заявки» в боковое меню администратора с отображением динамического badge-счетчика количества ожидающих заявок.public_html/cron_push.php (Изменен) — Изменено strict-сравнение поля end_date в SQL-запросах на функцию DATE(s1.end_date) для корректной фильтрации пользователей с ненулевым временем подписки.public_html/cron.php (Изменен) — Изменено сравнение с $today (дата) на $now (дата и время) для своевременного отключения подписок в точное время их окончания..env.example (Создан) — Добавлен шаблонный файл конфигурации окружения для предотвращения утечки конфиденциальных данных.public_html/cron_push.php (Изменен) — Переработана логика напоминаний: удалено уведомление за 7 дней, обновлены тексты за 3 дня и 1 день с точным указанием даты и времени кика (12:00 по МСК), добавлено новое уведомление за 3 часа до кика.public_html/cron.php (Изменен) — Обновлено время запуска авто-кика в комментариях, добавлен сброс флага reminder_3h_sent при кике.public_html/cron_reputation_monthly.php (Изменен) — Текст поздравлений переведен на новый динамический шаблон от пользователя, пост отправляется в топик 2184 канала, убран лишний призыв к действию в ЛС победителей.public_html/cron_cleanup.php (Изменен) — Установлена часовая зона Europe/Moscow.public_html/cron_reputation_warmup.php (Удален) — Удален промежуточный прогрев репутации 10, 20 и 28 числа.public_html/scratch/migrate.php (Создан) — Скрипт миграции базы данных для добавления полей is_discount_used и discount_payment_id в таблицу reputation_archive.public_html/core/Reputation.php (Изменен) — Добавлен метод getActivePrize для получения неиспользованной скидки пользователя на текущий месяц. Обновлена команда /toprep (добавлено описание призов и минимального порога баллов).public_html/controllers/CommandController.php (Изменен) — Интегрирован показ призовых цен в приветственном сообщении (showWelcome), списке тарифов (showTariffs) и при вводе адреса кошелька для прямого перевода BSC (handleWalletInput) для тарифа 30 дней. Улучшено UX: в showWelcome избыточный призыв ввести команду /tariffs заменен на прямую рекомендацию воспользоваться кнопками тарифов под сообщением.public_html/controllers/PaymentsController.php (Изменен) — Интегрирована призовая цена при генерации счета в createPayment для тарифа 30 дней.public_html/core/SubscriptionManager.php (Изменен) — Внедрена логика активации подписки с призом:reputation_archive и запись ID платежа.earnedStars = 0).public_html/cron_reputation_monthly.php (Создан) — Ежемесячный крон-запуск для подведения итогов топа репутации, записи в архив победителей с points >= 5.0, рассылки поздравлений в личные сообщения и в общий канал.public_html/cron_reputation_warmup.php (Создан) — Периодический крон-запуск (10, 20, 28 числа) для публикации промежуточного топа и напоминания о наградах.tools/simulate_reputation.php (Создан, Изменен) — Инструмент симуляции (CLI и премиальный Web UI на базе Glassmorphism) для добавления баллов, ручной выдачи призов, сброса использования призовых скидок и ручного вызова крона. Исправлен баг: тип репутации при начислении баллов заменен с невалидного 'Simulation' на соответствующий значению баллов 'positive'/'negative' (согласно ENUM ограничению базы данных). Внедрена панель тестирования отправки Telegram-уведомлений: ЛС победителям (1-3 место) и общих итогов в канал.
| № | НАЗВАНИЕ ЗАДАЧИ |
|---|---|
| 1 | Исправление логики привязки рефералов и начисления реферальной комиссии |
| 2 | Модернизация админ-панели рефералов и очистка тестовых данных |
| 3 | Анализ реферальных логов и очистка неактуальных связей |
| 4 | Разработка скрипта автоматического деплоя (deploy.py) и конфигурация окружения |
| 5 | Диагностика платежного наблюдателя BSC, блокчейн-анализ и оптимизация RPC |
| 6 | Исправление переопределения цен тарифов жесткой сеткой лояльности |
| 7 | Обновление списка контактов администраторов при BSC-оплате |
| 8 | Исправление учета ручных продаж в статистике админ-панели |
| 9 | Рефакторинг автоматического приема платежей BSC и интеграция резервных RPC-узлов |
| 10 | Интеграция персональной ноды Ankr и динамический вывод автопилота |
| 11 | Разработка модуля ручного управления заявками на вступление (Join Requests) |
| 12 | Оптимизация модуля заявок: пагинация, 14-дневная очистка и интеграция с Discord |
| 13 | Исправление логики сравнения дат в уведомлениях об истечении подписки |
| 14 | Перенос времени авто-кика на 15:00 МСК и перенос отправки уведомлений на 12:00 МСК |
| 15 | Разработка тестовых скриптов и верификация напоминаний в Telegram |
| 16 | Округление призовых цен вверх (ceil) |
| 17 | Актуализация и расширение README.md проекта |
| 18 | Разработка локальной страницы документации (readme.php) |
| 19 | Расширение допуска призовой оплаты (1$) в сети BSC |
| 20 | Визуальное разделение блоков в /tariffs |
| 21 | Очистка избыточных призывов к действию в сообщениях |
| 22 | Корректировка отступов в тарифах |
| 23 | Реформа системы уведомлений и перенос времени кика |
| 24 | Динамическое добавление Топ-7 не призовых мест в итоги месяца |
| 25 | Отображение архивных победителей на странице репутации в админ-панели |
| 26 | Автоматическая актуализация юзернеймов победителей из Telegram API |
| 27 | Подготовка и внедрение скрипта миграции БД |
| 28 | Внедрение поиска активных призов в ядро репутации и обновление UI |
| 29 | Применение скидок на шаге оформления и оплаты счетов |
| 30 | Защита от начисления лояльности и обновление счетчиков использования призов |
| 31 | Разработка и внедрение кронов автовыбора победителей и прогрева |
| 32 | Создание многофункционального веб-симулятора репутации |
| 33 | Устранение бага Data truncated для колонки type при начислении баллов |
| 34 | UX-улучшение текста приветственного сообщения с призом |
| 35 | Интеграция панели тестовой отправки уведомлений в Telegram в симулятор |
| 36 | Создание папки project_ideas и публикация предложения по скидкам за репутацию |
| 37 | Проработка матрицы цен для всех уровней звезд и добавление улучшений в концепцию |
| 38 | Корректировка цены первого места на фиксированный $1.00 |
| 39 | Уточнение правил тарифов (30/90/180 дней) с выводом 3 отдельных матриц цен |
| 40 | Интеграция с архивной таблицей БД и проектирование утилиты тестирования |
| 41 | Описание уведомлений и вывода команд /start, /tariffs для победителей |
| 42 | Корректировка концепции: интеграция вывода статуса приза в существующие сообщения |
| 43 | Добавление дополнительных идей улучшения и защиты системы (беклог) |
| 44 | Разработка инструмента ручной настройки лояльности и звезд пользователей |
| 45 | Расследование багов двойного списания и продления подписок (BSC Cron) |
| 46 | Безопасная реорганизация: вынос служебных скриптов в папку tools/ |
| Итого | 46 задач выполнено |