A
A
Alexander Pankov2016-12-02 09:50:51
PHP
Alexander Pankov, 2016-12-02 09:50:51

How to implement web service architecture (Bitrix)?

вопрос по архитектуре web-сервиса:
Есть задача, реализовать сервис бронирования спортивных секций, на основе 1С-битрикса редакции "Малый бизнес".
суть такая:
1) Есть направление (единоборства, плавание...)
2) Каждое направление может сдавать свой "инвентарь"(площадь) на часы в определённые дни(и время)
3) Те пользователь, заходя на сайт будет видеть расписание свободных занятий на неделю:
-) плавание (ПН, ВТ, СР) - (с 10:00 до 12:00) - 12 мест - 100р
-) плавание (ПН, ВТ, СР) - (с 14:00 до 16:00) - 7 мест - 300р
и т.д
Как я думал это сделать:
1) есть каталог, в нем разделы (это спортивные секции)
2) внутри секций есть элементы - это дни ПН, ВТ, СР, ЧТ, ПТ ... (в каждой секции одинаковые дни естественно)
3) у каждого элемента(дня) есть "Торговое предложение", которые как раз и отличаются (временем) (количеством) (ценой)
1) Те пользователь накидывает в корзину торговые предложения для нужных ему дней(времени, секции).
2) Оформляет заказ (тем самым мы списываем количество(которое он заказал) у торговых предложений в каталоге, чтобы другие видели сколько осталось мест), так же при оформлении мы записываем, даты последнего дня(мб часа) брони (вот тут меня прям воротит от этого костыля...), чтобы увеличить количество мест обратно(по истечению брони), и ставим "заказу" статус "принят".
3) по CRON'у каждый час берем заказы со статусом "принят" смотрим текущую дату и дату "до какой он купил(забронировал)", если у него время вышло, то прибавляем обратно кол-во в торговое предложение(в каталоге, чтобы другие люди могли бронировать) и ставим заказу статус "выполнен".
Как-то так, вы видите какие-то сложность либо подводные камни при такой реализации?
(да, нужен именно битрикс малый бизнес и его компоненты оформления заказа, Личного кабинета, каталога)
вижу пока одну сложность и не знаю как ее решить:
1) пользователь заказал бассейн во вторник и среду (кол-во свободных мест стало 0)
2) другой пользователь хочет тоже в бассейн, но на следующей неделе тоже во вторник и среду, но так как мы списали кол-во еще когда заказал первый, то 2ой пользователь будет видеть кол-во мест 0 даже на след.неделе. (как вариант брать все заказы "в работе" туда-сюда вертеть и искусственно показывать на "след неделе" полные кол-во мест, а не как в базе хранится, но не хочется так делать...)
Не подскажите, возможно ли как-то сделать проще, масштабируемее, без подводных камней...

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question