Files
sfera/docs/updates-2025-08-11.md

27 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Обновления за 11.08.2025
Ниже кратко описаны изменения из двух последних коммитов за сегодня.
## 1) Надёжность статистики WB и фолбэк кэша
- Коммит: `8ba8fc1` (22:30)
- Суть: устранили ситуацию, когда на фронте отображалось «Нет данных», добавили корректную обработку дат рекламы и фолбэк из кэша при ограничениях WB API (429).
- Изменения:
- Клиент (`src/components/seller-statistics/sales-tab.tsx`):
- При успешном `refetch` сразу применяем полученные данные (`applyData`), не дожидаясь обновления состояния Apollo, чтобы исключить «пустое» состояние.
- Сервис (`src/services/wildberries-service.ts`):
- Нормализуем даты дневной статистики рекламы до формата `YYYY-MM-DD`, чтобы они сопоставлялись с датами продаж/заказов и корретно проходили фильтрацию по диапазону.
- Резолвер (`src/graphql/resolvers.ts`):
- Если при ошибке WB (например, 429) нет `productsData` в кэше, но есть `advertisingData`, формируем минимальный набор статистики по датам на основе кэша рекламы (затраты, заказы, выручка) — чтобы хоть какие-то данные отображались.
- Результат: данные в «Продажах» отображаются стабильнее — как при успешном ответе WB, так и при 429 за счёт кэш‑фолбэка. Расходы на рекламу корректно маппятся на даты продаж.
## 2) Реалтайм через SSE и отказ от опроса
- Коммит: `3a56092` (22:13)
- Суть: добавлен механизм ServerSent Events (SSE) для реалтайм‑нотификаций, публикация событий из резолверов и отказ от периодического опроса в интерфейсе.
- Изменения:
- Бэкенд: публикация событий из GraphQLрезолверов.
- Фронтенд: удалён polling в чатах, боковой панели, вкладках поставок и склада; подключена реактивная подгрузка через SSE.
- Результат: уменьшена нагрузка на сеть и сервер, данные обновляются в интерфейсе в реальном времени без циклических запросов.
---
Если потребуется — добавим более детализированный CHANGELOG и разнесём обновления по модулям.