瀏覽代碼

规格图片下载

evoxwht 2 年之前
父節點
當前提交
67bfb5a911
共有 2 個文件被更改,包括 35 次插入5 次删除
  1. 22 3
      crmeb/app/jobs/ProductCopyJob.php
  2. 13 2
      crmeb/app/services/product/product/StoreProductServices.php

+ 22 - 3
crmeb/app/jobs/ProductCopyJob.php

@@ -81,8 +81,6 @@ class ProductCopyJob extends BaseJobs
             $copyTaobao = app()->make(CopyTaobaoServices::class);
             /** @var StoreProductServices $StoreProductServices */
             $StoreProductServices = app()->make(StoreProductServices::class);
-            /** @var StoreProductAttrValueServices $StoreProductAttrValueServices */
-            $StoreProductAttrValueServices = app()->make(StoreProductAttrValueServices::class);
             //下载图片
             $res = $copyTaobao->downloadCopyImage($image);
             //获取缓存中的轮播图
@@ -97,7 +95,6 @@ class ProductCopyJob extends BaseJobs
                 $image = $slider_images[0];
                 $slider_images = $slider_images ? json_encode($slider_images) : '';
                 $StoreProductServices->update($id, ['slider_image' => $slider_images, 'image' => $image]);
-                $StoreProductAttrValueServices->update(['product_id' => $id], ['image' => $image]);
             } else {
                 CacheService::set('slider_images_' . $id, $slider_images);
             }
@@ -106,4 +103,26 @@ class ProductCopyJob extends BaseJobs
         }
         return true;
     }
+
+    /**
+     * 下载商品规格图片
+     * @param $value_id
+     * @param $value_image
+     * @return bool
+     */
+    public function copyAttrImage($value_id, $value_image)
+    {
+        try {
+            /** @var CopyTaobaoServices $copyTaobao */
+            $copyTaobao = app()->make(CopyTaobaoServices::class);
+            /** @var StoreProductAttrValueServices $StoreProductAttrValueServices */
+            $StoreProductAttrValueServices = app()->make(StoreProductAttrValueServices::class);
+            //下载图片
+            $res = $copyTaobao->downloadCopyImage($value_image);
+            $StoreProductAttrValueServices->update($value_id, ['image' => $res]);
+        } catch (\Throwable $e) {
+            Log::error('下载商品规格图片失败,失败原因:' . $e->getMessage() . '_' . $e->getFile() . '_' . $e->getLine());
+        }
+        return true;
+    }
 }

+ 13 - 2
crmeb/app/services/product/product/StoreProductServices.php

@@ -667,7 +667,7 @@ class StoreProductServices extends BaseServices
                             ProductCopyJob::dispatch('copySliderImage', [$res->id, $s_image, count($slider_image)]);
                         } else {
                             //下载图片
-                            $s_image_down[] = app()->make(CopyTaobaoServices::class)->downloadCopyImage($s_image);
+                            $s_image_down[] = app()->make(CopyTaobaoServices::class)->downloadCopyImage(!is_int(strpos($s_image, 'http')) ? 'http://' . ltrim($s_image, '\//') : $s_image);
                         }
                     }
 
@@ -682,9 +682,20 @@ class StoreProductServices extends BaseServices
                         }
                     }
 
+                    //下载商品规格图
+                    $productAttrValue = app()->make(StoreProductAttrValueServices::class);
+                    $attrValueList = $productAttrValue->getColumn(['product_id' => $res->id, 'type' => 0], 'image', 'id');
+                    foreach ($attrValueList as $value_id => $value_image) {
+                        if (sys_config('queue_open', 0) == 1) {
+                            ProductCopyJob::dispatch('copyAttrImage', [$value_id, $value_image]);
+                        } else {
+                            $v_img = app()->make(CopyTaobaoServices::class)->downloadCopyImage(!is_int(strpos($value_image, 'http')) ? 'http://' . ltrim($value_image, '\//') : $value_image);
+                            $productAttrValue->update($value_id, ['image' => $v_img]);
+                        }
+                    }
+
                     if (sys_config('queue_open', 0) == 0) {
                         $this->update($res->id, ['slider_image' => $s_image_down ? json_encode($s_image_down) : '', 'image' => $s_image_down[0]]);
-                        app()->make(StoreProductAttrValueServices::class)->update(['product_id' => $res->id], ['image' => $s_image_down[0]]);
                         $storeDescriptionServices->saveDescription((int)$res->id, $description);
                     }
                 }