Направление работ: AdmLk Код раздела: 3.6 Раздел: Управление > Модерация отзывов Статус: черновик Ответственный: Панкова Л.А. Версия: 0.3 Обновлено: 05.08.26
1. Назначение
Данный раздел обеспечивает сотруднику сервисного кабинета интерфейс для просмотра, поиска, фильтрации и модерации отзывов клиентов.
Сотрудник просматривает отзывы и связанные сведения о партнерской зоне, объекте, площадке, клиенте и заказе, открывает карточку отзыва, публикует или удаляет отзыв и при необходимости редактирует результат модерации.
Раздел зависит от Back: 8.7.2 Администрирование > Модерация > Отзывы и Back: 3.4 Заказы > Отзывы по заказам.
2. Ключевые понятия
Отзыв — оценка, текст и вложения, которые клиент оставляет по завершенному заказу.
Модерация отзыва — проверка отзыва сотрудником сервисного кабинета с последующей публикацией или удалением.
Статус отзыва — текущее состояние обработки отзыва: новый, отвеченный, измененный, на модерации, опубликованный или удаленный.
3. Scope
Входит
S1: Просмотр и фильтрация.
S2: Модерация.
S3: Дополнительные состояния экрана.
Не входит
- Mobile: 4.2.3 Мои заказы > Список архивных заказов > Оценить и оставить отзыв — создание отзыва клиентом из архивного заказа.
- Mobile: 5.5 Профиль > Отзывы — просмотр и работа клиента с отзывами в мобильном приложении.
- WebLk: 6.3 Отчеты > Рейтинг и отзывы — просмотр рейтинга и работа партнера с отзывами.
- AdmLk: 3.2.1 Управление > Клиенты > Карточка клиента — просмотр и сервисная работа с данными клиента после перехода из текущего раздела.
- Back: 3.4 Заказы > Отзывы по заказам — формирование и хранение данных отзывов.
- Back: 8.7.2 Администрирование > Модерация > Отзывы — правила обработки и хранения результатов модерации.
4. BR
Связанные BR относятся к разделам Back: 8.7.2 Администрирование > Модерация > Отзывы и Back: 3.4 Заказы > Отзывы по заказам.
5. Функциональные требования (UC + FR)
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR3.6-1 | Сотрудник открывает раздел «Модерация отзывов» | Интерфейс открывает страницу «Модерация отзывов», показывает действие возврата в раздел «Управление», блок фильтров и таблицу отзывов. При первой загрузке в фильтре «Статусы отзывов» установлено значение «На модерации», и в таблице показаны только отзывы на модерации. | 1 | Реализовано (см. OQ3.6-4) | |
| S1: FR3.6-2 | Сотрудник просматривает доступные инструменты | Интерфейс показывает: - фильтр «Партнерская зона»; - фильтр объектов и площадок; - фильтр «Период»; - фильтр «Статусы заказа»; - фильтр «Статусы отзывов»; - поле «Найти»; - таблицу отзывов. | 1 | Реализовано (см. OQ3.6-4) | |
| S1: FR3.6-3 | Сотрудник просматривает список отзывов | Интерфейс показывает в таблице столбцы: - «Оценка»; - «Партнерская зона»; - «Объект»; - «Площадка»; - «Отзыв»; - «Клиент»; - «Дата»; - «Статус заказа»; - «Статус отзыва». | 1 | Реализовано (см. OQ3.6-4) | |
| S1: FR3.6-4 | Сотрудник ищет отзыв | Поле «Найти» выполняет единый поиск по данным клиента, объекта и тексту отзыва и показывает подходящие записи в списке. | 2 | Реализовано | |
| S1: FR3.6-5 | Сотрудник фильтрует отзывы по партнерской зоне | Интерфейс позволяет найти и выбрать конкретную партнерскую зону или значение «Все». Значение «Все» снимает ограничение по партнерской зоне. | 2 | Реализовано | |
| S1: FR3.6-6 | Сотрудник фильтрует отзывы по объекту или площадке | Интерфейс раскрывает иерархический список объектов и входящих в них площадок и позволяет выбрать объект или площадку для фильтрации отзывов. | 2 | Реализовано | |
| S1: FR3.6-7 | Сотрудник фильтрует отзывы по дате | Интерфейс открывает календарь и позволяет выбрать одну дату или период дат. Действие «Применить» применяет выбранное значение. Действие «Сбросить» отменяет текущий выбор. | 2 | Реализовано | |
| S1: FR3.6-8 | Сотрудник фильтрует отзывы по статусу заказа | Интерфейс позволяет выбрать значение: - «Все»; - «Закрыт»; - «Отменен»; - «Отменен со сбором». Интерфейс показывает отзывы по заказам с выбранным статусом; значение «Все» снимает ограничение. | 2 | Реализовано | |
| S1: FR3.6-9 | Сотрудник фильтрует отзывы по статусу отзыва | Интерфейс позволяет выбрать значение: - «Все»; - «Новые»; - «Отвечено»; - «На модерации»; - «Удален». Интерфейс показывает отзывы с выбранным статусом; значение «Все» снимает ограничение. | 2 | Частично (см. OQ3.6-1) | |
| S1: FR3.6-10 | Сотрудник применяет несколько условий отбора | Интерфейс совместно применяет поиск и выбранные фильтры и обновляет таблицу с учетом всех заданных условий. | 2 | Реализовано | |
| S1: FR3.6-11 | Сотрудник просматривает отзывы с разными статусами | Отзывы со статусом «На модерации» визуально отличаются от остальных отзывов в таблице. | 2 | Реализовано | |
| S1: FR3.6-12 | Сотрудник переходит к данным клиента из таблицы | Имя клиента в таблице доступно как действие перехода. Интерфейс по этому действию открывает раздел AdmLk: 3.2.1 Управление > Клиенты > Карточка клиента для выбранного клиента. | 2 | Реализовано | |
| S2: FR3.6-13 | Сотрудник выбирает отзыв в таблице | Интерфейс открывает боковую панель «Отзыв на площадку» с подробными данными выбранного отзыва. | 1 | Реализовано (см. OQ3.6-5) | |
| S2: FR3.6-14 | Сотрудник просматривает карточку отзыва | Интерфейс показывает: - карточку площадки; - идентификатор заказа и действие копирования; - действие «К заказу»; - данные клиента и действие перехода в раздел AdmLk: 3.2.1 Управление > Клиенты > Карточка клиента; - оценку и дату отзыва; - текст отзыва; - вложения; - партнерскую зону и ее комментарий. | 1 | Реализовано (см. OQ3.6-5, OQ3.6-3) | |
| S2: FR3.6-15 | Сотрудник переходит к связанному заказу | Интерфейс по действию «К заказу» открывает карточку заказа с данными клиента и всеми данными заказа. Из карточки заказа доступно действие «Перейти к отзыву» для возврата к выбранному отзыву. | 2 | Реализовано | |
| S2: FR3.6-16 | Сотрудник переходит к данным клиента из карточки отзыва | Интерфейс по действию на имени клиента открывает раздел AdmLk: 3.2.1 Управление > Клиенты > Карточка клиента для выбранного клиента. | 2 | Реализовано | |
| S2: FR3.6-17 | Сотрудник готовит решение по отзыву | Интерфейс позволяет ввести комментарий сотрудника и выбрать в поле «Действие» значение «Опубликовать» или «Удалить». | 1 | Реализовано (см. OQ3.6-6, OQ3.6-2) | |
| S2: FR3.6-18 | Сотрудник публикует отзыв | Интерфейс по отправке решения с действием «Опубликовать» публикует отзыв, обновляет его статус и добавляет решение сотрудника в историю модерации. | 1 | Реализовано (см. OQ3.6-6) | |
| S2: FR3.6-19 | Сотрудник удаляет отзыв | Интерфейс по отправке решения с действием «Удалить» переводит отзыв в удаленное состояние, визуально обозначает недоступность текста и вложений и добавляет в историю запись «Отзыв удален» с датой и временем. | 1 | Реализовано (см. OQ3.6-6) | |
| S2: FR3.6-20 | Сотрудник управляет ранее отправленным решением | Если отзыв удален, интерфейс показывает у решения сотрудника меню с действиями «Редактировать» и «Удалить и вернуть отзыв». Если отзыв опубликован, доступно только действие «Редактировать». | 1 | Реализовано (см. OQ3.6-6, OQ3.6-2) | |
| S2: FR3.6-21 | Сотрудник редактирует комментарий к решению | Интерфейс по действию «Редактировать» открывает состояние «Редактирование», позволяет изменить текст комментария и сохранить изменения в истории модерации. | 2 | Реализовано (см. OQ3.6-6) | |
| S2: FR3.6-22 | Сотрудник отменяет удаление отзыва | Интерфейс по действию «Удалить и вернуть отзыв» удаляет ранее отправленное решение об удалении и возвращает отзыв для дальнейшей обработки. | 2 | Реализовано (см. OQ3.6-6, OQ3.6-2) | |
| S2: FR3.6-23 | Сотрудник завершает просмотр карточки отзыва или заказа | Интерфейс позволяет закрыть боковую панель и вернуться к таблице с сохраненными условиями поиска и фильтрации. | 2 | Реализовано | |
| S3: FR3.6-24 | Сотрудник открывает страницу, данные загружаются | Интерфейс показывает состояние загрузки для фильтров и ячеек таблицы до получения данных отзывов. | 2 | Реализовано | |
| S3: FR3.6-25 | Сотрудник использует раздел на разных ширинах экрана | Интерфейс адаптирует страницу, фильтры, таблицу, боковую панель отзыва и карточку заказа для desktop, laptop и tablet без потери доступных функций. В адаптивных состояниях фильтры «Статусы заказа» и «Статусы отзывов» доступны в компактной панели, которая открывается отдельным действием. Если столбцы не помещаются в доступную ширину, интерфейс позволяет прокручивать таблицу по горизонтали. | 2 | Реализовано |
6. Открытые вопросы
Пин: BRD 3.6 «Модерация отзывов» v0.3 · репозиторий
musbooking.weblk.adminpanel· commit3a107bd5278c71559b98c4701a1b47aa8b7ab0e0· дата сверки 2026-09-08 · якорь:widgets/review-moderation/**,entities/review/**,features/review-moderation-composer/**,features/review-details-header/**,features/review-moderation-list/**,features/review-details-drawer/**,features/review-details-body/**,pages/management/review-edit.vue,shared/api-contracts/reviews/reviews.schema.ts,shared/api/ReviewsService.ts(+ кросс-слой вbooking-monorepo, commit82359296) Первая полная сверка. Маршрутизация без сверки с гайдбуком — раздел гайдбука не передан на вход. Сводка: 6 вопросов (Open: 3 · Подтверждено: 3) · отрезано находок обратного прохода: 0
| ID | Источник | Вопрос | Кому | Статус | Рекомендации | Итоговое решение |
|---|---|---|---|---|---|---|
| OQ3.6-1 | Код FR3.6-9 | Требование говорит: фильтр «Статусы отзывов» должен предлагать пять значений — «Все», «Новые», «Отвечено», «На модерации», «Удален». В коде тот же фильтр дополнительно предлагает статусы «Измененные» и «Опубликован», которых в требовании нет; статус «Просмотрен» разработчики сознательно исключили отдельным комментарием в коде. \ entities/review/lib/reviewStatusLabels.ts:6-24, features/review-moderation-list/model/filterOptions.ts:25-37 | Бизнес | Open | (А) Оставить два дополнительных статуса в фильтре как есть и дополнить формулировку FR3.6-9 — рекомендуется, так как функциональность уже отдана сотрудникам и выглядит осознанным расширением, а не ошибкой; (Б) Убрать «Измененные» и «Опубликован» из фильтра, чтобы список строго соответствовал BRD. | |
| OQ3.6-2 | Код вне BRD (относится к FR3.6-17–FR3.6-20) | Что нашли: методы принятия решения по отзыву на бэкенде (публикация, удаление, редактирование решения, «удалить и вернуть отзыв») не проверяют права сотрудника — проверка прав реализована как пустая заглушка; в коде есть комментарий разработчиков, что раньше проверка тоже была фиктивной (ходила в заглушку, всегда возвращавшую «доступ разрешён»), а для этих операций ещё не заведён код в каталоге прав, поэтому проверку временно убрали совсем. Любой авторизованный вызов API может опубликовать, удалить или отредактировать решение по любому отзыву, независимо от того, к какой партнёрской зоне привязан сотрудник. \ booking-monorepo: src/services/booking.partner-management/src/PartnerZones.Application/Commands/ReviewMessage/AdminCreate/AdminCreateCommandHandler.cs:80-87, .../AdminUpdate/AdminUpdateCommandHandler.cs:78-85 | Разработка | Open | Завести тикет в Bitrix: добавить проверку прав сотрудника для методов AdminCreateReviewMessage/AdminUpdateReviewMessage до того, как раздел модерации отзывов уйдёт в продакшен — отсутствие проверки прав напрямую влияет на безопасность и корректность модерации. | |
| OQ3.6-3 | Код вне BRD (относится к FR3.6-14) | Что нашли: боковая панель отзыва показывает два бейджа клиента, которых нет в перечне данных карточки отзыва из FR3.6-14, — предупреждающий значок о клиенте с «форфейтом» (проблемном клиенте) и признак Pro-статуса клиента. \ features/review-details-body/ui/ReviewDetailsBody.vue:15-21, features/review-details-drawer/model/useReviewDetailsDrawer.ts:191-195 | Бизнес | Open | (А) Зафиксировать оба бейджа в FR3.6-14 как часть данных клиента в карточке отзыва — рекомендуется, так как это полезный контекст для решения модератора; (Б) Считать лишним и убрать, если бейджи не должны влиять на решение по отзыву. | |
| OQ3.6-4 | Код FR3.6-1, FR3.6-2, FR3.6-3 | Что подтверждено: страница «Модерация отзывов» открывается по маршруту /management/review-edit, кнопка возврата ведёт в раздел «Управление» (/management), при первой загрузке фильтр «Статусы отзывов» уже установлен в значение «На модерации», показаны все перечисленные в FR3.6-2 фильтры, а таблица содержит ровно те 9 столбцов, что перечислены в FR3.6-3. \ pages/management/review-edit.vue:1-12, shared/lib/useSafeBack.ts:42,73-87, shared/ui/button/BackButton.vue:60-65, features/review-moderation-list/model/useReviewModerationList.ts:59, features/review-moderation-list/ui/ReviewModerationList.vue:17-96, features/review-moderation-list/model/reviewModerationListColumns.ts:6-16 | — | Подтверждено | Расхождения нет. | — |
| OQ3.6-5 | Код FR3.6-13, FR3.6-14 | Что подтверждено: клик по строке таблицы открывает боковую панель «Отзыв на площадку» с карточкой площадки, ID заказа и действием копирования, действием «К заказу», данными клиента со ссылкой на карточку клиента, оценкой и датой отзыва, текстом отзыва, вложениями и комментарием партнёрской зоны. \ features/review-moderation-list/ui/ReviewModerationList.vue:284-286, widgets/review-moderation/ui/ReviewModerationWidget.vue:56-59, features/review-details-drawer/ui/ReviewDetailsDrawer.vue:3, features/review-details-header/ui/ReviewDetailsHeader.vue:4-44, features/review-details-body/ui/ReviewDetailsBody.vue:31-83 | — | Подтверждено | Расхождения нет. | — |
| OQ3.6-6 | Код FR3.6-17, FR3.6-18, FR3.6-19, FR3.6-20, FR3.6-21, FR3.6-22 | Что подтверждено: цепочка состояний решения по отзыву полностью соответствует описанию. Сотрудник вводит комментарий и выбирает действие «Опубликовать» или «Удалить» в поле «Действие». «Опубликовать» переводит отзыв в статус «Опубликован» и записывает решение в историю. «Удалить» переводит отзыв в статус «Удален»: в интерфейсе текст и вложения визуально гаснут (снижена непрозрачность, блокирован клик), в истории появляется запись с датой и временем удаления. Если решение «Удален» — у решения сотрудника доступны действия «Редактировать» и «Удалить и вернуть отзыв»; если решение «Опубликован» — доступно только «Редактировать». «Редактировать» открывает состояние «Редактирование» и позволяет изменить текст решения, сохранив изменение. «Удалить и вернуть отзыв» архивирует прежнее решение и возвращает отзыв в статус «На модерации» для дальнейшей обработки — ровно так, как описано в FR3.6-22. Бэкенд (агрегат отзыва) реализует те же переходы статусов независимо от фронта, то есть это не имитация на клиенте. \ features/review-moderation-composer/ui/ReviewModerationComposer.vue:19-60, features/review-details-drawer/model/moderationActionOptions.ts:5-11, features/review-details-drawer/model/useReviewDetailsDrawer.ts:236-283,319-401, features/review-details-body/ui/ReviewDetailsBody.vue:31,85-128, booking-monorepo: src/services/booking.partner-management/src/PartnerZones.Domain/ReviewAggregate/ReviewAggregate.cs:176-253 | — | Подтверждено | Расхождения нет; см. отдельно OQ3.6-2 про отсутствие проверки прав на этих же методах. | — |