Commit Graph

2 Commits

Author SHA1 Message Date
Дмитрий ec026f1b7b fix,смс: час по названию региона — Москва и Питер записаны в справочнике парой
Найдено приёмкой на живом справочнике боевого сервера. Оператор определялся
верно, а часовой пояс у Москвы и Санкт-Петербурга — нет: у 24 063 диапазонов
из 453 080 кода субъекта нет вовсе, потому что регион там записан ПАРОЙ —
«г. Москва и Московская область», «г. Санкт-Петербург и Ленинградская область»,
«Архангельская область * Ненецкий автономный округ». Однозначного субъекта у
такой строки действительно не существует.

Это самые крупные по числу абонентов диапазоны страны. Без разбора пары
оператор проставлялся, а пояс нет — и сообщение всё равно не уходило, потому
что без пояса номер ждёт уточнения региона, решение владельца В-85.

Нам, в отличие от приёма лидов, точный субъект не нужен — нужен ЧАС, а у обеих
половин каждой такой пары он общий. Поэтому пара разбирается на половины по
разделителям « и » и « * », и час берётся ТОЛЬКО если все узнанные половины
сошлись. Не сошлись или ни одна не узнана — честное «не знаю»: молча выбрать
одну из двух значит однажды отправить человеку СМС ночью.

Заодно поправлено утверждение в шапке класса: ключ ДаДаты на боевом сервере
ЕСТЬ, это проверено командой. Почему обращение к ней не дало оператора,
установить не удалось — падений в журнале нет ни одного.

Модуль СМС 402 из 402, статанализ 0.
2026-08-03 12:28:23 +03:00
Дмитрий d4ccb5ac95 fix,смс: оператор и часовой пояс номера — из бесплатного справочника Россвязи
Модуль спрашивал и оператора, и регион ТОЛЬКО у платной ДаДаты, а без её
полезного ответа выходил молча. На бою это убило две трети модуля: рассылки
«по своей базе» и «списком руками» не отправляли ни одного сообщения —
причина skipped_unknown_operator, живой прогон 03.08.2026.

Теперь порядок такой: сперва ДаДата — только она знает про перенос номера к
другому оператору, — затем справочник phone_ranges, который дозаполняет
оставшееся пустым и никогда не затирает уже известное. Тем же справочником
страхуется приём лидов от поставщика.

Починено в трёх местах: обогащение своей базы номеров, догон снимка рассылки
и предпросмотр. Предпросмотр врал клиенту «ждут уточнения региона» про
номера, которые справочник знает наизусть, и смету на них не показывал.
Исчерпанный дневной лимит ДаДаты больше не обрывает догон целиком: бесплатный
справочник спрашивается всё равно, и остаток списка не ждёт следующего часа.

Сторож считает ЗАПРОСЫ: предпросмотр списка на 20 000 номеров, спрашивая
справочник по одному номеру, давал 20 044 запроса и 22 секунды на одно
нажатие кнопки. Пачками — 64 запроса и 4,6 секунды.

Тесты писались первыми и проверены красными; сторож пачечного запроса
проверен вырезанием. Модуль СМС 399 из 399, статанализ 0.
2026-08-03 12:05:13 +03:00