rambo 3 mesiacov pred
rodič
commit
7e233b82ac
2 zmenil súbory, kde vykonal 41 pridanie a 31 odobranie
  1. 29 31
      python/api.py
  2. 12 0
      python/service/run_main.py

+ 29 - 31
python/api.py

@@ -567,38 +567,36 @@ async def _process_scene_images(aigc_clazz, run_main, return_data_check_before_d
     )
     
     for goods_art_no in goods_dict.keys():
-        product_scene_finish_progress += 1
-        product_scene_progress = {
-            "status": "正在处理",
-            "goods_art_no": goods_art_no, 
-            "current": product_scene_finish_progress, 
-            "total": product_scene_total_progress, 
-            "error": product_scene_error_progress
-        }
-        
-        await sendAsyncMessage(
-            msg="正在处理场景图",
-            goods_arts=[goods_art_no],
-            status="正在处理场景图",
-            msg_type="scene_progress",
-            progress=product_scene_progress
-        )
-        
-        goods_art_dict_info = goods_dict[goods_art_no]
-        first_goods_art_no_info = goods_art_dict_info.get("货号资料", [])[0]
-        first_pics = first_goods_art_no_info.get("pics")
-        ceshi_image_path = first_pics.get("侧视-抠图")
-        save_root_path = ceshi_image_path.split("阴影图处理")[0]
-        save_image_path = f"{save_root_path}场景图.jpg"
-        
-        if os.path.isfile(save_image_path):
-            goods_art_dict_info["场景图"] = save_image_path
-            new_goods_dict[goods_art_no] = goods_art_dict_info
-            continue
-            
-        aigc_clazz.center_paste_image(ceshi_image_path, save_image_path)
-        
         try:
+            product_scene_finish_progress += 1
+            product_scene_progress = {
+                "status": "正在处理",
+                "goods_art_no": goods_art_no, 
+                "current": product_scene_finish_progress, 
+                "total": product_scene_total_progress, 
+                "error": product_scene_error_progress
+            }
+            
+            await sendAsyncMessage(
+                msg="正在处理场景图",
+                goods_arts=[goods_art_no],
+                status="正在处理场景图",
+                msg_type="scene_progress",
+                progress=product_scene_progress
+            )
+            goods_art_dict_info = goods_dict[goods_art_no]
+            first_goods_art_no_info = goods_art_dict_info.get("货号资料", [])[0]
+            first_pics = first_goods_art_no_info.get("pics")
+            ceshi_image_path = first_pics.get("侧视-抠图")
+            save_root_path = ceshi_image_path.split("阴影图处理")[0]
+            save_image_path = f"{save_root_path}场景图.jpg"
+            
+            if os.path.isfile(save_image_path):
+                goods_art_dict_info["场景图"] = save_image_path
+                new_goods_dict[goods_art_no] = goods_art_dict_info
+                continue
+                
+            aigc_clazz.center_paste_image(ceshi_image_path, save_image_path)
             image_path = aigc_clazz.generateProductScene(
                 save_image_path, product_scene_prompt, save_image_path
             )

+ 12 - 0
python/service/run_main.py

@@ -474,6 +474,13 @@ class RunMain:
         print("temp_class====>", temp_class)
         print("temp_class====>", temp_name)
         # 获取所有文件夹基础数据内容  检查不满足要求的文件不满足要求移动到错误文件夹
+        # 在访问 temp_class[temp_name].need_view 前增加检查
+        if temp_name not in temp_class or temp_class[temp_name] is None:
+            raise UnicornException(f"模板 {temp_name} 未正确初始化或不存在")
+
+        # 确保 temp_class[temp_name] 是可调用的
+        if not callable(temp_class[temp_name]):
+            raise UnicornException(f"模板 {temp_name} 不是有效的可调用对象")
         try:
           need_view_list = temp_class[temp_name].need_view
         except KeyError as ke:
@@ -1167,6 +1174,11 @@ class RunMain:
         print("模板:", temp_name)
         print("value:", value)
         print("temp_class:", temp_class)
+        if temp_name not in temp_class or temp_class[temp_name] is None:
+            raise UnicornException(f"详情页模板 {temp_name} 未正确加载")
+            
+        if not callable(temp_class[temp_name]):
+            raise UnicornException(f"详情页模板 {temp_name} 不是有效的可调用对象")
         if settings.IS_TEST:
             temp_class[temp_name](
                 goods_no,