fix(db): Added db to actual price
This commit is contained in:
1 parent
39cc73d71a
commit
beb94d2b0d
4 files changed
+364
-134
No files matched your search
@@ -12,7 +12,7 @@ def get_all_categories_with_attributes(db_name: str = 'pipe_store.db') -> List[D
|
||||
cursor.execute("""
|
||||
SELECT id, name, image_path
|
||||
FROM categories
|
||||
WHERE parent_id IS NULL OR parent_id = 1
|
||||
WHERE parent_id IS NULL
|
||||
ORDER BY id
|
||||
""")
|
||||
|
||||
@@ -21,7 +21,7 @@ def get_all_categories_with_attributes(db_name: str = 'pipe_store.db') -> List[D
|
||||
for cat_row in cursor.fetchall():
|
||||
category_id = cat_row['id']
|
||||
|
||||
# Получаем все фильтры для товаров в этой категории
|
||||
# Получаем все фильтры для товаров в этой категории и подкатегориях
|
||||
cursor.execute("""
|
||||
SELECT DISTINCT f.id, f.name, f.filter_key
|
||||
FROM filters f
|
||||
@@ -29,10 +29,13 @@ def get_all_categories_with_attributes(db_name: str = 'pipe_store.db') -> List[D
|
||||
SELECT DISTINCT pf.filter_key
|
||||
FROM product_filters pf
|
||||
JOIN products p ON pf.product_id = p.id
|
||||
WHERE p.category_id = ?
|
||||
WHERE p.category_id IN (
|
||||
SELECT id FROM categories
|
||||
WHERE id = ? OR parent_id = ?
|
||||
)
|
||||
)
|
||||
ORDER BY f.id
|
||||
""", (category_id,))
|
||||
""", (category_id, category_id))
|
||||
|
||||
attributes = []
|
||||
|
||||
@@ -46,21 +49,24 @@ def get_all_categories_with_attributes(db_name: str = 'pipe_store.db') -> List[D
|
||||
SELECT DISTINCT pf.value, COUNT(*) as count
|
||||
FROM product_filters pf
|
||||
JOIN products p ON pf.product_id = p.id
|
||||
WHERE p.category_id = ? AND pf.filter_key = ?
|
||||
WHERE p.category_id IN (
|
||||
SELECT id FROM categories
|
||||
WHERE id = ? OR parent_id = ?
|
||||
)
|
||||
AND pf.filter_key = ?
|
||||
GROUP BY pf.value
|
||||
ORDER BY pf.value
|
||||
""", (category_id, filter_key))
|
||||
""", (category_id, category_id, filter_key))
|
||||
|
||||
vals = []
|
||||
for val_row in cursor.fetchall():
|
||||
# Генерируем уникальный ID для значения
|
||||
val_id = hash(f"{category_id}_{filter_key}_{val_row['value']}") % 1000000
|
||||
vals.append({
|
||||
"id": val_id,
|
||||
"val": val_row['value']
|
||||
})
|
||||
|
||||
if vals: # Добавляем только если есть значения
|
||||
if vals:
|
||||
attributes.append({
|
||||
"id": filter_id,
|
||||
"name": filter_name,
|
||||
@@ -97,12 +103,28 @@ def get_category_by_id(category_id: int, db_name: str = 'pipe_store.db') -> Opti
|
||||
|
||||
row = cursor.fetchone()
|
||||
if row:
|
||||
# Получаем подкатегории
|
||||
cursor.execute("""
|
||||
SELECT id, name, image_path
|
||||
FROM categories
|
||||
WHERE parent_id = ?
|
||||
""", (category_id,))
|
||||
|
||||
subcategories = []
|
||||
for sub_row in cursor.fetchall():
|
||||
subcategories.append({
|
||||
"id": sub_row['id'],
|
||||
"name": sub_row['name'],
|
||||
"image": sub_row['image_path']
|
||||
})
|
||||
|
||||
return {
|
||||
"id": row['id'],
|
||||
"name": row['name'],
|
||||
"description": row['description'],
|
||||
"image": row['image_path'],
|
||||
"parent_id": row['parent_id']
|
||||
"parent_id": row['parent_id'],
|
||||
"subcategories": subcategories
|
||||
}
|
||||
return None
|
||||
|
||||
@@ -111,3 +133,34 @@ def get_category_by_id(category_id: int, db_name: str = 'pipe_store.db') -> Opti
|
||||
return None
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
def get_subcategories(parent_id: int, db_name: str = 'pipe_store.db') -> List[Dict[str, Any]]:
|
||||
"""Получить подкатегории для родительской категории"""
|
||||
conn = sqlite3.connect(db_name)
|
||||
conn.row_factory = sqlite3.Row
|
||||
cursor = conn.cursor()
|
||||
|
||||
try:
|
||||
cursor.execute("""
|
||||
SELECT id, name, description, image_path
|
||||
FROM categories
|
||||
WHERE parent_id = ?
|
||||
ORDER BY id
|
||||
""", (parent_id,))
|
||||
|
||||
subcategories = []
|
||||
for row in cursor.fetchall():
|
||||
subcategories.append({
|
||||
"id": row['id'],
|
||||
"name": row['name'],
|
||||
"description": row['description'],
|
||||
"image": row['image_path']
|
||||
})
|
||||
|
||||
return subcategories
|
||||
|
||||
except sqlite3.Error as e:
|
||||
log.error(f"Ошибка при получении подкатегорий для {parent_id}: {e}")
|
||||
return []
|
||||
finally:
|
||||
conn.close()
|
||||
Reference in new issue
Block a user