简化商品插入数据表

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

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

View File

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