Есть у меня хороший друг. И есть у него одно очень замечательное свойство - он владелец русского стриптиз клуба на walking street ( кто не в теме это такая улица разврата и порока в Паттайе.
И вот как то раз, сидя в его замечательном заведении, мы разговорились про особенности его работы. Жаловался что девочки постоянно скандалят из-за комиссионных, вечные склоки с кассирами и менеджерами которые забывают записывать леди дриньки, приват танцы и многое другое. Проявив заинтересованность выяснил как обстоит дело в его заведении. Гость, приходит в клуб. Девочки, подсаживаются к нему и далее начинается развод на леди дриньки, приватные танцы, в общем на все с чего девочка получает от клуба комиссионные и за счет чего клуб собственно и живёт. Обычно весь профит пилится 50/50. Учёт на какую девочку сколько гость потратил леди дриньков, приватов, кальянов, стоп дэнсов ведёт администратор в бумажную тетрадь, куда прикалываются кассовые чеки за каждую так сказать услугу. Заказал гость для девочки пинаколаду - кассир пробил два чека, один в тетрадку, второй в стаканчик на стол гостю для дальнейшей оплаты.
Проблема в том, что к концу рабочего дня ( это часам к трём ночи ) большинство девчонок мягко говоря не трезвы, кассиры устают, менеджер тоже и не в состоянии уследить за 30ю столиками, чеки могут потеряться, могут не пробить, девчонки могут не правильно посчитать, и в конце недели при расчётах возникают "тёрки" - меня обманули, было больше, и т.д и т.п.
Хех, промелькнула мысль, а что если автоматизировать? Чтобы в момент пробития чека на кассе заказ автоматически капал на счёт девочки и чтобы в режиме реального времени можно было мониторить что начислили, какая комиссия, и сколько денег уже накапало на счёт!
Предложил другу - тот загорелся. Давай, говорит, попробуем.
И так - есть задача. Сообщить системе что за столом номер X гостя обслуживает девочка Y и все чеки которые будут пробиты на этот стол должны записываться на её счёт. Самая первая идея - поставить кард ридер на каждый стол и чтобы девчонки прикладывали RFID карты к нему. Компьютер на котором висит программа кассы подключён ко всем кардридерам и “понимает” за каким столом кто “залогинился”… profit. Но столов 30 штук. Самые дальние в 15 метрах от кассы. Тянуть пачки проводов… не наш вариант. Так не годится. Нужно что то на батарейке и автономное чтобы информация по воздуху шла. Как кнопки вызова официанта. Стали искать есть ли беспроводные считыватели RFID - ничего вменяемого за адекватные деньги не нашли. И потом, карты будут терять, забывать… головняк. Надо использовать что то что всегда человек носит с собой. Биометрика тоже не катит - дорого. Отпечаток пальца было бы идеально если бы были недорогие, надёжные беспроводные считыватели.
И тут осенило - у всех всегда с собой телефоны. Надо идентифицировать телефон находящийся за столом X и от этого плясать. Стоп… а зачем нам идентифицировать телефон? Пусть телефон идентифицирует стол и сообщит об этом кассе! Размещаем на столе маяк Beacon. Программа, запущенная в телефоне, по BLE сканирует маяки, маяк с наиболее сильным сигналом будет ближайший, а значит телефон находится за одним с ним столом! Читаем его ID, отсылаем в кассу, касса сверяется с списком столов и понимает что наша Y сидит за столом X. Все чеки пишутся на неё. Если за столом две девчонки - придут в кассу два сигнала и чек поделится пополам. Идеально.
И так, схема работы программной части выглядит так - запускается специальное приложение, вводится логин пароль, происходит авторизация девочки в системе. Программа начинает сканировать эфир в поиске маячков. Находит с самым сильным сигналом и считает что телефон находится за одним столом с маяком.
Предварительно все маяки проходят калибровку по сигналу чтобы не было перекрытий столов и даже если телефон находится у самого края стола сигнал своего маяки был значительно сильнее соседей. Идеально. Касса мгновенно начисляет бонусы, система и в приложении и на сайте мгновенно отображает комиссионные и истории заказов. Конфликтов больше нет. Открываем шампанское и всё такое. Продаём систему другим клубам в Паттайе и на Пхукете и безбедная старость обеспечена. Именно так это все и должно было бы быть в идеальном мире. Но к сожалению мы живём в реальном мире….
Ну и в чем мы прокололись и почему не взлетело? Во первых, блин, батарейка. Производитель обещал 1-2 года непрерывной работы, а по факту, уже через месяц батарейка просаживалась и маяк терял значительно в мощности, пошли ложные срабатывания, когда маяк соседнего стола с более свежей батарейкой оказывался сильнее родного. Пришлось вводить программу администратора чтобы тот мог в ручном режиме поправить стол и указать что X сидит именно за столом Y а не Z. Во вторых оказалось что некоторые чехлы глушат BLE и телефон в чехле не видит ни одного маяка. Совсем. В третьих оказалось что даже телефон без чехлов может не ловить ни одного маяка если его держать в руке не правильно. А андроид при падении заряда батареи ниже 15 процентов любил снижать чувствительность приёмника и сигнал тоже не ловился, будто ни одного маяка нет в эфире. Самые беспроблемные оказались, ожидаемо, айфоны. Самые проблемные бюджетные андроиды и некоторые модели Samsung Galaxy. Ну а добило систему тот факт что девчонки довольно быстро просекли что могу подключаться к любому столу незаметно для гостей и администратора, даже если они с этими гостями не сидят. Постояла рядом 5 секунд и ушла. Для столов за которыми уже сидит девочка с гостем эту проблему решили просто - если вторая хочет подключиться к чеку этого стола - первая должна её заапрувить через приложение или кикнуть. Введение чата с техподдержкой через приложение тоже проблем не решило. Девочки тупили. Забывали включить блютуз, забывали включить вайфай, меню и промо акции грузились через медленный 3G потому что у клуба очень толстые стены и сигнал слабый очень..
Таким образом мы поменяли шило на мыло - роль администратора и как следствие человеческий фактор из системы мы не удалили. Нужен непрерывный контроль чтобы не было читерства. Конечно можно было бы научить систему следить чтобы телефон постоянно был в зоне действия маяка и аннулировать сессию если он исчез из эфира больше чем на, допустим 30 секунд, но в силу специфики работы, девчонки регулярно уходят на танцпол покрутиться на шесте и значит исчезать из эфира тоже будут регулярно. Ну а в феврале walking закрыли на полгода.
Автор: progman_rus