Я пишу бота в телеграмме, суть такова, пользователь имеет возможность ознакомиться с меню кафе и выбрать нужный товар, сам товар делится на категории при выборе вся информация должна упасть в корзину. Проблема следующая, я не знаю как это реализовать. Пример из кода:
public void shavermaBurrito(final long chat_id) {
SendMessage message = new SendMessage().setChatId(chat_id).setText(getAnswer("shaverma.burrito"));
List<List<InlineKeyboardButton>> rowsInline = new ArrayList<>();
List<InlineKeyboardButton> rowInline = new ArrayList<>();
rowInline.add(new InlineKeyboardButton().setText(getAnswer("shaverma.burrito.chicken")).setCallbackData("update_msg_text"));
rowsInline.add(rowInline);
rowInline = new ArrayList<>();
rowInline.add(new InlineKeyboardButton().setText(getAnswer("shaverma.burrito.beef")).setCallbackData("update_msg_text"));
rowsInline.add(rowInline);
rowInline = new ArrayList<>();
rowInline.add(new InlineKeyboardButton().setText(getAnswer("shaverma.burrito.vension")).setCallbackData("update_msg_text"));
rowsInline.add(rowInline);
rowInline = new ArrayList<>();
rowInline.add(new InlineKeyboardButton().setText("Корзина").setCallbackData("update_msg_text"));
rowsInline.add(rowInline);
markupInline.setKeyboard(rowsInline);
message.setReplyMarkup(markupInline);
try {
execute(message);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
В самом телеграмме это выглядит так:
Я хочу, что бы, при нажатии на кнопку например "С курицей 210 руб." товар попадал в корзину. И тут у меня затык. Как это реализовать?
Как вариант - использовать базы данных. Для своих проектов я использую Hibernate + MySQL.
Пример реализации корзины с помощью БД:
Есть таблица User и есть Product. Теперь мы создаем таблицу ShoppingCart, куда будут записываться все покупки. Одна строчка ShoppingCart - это одна корзина у одного юзера. Как тогда записать список продуктов в данную строчку? С помощью ProductList! Создаем в ProductList 2 колонки, где левая часть ShoppingCart_id, а правая - Product_id.
Честно, я не знаю. Но как идея: проверяем, что существует корзина в ShoppingCart. Если есть - берем id ShoppingCart, берем id Product и записываем в ProductList. Если нету ShoppingCart - создаем новую строчку в SC и пишем нужные нам данные: user_id, address и т.д.
Как вариант, в callBackData записывать ID продукта. При проверки callBack в onUpdateReceived(Update update)
сделать if-statement
String callData = update.getCallbackQuery().getData();
if(callData.startWith("product"){
Long id = Long.valueOf(calldata.split("&")[1]);
}
Еще один пример:
rowInline.add(new InlineKeyboardButton().setText(getAnswer("shaverma.burrito.beef")).setCallbackData("product&1"));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я делаю свой домашний проект и столкнулся с проблемой производительностиВ моей бд лежит около 10000 записей, в каждой записи лежит ссылка
Вроде изучаю Spring, но тем не менее никак не могу понять(и найти), реальный пример с продакшн стэком технологий, которые используют в реальных...
Здраствуйте, может кто знает, как сделать так, чтобы меню бесконечно повторялось после выполнение задания (выход с меню в 4 пункте есть)То...
Уже много раз сталкиваюсь с одной проблемойЕсть два алгоритма на Java и Python