Files
crm.clientright.ru/PARSER_TESTING_MODE.md
Fedor 75d3f7942b feat: Обновлены все URL Nextcloud с office.klientprav.tech на office.clientright.ru
Обновленные файлы:
- crm_extensions/nextcloud_api.php (2 места)
- modules/Documents/actions/NcPrepareEdit.php
- crm_extensions/nextcloud_editor/js/nextcloud-editor.js
- crm_extensions/file_storage/api/get_edit_urls.php
- crm_extensions/file_storage/api/simple_edit.php
- crm_extensions/README.md
- NEXTCLOUD_EDIT_BUTTON_IMPLEMENTATION.md
- crm_extensions/docs/NEXTCLOUD_EDITOR.md
- test_syntax_check.html
- crm_extensions/tests/test_edit_button.html

Все ссылки теперь указывают на новый сервер office.clientright.ru
Backup файлы и тестовые директории не изменены
2025-10-20 17:17:34 +03:00

7.3 KiB
Raw Blame History

Тестовый режим парсера (отключение проверки дубликатов)

Дата: 17 октября 2025
Статус: Готово к использованию


🎯 Зачем это нужно

Когда ты тестируешь парсер на уже обработанных делах, все события помечаются как дубликаты и не добавляются в БД повторно. Это правильное поведение для продакшена, но неудобно для тестирования.

Тестовый режим позволяет:

  • Повторно парсить одно и то же дело
  • Видеть все события в логах
  • Получать корректный JSON ответ даже для дубликатов
  • Проверять работу парсера без очистки БД

🚀 Как использовать

Вариант 1: В дизайнере процессов (для тестирования)

Добавь в POST параметры:

skip_duplicate_check=1

Пример полного запроса:

status=представительство в суде 1й инстанции
link1=https://mos-gorsud.ru/rs/shcherbinskij/services/cases/civil/details/...
case_number=02-15800/2025
uid=
skip_duplicate_check=1  ← ДОБАВИТЬ ДЛЯ ТЕСТИРОВАНИЯ

Вариант 2: Через cURL (для ручного тестирования)

curl -X POST http://crm.clientright.ru/parscourt.php \
  -d "status=представительство в суде 1й инстанции" \
  -d "link1=https://mos-gorsud.ru/rs/shcherbinskij/..." \
  -d "case_number=02-15800/2025" \
  -d "uid=" \
  -d "skip_duplicate_check=1"

📊 Что происходит в тестовом режиме

С проверкой дубликатов (по умолчанию, продакшен):

[2025-10-17 15:49:25] Найдено событие (МСК): Название: Решение, Дата: 02.10.2025...
[2025-10-17 15:49:25] Дубликат найден для события: Решение, пропускаем запись.

Событие не добавляется в БД
$last_event остается null если все события дубликаты

Без проверки дубликатов (skip_duplicate_check=1):

[2025-10-17 16:00:00] ⚠️ ТЕСТОВЫЙ РЕЖИМ: Проверка дубликатов ОТКЛЮЧЕНА
[2025-10-17 16:00:01] Найдено событие (МСК): Название: Решение, Дата: 02.10.2025...
[2025-10-17 16:00:01] ⚠️ ТЕСТОВЫЙ РЕЖИМ: Проверка дубликатов отключена для события: Решение
[2025-10-17 16:00:01] Данные успешно записаны в таблицу subject для события: Решение

Событие добавляется в БД (даже если уже есть)
$last_event всегда заполняется
JSON ответ всегда возвращает данные


⚠️ ВАЖНО!

Когда использовать тестовый режим:

ДА (для тестирования):

  • Проверка работы парсера на уже обработанных делах
  • Отладка извлечения данных
  • Проверка формата JSON ответа
  • Тестирование новых функций

НЕТ (в продакшене):

  • Обычная работа через дизайнер процессов
  • Автоматические запуски через cron
  • Реальная обработка новых дел

Последствия использования в продакшене:

⚠️ В БД будут создаваться дубликаты событий!

  • Одно и то же событие будет записано несколько раз
  • Размер БД будет расти
  • Может нарушиться логика отчетов

🧪 Примеры использования

Пример 1: Тестирование московского суда

# В дизайнере процессов добавь параметр:
skip_duplicate_check=1

# Дерни парсер - получишь данные даже если дело уже парсили

Ожидаемый результат:

{
  "status": "success",
  "message": "Парсинг завершен.",
  "last_event": {
    "Наименование": "Решение",
    "Дата": "02.10.2025",
    ...
  }
}

Пример 2: Обычная работа (продакшен)

# НЕ добавляй skip_duplicate_check

# Дерни парсер - дубликаты будут пропущены

Ожидаемый результат при дубликатах:

{
  "status": "success",
  "message": "Парсинг завершен, но нет новых событий."
}

📝 Логи

В тестовом режиме:

[timestamp] ========================================
[timestamp] Режим парсера: НОВЫЙ (универсальный)
[timestamp] ⚠️ ТЕСТОВЫЙ РЕЖИМ: Проверка дубликатов ОТКЛЮЧЕНА
[timestamp] Выбран парсер: MoscowCourtParser
[timestamp] ⚠️ ТЕСТОВЫЙ РЕЖИМ: Проверка дубликатов отключена для события: Решение
[timestamp] Данные успешно записаны в таблицу subject для события: Решение

В обычном режиме:

[timestamp] ========================================
[timestamp] Режим парсера: НОВЫЙ (универсальный)
[timestamp] Выбран парсер: MoscowCourtParser
[timestamp] Дубликат найден для события: Решение, пропускаем запись.

🔧 Очистка тестовых данных

Если накопилось много дубликатов после тестирования:

-- Удалить дубликаты по конкретному делу
DELETE FROM court.subject 
WHERE case_number = '02-15800/2025' 
AND update_datetime > '2025-10-17 15:00:00';

-- ИЛИ оставить только последние записи
DELETE t1 FROM court.subject t1
INNER JOIN court.subject t2 
WHERE t1.event_name = t2.event_name 
  AND t1.event_date = t2.event_date
  AND t1.case_number = t2.case_number
  AND t1.id < t2.id;

Резюме

Новый параметр: skip_duplicate_check=1

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

  • 🧪 Для тестирования: skip_duplicate_check=1
  • 🚀 Для продакшена: не передавай этот параметр

Эффект:

  • С параметром: события добавляются всегда (даже дубликаты)
  • Без параметра: дубликаты пропускаются (защита от повторов)

Готово! Теперь можешь легко тестировать парсер! 🎉