Сервер BOOCO Meteor (v 1.x) / Примеры правил бронирования
Проверка на наличие конфликта с другим бронированием того же ресурса
Проверка наличия у пользователя бронирований других ресурсов
Проверка на бронирование ресурса другим пользователем
Проверка на частоту бронирования ресурса
Ограничение на создание нескольких бронирований подряд
◼ Ограничение на количество бронирований в день
Описание
По умолчанию в системе существует ограничение на бронирование капсулы сна более 5 раз в день. При необходимости значение, используемое по умолчанию, можно изменить.
Принцип работы
- Создается переменная
dayEnd
. - Создается переменная
dayStart
путем вычитания 86 400 000 (количество миллисекунд в дне) из значения переменнойdayEnd
. - Создаются переменные
end1
иstart1
с типом данныхDate
. - Система выполняет поиск всех бронирований капсулы сна, которые были созданы в течение выбранного дня; считает их количество и сохраняет полученное значение в переменную
myCount
. - Система проверяет, не превышено ли ограничение на количество разрешенных бронирований.
- Если ограничение превышено, то отображается сообщение о конфликте.
Пример использования
[
{
"$addFields": {
"dayEnd": { "$toDate": { "$concat": [{ "$substr": ["$newEvent.start",
0, 11] }, "21:00:00", { "$substr": ["$newEvent.start", 19, 6] }] } }
}
},
{
"$addFields": {
"dayStart": { "$add": ["$dayEnd", -86400000] },
"end1": { "$toDate": "$end" },
"start1": { "$toDate": "$start" }
}
},
{
"$match": {
"$and": [
{ "venueType": "nappod" },
{ "$expr": { "$eq": ["$organizer", "$newEvent.organizer"] } },
{ "$expr": { "$lt": ["$start1", "$dayEnd"] } },
{ "$expr": { "$gt": ["$end1", "$dayStart"] } }
]
}
},
{
"$count": "myCount"
},
{
"$match": { "myCount": { "$gte": 5 } }
},
{
"$addFields": {
"message": { "$concat":["Достигнут лимит бронирования капсул сна на данный день - ", { "$toString": "$myCount" }] }
}
}
]