After Graduate Update

This commit is contained in:
Daniel 2025-11-26 19:31:33 +03:00
parent b92a91ab37
commit c6917dd85e
69 changed files with 7540 additions and 0 deletions

View file

@ -0,0 +1,84 @@
import pymysql as psql
from dto.partners_dto import PartnerUpdateDto
class Database:
def __init__(self, host, user, password, db):
self.connection = psql.connect(
host=host,
user=user,
password=password,
database=db,
cursorclass=psql.cursors.DictCursor,
)
def authorize_user(self, username, password):
query = "SELECT * FROM users WHERE username=%s AND password=%s"
with self.connection.cursor() as cur:
cur.execute(query, (username, password))
result = cur.fetchone()
return result is not None
def execute_select(self, query, params=None):
"""Выполняет SELECT запрос и возвращает результаты"""
with self.connection.cursor() as cur:
if params:
cur.execute(query, params)
else:
cur.execute(query)
return cur.fetchall()
def get_partner_types(self):
"""Получает все типы партнеров из таблицы partner_types"""
query = "SELECT * FROM partners_type"
with self.connection.cursor() as cur:
cur.execute(query)
return cur.fetchall()
def update_partner(self, partners_info: PartnerUpdateDto):
with self.connection.cursor() as cur:
cur.callproc(
"upd_partner",
(
partners_info.partner_type_id,
partners_info.id,
partners_info.partner_name,
partners_info.first_name,
partners_info.last_name,
partners_info.middle_name,
partners_info.email,
partners_info.phone,
partners_info.address,
partners_info.inn,
partners_info.rating,
),
)
self.connection.commit()
def get_disc(self, partner_name):
"""
Получает скидку для партнера, вызывая функцию get_disc из БД
"""
# Сначала получим ID партнера по его имени
query = "SELECT id FROM partners WHERE partner_name = %s"
with self.connection.cursor() as cur:
cur.execute(query, (partner_name,))
result = cur.fetchone()
if not result:
return 0
# Вызываем функцию get_disc из БД
query = "SELECT get_disc(%s) as discount"
cur.execute(query, (result["id"],))
discount_result = cur.fetchone()
return discount_result["discount"] if discount_result else 0
db = None
try:
db = Database(host="localhost", user="root", password="", db="master_pol")
print("Database connection established.")
except psql.MySQLError as e:
print(f"Error connecting to database: {e}")