@dp.message_handler(commands=["marketbuy"],commands_prefix="!/")
async def cmd_marketbuy(message: types.Message):
title = f'<a href="tg://user?id={message.from_user.id}">{message.from_user.full_name}</a>'
#подключение к бд
connect = sqlite3.connect('INFO.db')
cursor = connect.cursor()
#переменные, что бы узнать информаци, что юзер хочет купить
check_snus = message.text.split(" ")[1] #узнает вид (какой приобретает) товара
check_id = int(message.text.split(" ")[2]) #узнает ID юзера продавца
check_amount_snus = int(message.text.split(" ")[3]) #узнает количество, которое юзер хочет приобрести у продавца
print(check_id)
#если покупатель выбрал товар "iceberg"
if check_snus == "iceberg":
#цикл для того, что бы узнать какое количество товара "iceberg" имеет продавец с его ID, которое узнается в переменной check_id
for economy_check_amount_iceberg in cursor.execute("SELECT amount_iceberg FROM economy WHERE user_id = ?",(check_id, )):
economy_last_check_amount_iceberg = economy_check_amount_iceberg[0] #избавляюсь от ненужного
#условие, при котором проверяется товар
if check_amount_snus > economy_last_check_amount_iceberg: #если покупатель хочет получить больше, чем есть у продавца
for i in cursor.execute("SELECT user_name FROM user_info WHERE user_id = ?",(check_id, )):
name_karma = (list(i)[0])
for i2 in cursor.execute("SELECT user_id FROM user_info WHERE user_id = ?",(check_id, )):
name_karma2 = (list(i2)[0])
await bot.send_message(message.chat.id, text = "У @{}".format((i)[0]) + " С ID {}".format((i2)[0]) + " недостаточно шпаков")
#условие, если у продавца есть нужное количество товара
else:
#цикл, при котором узнается цена товара в таблице "economy" с помощью переменной "check_price"
for check_price in cursor.execute("SELECT iceberg_price FROM economy WHERE user_id = ?",(message.from_user.id, )):
name_karma3 = (list(check_price)[0])
#складывается финальная цена товара (соотношение цены умноженное на количество)
result = check_amount_snus * check_price
lastresult = sum(result)
#обновляется значение в таблице "inventory_snus", где обновляется количество приобретенного товара
cursor.execute("UPDATE inventory_snus SET ICEBERG = ICEBERG + ? WHERE user_id = ?", (check_amount_snus, message.from_user.id, ))
#обновляется значение в таблице "user_info", где обновляется баланс покупателя (значение уменьшается)
cursor.execute("UPDATE user_info SET balance = balance - ? WHERE user_id = ?", (lastresult, message.from_user.id, ))
connect.commit()
#обновляется значение в таблице "user_info", где обновляется баланс уже у продавца (это не работает почему-то)
cursor.execute("UPDATE user_info SET balance = balance + ? WHERE user_id = ?", (lastresult, check_id, ))
#обновляется значение в таблице "economy", где обновляется количечество товара у продавца (вычитается значение) (это не работает почему-то)
cursor.execute("UPDATE economy SET amount_iceberg = amount_iceberg - ? WHERE user_id = ?", (check_amount_snus, check_id, ))
connect.commit()
#отправка уведомления о сделке (о покупке)
await bot.send_message(message.chat.id, text = f"{title}, совершил удачную сделку\nТы купил " + str(check_amount_snus) + " шпаков Iceberg за " + str(lastresult) + " рублей, по цене " + str(check_price[0]) + " рублей за шпак")
await bot.send_message(check_id, text = f"{title}, совершил удачную сделку\nОн купил у тебя " + str(check_amount_snus) + " шпаков Iceberg за " + str(lastresult) + " рублей, по цене " + str(check_price[0]) + " рублей за шпак")
elif check_snus == "arqa":
pass
elif check_snus == "kasta":
pass
elif check_snus == "corvus":
pass
else:
pass
connect.commit()