From 53214f5bf726e972bc2f35a31ebfa6eca6da3cf9 Mon Sep 17 00:00:00 2001 From: Cerys Date: Fri, 10 Apr 2026 11:51:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E5=95=86=E5=93=81=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E6=95=B0=E6=8D=AE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/types.py | 2 +- lib/gether.py | 2 +- lib/model/goods.py | 76 +++++++++++++++++++++++----------------------- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/core/types.py b/core/types.py index 7ac1e4a..46cd50d 100644 --- a/core/types.py +++ b/core/types.py @@ -54,7 +54,7 @@ class GoodsInfo(BaseModel): other_data: dict = {} # 其他参数 def to_db_data(self): - """转为goods_info.add_goods()所需格式""" + """转为插入数据库所需格式""" main_info = { 'spu': self.spu, diff --git a/lib/gether.py b/lib/gether.py index 4968883..92ae5ec 100644 --- a/lib/gether.py +++ b/lib/gether.py @@ -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: diff --git a/lib/model/goods.py b/lib/model/goods.py index f303304..135d9c7 100644 --- a/lib/model/goods.py +++ b/lib/model/goods.py @@ -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