After Graduate Update
This commit is contained in:
parent
b92a91ab37
commit
c6917dd85e
69 changed files with 7540 additions and 0 deletions
84
robbery/master_pol-module_1_2/app/database/db.py
Normal file
84
robbery/master_pol-module_1_2/app/database/db.py
Normal 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}")
|
||||
Loading…
Add table
Add a link
Reference in a new issue