Explorar el Código

梳理拉取微唯宝商品代码

sunxbiao hace 1 año
padre
commit
0b1834c631
Se han modificado 1 ficheros con 38 adiciones y 21 borrados
  1. 38 21
      app/controller/api/douhuomall/Take.php

+ 38 - 21
app/controller/api/douhuomall/Take.php

@@ -11,9 +11,17 @@ class Take
11
 
11
 
12
     use GongApiRequest;
12
     use GongApiRequest;
13
 
13
 
14
-    public function get_goods_list(){
14
+    /**
15
+     * 同步 微唯宝 商品数据
16
+     * @return string
17
+     */
18
+    public function get_goods_list()
19
+    {
15
         try {
20
         try {
21
+            // 1、不设置超时
16
             set_time_limit(0);
22
             set_time_limit(0);
23
+
24
+            // 2、循环拉取 商品 数据
17
             $allData = [];
25
             $allData = [];
18
             $page = 1;
26
             $page = 1;
19
             $limit = 100;
27
             $limit = 100;
@@ -31,45 +39,48 @@ class Take
31
                 }
39
                 }
32
             }
40
             }
33
 
41
 
42
+            // 3、获取 微唯宝 商品表 SPUId集合
34
             $goods_id_list = [];
43
             $goods_id_list = [];
35
             $spu_id_list = Db::name('douhuomall')->column('spu_id');
44
             $spu_id_list = Db::name('douhuomall')->column('spu_id');
36
-         
45
+
46
+            // 4、
37
             // 同步到数据库
47
             // 同步到数据库
38
-            foreach ($allData as $key=>$value) {
48
+            foreach ($allData as $key => $value) {
39
                 sleep(1);
49
                 sleep(1);
40
                 // if($key != 0) continue;
50
                 // if($key != 0) continue;
41
-                $goodsInfo = GongApiRequest::get_goods_info($value['goods_id']);
42
-                if(!$goodsInfo) continue;
43
 
51
 
44
-                //图片存放路径
45
-                $targetDir = public_path() . 'images/gong/'.$value['goods_id'].'/';
52
+                // 4.1 获取商品详情
53
+                $goodsInfo = GongApiRequest::get_goods_info($value['goods_id']);
54
+                if (!$goodsInfo) continue;
46
 
55
 
56
+                // 4.2 图片存放路径
57
+                $targetDir = public_path() . 'images/gong/' . $value['goods_id'] . '/';
58
+                // 4.3 清空路径下的文件
47
                 $this->deleteFilesInDirectory($targetDir);
59
                 $this->deleteFilesInDirectory($targetDir);
48
 
60
 
49
-                //spuId_info商品详细信息处理
61
+                // 4.4 获取图片地址 spuId_info商品详细信息处理
50
                 $goodsInfo['cover_url'] = $this->seveImg($value['goods_id'], $goodsInfo['main_img'], $targetDir);
62
                 $goodsInfo['cover_url'] = $this->seveImg($value['goods_id'], $goodsInfo['main_img'], $targetDir);
51
                 $goodsInfo['spu_id'] = $goodsInfo['goods_id'];
63
                 $goodsInfo['spu_id'] = $goodsInfo['goods_id'];
52
-
53
                 $goodsInfo['detail'] = "";
64
                 $goodsInfo['detail'] = "";
54
                 $detail_img = $this->seveImg($value['goods_id'], $goodsInfo['detail_img'], $targetDir);
65
                 $detail_img = $this->seveImg($value['goods_id'], $goodsInfo['detail_img'], $targetDir);
55
-                foreach($detail_img as $img_url){
56
-                    $img_url = "<img src='".$img_url."' referrerpolicy='no-referrer' />";
57
-                    $goodsInfo['detail'] = $goodsInfo['detail'].$img_url;
66
+                foreach ($detail_img as $img_url) {
67
+                    $img_url = "<img src='" . $img_url . "' referrerpolicy='no-referrer' />";
68
+                    $goodsInfo['detail'] = $goodsInfo['detail'] . $img_url;
58
                 }
69
                 }
59
 
70
 
60
                 //sku信息处理
71
                 //sku信息处理
61
                 $skuInfo = $goodsInfo['sku_list'];
72
                 $skuInfo = $goodsInfo['sku_list'];
62
-                foreach ($skuInfo as $k=>$v) {
73
+                foreach ($skuInfo as $k => $v) {
63
                     $skuInfo[$k]['img_url'] = $this->seveImg($value['goods_id'], $v['main_img'], $targetDir);//规格图片
74
                     $skuInfo[$k]['img_url'] = $this->seveImg($value['goods_id'], $v['main_img'], $targetDir);//规格图片
64
-                    $skuInfo[$k]['cost_price'] = bcadd($v['plat_price'], bcmul($v['plat_price'], 0.03, 2),2);//成本价格 原来进价的基础上加百分之3
65
-                    $skuInfo[$k]['market_price'] = bcadd($skuInfo[$k]['cost_price'], bcmul($skuInfo[$k]['cost_price'], 0.2, 2),2);//销售价格  售价在成本价格的基础上加百分20
75
+                    $skuInfo[$k]['cost_price'] = bcadd($v['plat_price'], bcmul($v['plat_price'], 0.03, 2), 2);//成本价格 原来进价的基础上加百分之3
76
+                    $skuInfo[$k]['market_price'] = bcadd($skuInfo[$k]['cost_price'], bcmul($skuInfo[$k]['cost_price'], 0.2, 2), 2);//销售价格  售价在成本价格的基础上加百分20
66
                     $skuInfo[$k]['profit'] = bcdiv($skuInfo[$k]['market_price'], $skuInfo[$k]['cost_price'], 2);
77
                     $skuInfo[$k]['profit'] = bcdiv($skuInfo[$k]['market_price'], $skuInfo[$k]['cost_price'], 2);
67
                     $skuInfo[$k]['mer_profit'] = bcsub($skuInfo[$k]['market_price'], $skuInfo[$k]['cost_price'], 2);
78
                     $skuInfo[$k]['mer_profit'] = bcsub($skuInfo[$k]['market_price'], $skuInfo[$k]['cost_price'], 2);
68
                     $skuInfo[$k]['yanglaojin'] = '0.00';
79
                     $skuInfo[$k]['yanglaojin'] = '0.00';
69
-                    if(count($v['attr'])){
80
+                    if (count($v['attr'])) {
70
                         $skuInfo[$k]['attribute_json'] = $v['attr'];
81
                         $skuInfo[$k]['attribute_json'] = $v['attr'];
71
-                    }else{
72
-                        $skuInfo[$k]['attribute_json'] = [['val'=> '默认', 'name'=> '默认']];
82
+                    } else {
83
+                        $skuInfo[$k]['attribute_json'] = [['val' => '默认', 'name' => '默认']];
73
                     }
84
                     }
74
                 }
85
                 }
75
                 unset($goodsInfo['sku_list']);
86
                 unset($goodsInfo['sku_list']);
@@ -84,17 +95,21 @@ class Take
84
                     'status' => $goodsInfo['status'],
95
                     'status' => $goodsInfo['status'],
85
                     'cate_ids' => $goodsInfo['cate_ids'],
96
                     'cate_ids' => $goodsInfo['cate_ids'],
86
                     'title' => $goodsInfo['spu_name'],
97
                     'title' => $goodsInfo['spu_name'],
87
-                    'cxb_cate_id' => 0,   
98
+                    'cxb_cate_id' => 0,
88
                 ];
99
                 ];
100
+
101
+                // 4.5 保存商品信心到本地
89
                 $this->add($seveData);
102
                 $this->add($seveData);
90
                 $goods_id_list[] = $goodsInfo['spu_id'];
103
                 $goods_id_list[] = $goodsInfo['spu_id'];
91
 
104
 
92
-
105
+                // 4.6 如果上架到商品表 则更新商品表的图片
93
                 $this->updata_product_img($goodsInfo['spu_id']);
106
                 $this->updata_product_img($goodsInfo['spu_id']);
94
             }
107
             }
95
 
108
 
109
+            // 5、将 未同步到的商品 进行下架
96
             $goodsIds = array_diff($spu_id_list, $goods_id_list);
110
             $goodsIds = array_diff($spu_id_list, $goods_id_list);
97
             $this->remove($goodsIds);
111
             $this->remove($goodsIds);
112
+
98
             return 'sussess';
113
             return 'sussess';
99
         } catch (Exception $e) {
114
         } catch (Exception $e) {
100
             Log::error('供应链拉取数据:' . $e->getFile() . ':' . $e->getLine() . '【' . $e->getMessage() . '】');
115
             Log::error('供应链拉取数据:' . $e->getFile() . ':' . $e->getLine() . '【' . $e->getMessage() . '】');
@@ -105,12 +120,14 @@ class Take
105
     }
120
     }
106
 
121
 
107
     public function updata_product_img($spu_id){
122
     public function updata_product_img($spu_id){
123
+        // 1、验证该 SPUId 是否上架了 如果上架了 需要去更新商品 图片
108
         $product_id = Db::name('store_product')->where('spu_id',$spu_id)->value('product_id');
124
         $product_id = Db::name('store_product')->where('spu_id',$spu_id)->value('product_id');
109
         if(!$product_id) return true;
125
         if(!$product_id) return true;
110
 
126
 
127
+        // 2、查找微唯宝 商品
111
         $data = Db::name('douhuomall')->where('spu_id',$spu_id)->find();
128
         $data = Db::name('douhuomall')->where('spu_id',$spu_id)->find();
112
 
129
 
113
-        //商品主图
130
+        // 3、获取 商品主图
114
         $spuId_info=json_decode($data['spuId_info'],true);
131
         $spuId_info=json_decode($data['spuId_info'],true);
115
         $slider_image=$spuId_info['detail_img_list']??'';
132
         $slider_image=$spuId_info['detail_img_list']??'';
116
         $image=$spuId_info['cover_url']??'';
133
         $image=$spuId_info['cover_url']??'';