Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Здравствуйте, есть скрипт, который преобразовывает csv файл в таблицы бд mysql. Сделан на Laravel (artisan) в пакете nWidart/laravel-modules.

Как в общем работает скрипт, записал видео https://www.youtube.com/watch?v=phfX4547Y4s (смотрите на скорости 2).

Нужно сделать: (записал видео с описанием - https://youtu.be/X6P-yvoD6Hs )

- чтоб сначала создавало временные таблицы, работало с ними (возможно, скопировать из некоторых инфу), всё заполняем, потом переименовываем существующие на префикс old, а эти называем рабочими именами.

- Добавить artisan команду возврата на предыдущие версии таблиц с помощью команды.

- чтоб файлы скачивались в модуль/Resources/abcdef_csv_files (из https://opendata.digital.gov.ru/registry/numeric/downloads) и обрабатывались оттуда. Причём проверить, что всё, что надо скачалось (по именам файлов и содержимому (что все заголовки, которые должны быть, есть, что они в том порядке, в котором надо, что файл не меньше определённого размера)) и только тогда начинать работать. Если все проверки не прошли, возвращаем ошибку (если запускали через терминал), а если запускали по крону - отправляем на почту сообщение с точной причиной остановки, дальше не продолжаем (используем имеющуюся функцию My::msgToAdmin() для отправки сообщения).

- чтоб скрипт запускался по крону раз в сутки, проверял, есть ли новые файлы для скачки, если есть, запускался, а о результате обработки сообщалось на почту.

- чтоб lostlocations locstree и другие показывало только, если вошли в админку, т.е. через миддлварэ

- Сейчас в скрипте, если есть ооо (либо локации), нуждающиеся в ручной обработке, скрипт ОСТАНАВЛИВАЕТСЯ и предлагает перейти на веб страницу обработки (указан конкретный Url), и там обработать. Нужно, чтоб, после того как перешли и сделали обработку, на той веб-странице появилась кнопка - "продолжить работу скрипта" - после нажатия скрипт должен идти на указанный шаг, проверить, что всё обработали и продолжить работу.

- тут есть момент. Скрипт может быть запущен через терминал или через крон.

- Если через терминал, то скрипт должен перейти в режим паузы и ждать, когда мы в вебе нажмём кнопку.

- Если через крон, то скрипт должен заново запуститься с того шага, который требуется после того, как обработали ооо или локации

- при запуске, чтоб можно было указать параметр, с которым в командной строке будет показываться, с какой функции начать обработку, т.е. если хотим не сначала начать, а с определённого шага

Если что-то непонятно, смогу объяснить.

Оцените, сколько займёт времени и сколько будет по стоимости.

Ещё было бы неплохо, чтоб ответили на такие вопросы:

1. Есть ли сейчас другой проект или работа?

2. Есть ли отвлекающие факторы, которые мешают работе, например, отключение света

3. Сколько занимаетесь laravel/php?

4. Какого уровня программистом себя считаете? (junior, middle, senior)

год назад
pavelbro
Павел 
34 годаРоссия
6 лет в сервисе
Был
2 месяца назад