简化商品插入数据表

This commit is contained in:
2026-04-10 11:51:11 +08:00
parent 86ba722bfc
commit 53214f5bf7
3 changed files with 40 additions and 40 deletions

View File

@@ -54,7 +54,7 @@ class GoodsInfo(BaseModel):
other_data: dict = {} # 其他参数 other_data: dict = {} # 其他参数
def to_db_data(self): def to_db_data(self):
"""转为goods_info.add_goods()所需格式""" """转为插入数据库所需格式"""
main_info = { main_info = {
'spu': self.spu, 'spu': self.spu,

View File

@@ -90,7 +90,7 @@ def get_goods_info():
for goods_info in results: for goods_info in results:
try: try:
GoodsModel.add_goods(*goods_info.to_db_data()) GoodsModel.add_goods(goods_info)
for p_url in goods_info.p_urls: for p_url in goods_info.p_urls:
p_urls[p_url] = None p_urls[p_url] = None
except Exception as e: except Exception as e:

View File

@@ -72,14 +72,14 @@ class GoodsModel:
''' '''
self.Db.execute_script(table_sql) self.Db.execute_script(table_sql)
def add_goods(self, main_info: dict, son_infos: list = []): def add_goods(self, goods_info: types.GoodsInfo):
""" """
添加商品 添加商品
:param main_info: 主表信息 :param goods_info: GoodsInfo 类型数据
:param son_infos: 变体信息列表
""" """
main_info, son_infos = goods_info.to_db_data()
if main_info['attr'] == 'M' and len(son_infos) == 0: if main_info['attr'] == 'M' and len(son_infos) == 0:
raise Exception(f"变体丢失 {main_info}") raise Exception(f"变体丢失 {main_info}")
if len(main_info['images']) == 0: if len(main_info['images']) == 0:
@@ -357,42 +357,42 @@ class GoodsModel:
:param excel_path: 表格路径 :param excel_path: 表格路径
""" """
shopyy_data = excels.read_excel_to_dict(excel_path) shopyy_data = excels.read_excel_to_dict(excel_path)
for url, main_goods_info in shopyy_data.items(): for url, goods_info in shopyy_data.items():
main_info = { # main_info = {
'spu': main_goods_info.spu, # 'spu': main_goods_info.spu,
'title': main_goods_info.title, # 'title': main_goods_info.title,
'brand': main_goods_info.category_name, # 'brand': main_goods_info.category_name,
'attr': main_goods_info.attribute, # 'attr': main_goods_info.attribute,
'desc': main_goods_info.desc, # 'desc': main_goods_info.desc,
'price': main_goods_info.price, # 'price': main_goods_info.price,
'old_price': main_goods_info.old_price, # 'old_price': main_goods_info.old_price,
'images': orjson.dumps(main_goods_info.images), # 'images': orjson.dumps(main_goods_info.images),
'url': main_goods_info.url, # 'url': main_goods_info.url,
'other_data': orjson.dumps({}) # 'other_data': orjson.dumps({})
} # }
for index, item_name in enumerate(main_goods_info.attribute_items): # for index, item_name in enumerate(main_goods_info.attribute_items):
if item_name: # if item_name:
main_info[f"item{index+1}"] = item_name # main_info[f"item{index+1}"] = item_name
son_infos = [] # son_infos = []
for p_info in main_goods_info.p_lists: # for p_info in main_goods_info.p_lists:
item = { # item = {
'spu': p_info.spu, # 'spu': p_info.spu,
'price': p_info.price, # 'price': p_info.price,
'old_price': p_info.old_price, # 'old_price': p_info.old_price,
'images': orjson.dumps(p_info.images), # 'images': orjson.dumps(p_info.images),
'url': p_info.url, # 'url': p_info.url,
'other_data': orjson.dumps({}), # 'other_data': orjson.dumps({}),
'item1': None, # 'item1': None,
'item2': None, # 'item2': None,
'item3': None # 'item3': None
} # }
for index, item_name in enumerate(p_info.attribute_items): # for index, item_name in enumerate(p_info.attribute_items):
if item_name: # if item_name:
item[f"item{index+1}"] = item_name # item[f"item{index+1}"] = item_name
son_infos.append(item) # son_infos.append(item)
self.add_goods(main_info, son_infos) self.add_goods(goods_info)
def splice_db(self, db_folder: str): def splice_db(self, db_folder: str):
""" """
@@ -410,7 +410,7 @@ class GoodsModel:
if goods_info.url in db_index: if goods_info.url in db_index:
continue continue
try: try:
self.add_goods(*goods_info.to_db_data()) self.add_goods(goods_info)
except Exception as e: except Exception as e:
messages.sendError(f"{e} {goods_info.spu}") messages.sendError(f"{e} {goods_info.spu}")
db_index[goods_info.url] = None db_index[goods_info.url] = None