瀏覽代碼

梳理拉取微唯宝商品代码

sunxbiao 1 年之前
父節點
當前提交
0b1834c631
共有 1 個文件被更改,包括 38 次插入21 次删除
  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 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 20
         try {
21
+            // 1、不设置超时
16 22
             set_time_limit(0);
23
+
24
+            // 2、循环拉取 商品 数据
17 25
             $allData = [];
18 26
             $page = 1;
19 27
             $limit = 100;
@@ -31,45 +39,48 @@ class Take
31 39
                 }
32 40
             }
33 41
 
42
+            // 3、获取 微唯宝 商品表 SPUId集合
34 43
             $goods_id_list = [];
35 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 49
                 sleep(1);
40 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 59
                 $this->deleteFilesInDirectory($targetDir);
48 60
 
49
-                //spuId_info商品详细信息处理
61
+                // 4.4 获取图片地址 spuId_info商品详细信息处理
50 62
                 $goodsInfo['cover_url'] = $this->seveImg($value['goods_id'], $goodsInfo['main_img'], $targetDir);
51 63
                 $goodsInfo['spu_id'] = $goodsInfo['goods_id'];
52
-
53 64
                 $goodsInfo['detail'] = "";
54 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 71
                 //sku信息处理
61 72
                 $skuInfo = $goodsInfo['sku_list'];
62
-                foreach ($skuInfo as $k=>$v) {
73
+                foreach ($skuInfo as $k => $v) {
63 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 77
                     $skuInfo[$k]['profit'] = bcdiv($skuInfo[$k]['market_price'], $skuInfo[$k]['cost_price'], 2);
67 78
                     $skuInfo[$k]['mer_profit'] = bcsub($skuInfo[$k]['market_price'], $skuInfo[$k]['cost_price'], 2);
68 79
                     $skuInfo[$k]['yanglaojin'] = '0.00';
69
-                    if(count($v['attr'])){
80
+                    if (count($v['attr'])) {
70 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 86
                 unset($goodsInfo['sku_list']);
@@ -84,17 +95,21 @@ class Take
84 95
                     'status' => $goodsInfo['status'],
85 96
                     'cate_ids' => $goodsInfo['cate_ids'],
86 97
                     'title' => $goodsInfo['spu_name'],
87
-                    'cxb_cate_id' => 0,   
98
+                    'cxb_cate_id' => 0,
88 99
                 ];
100
+
101
+                // 4.5 保存商品信心到本地
89 102
                 $this->add($seveData);
90 103
                 $goods_id_list[] = $goodsInfo['spu_id'];
91 104
 
92
-
105
+                // 4.6 如果上架到商品表 则更新商品表的图片
93 106
                 $this->updata_product_img($goodsInfo['spu_id']);
94 107
             }
95 108
 
109
+            // 5、将 未同步到的商品 进行下架
96 110
             $goodsIds = array_diff($spu_id_list, $goods_id_list);
97 111
             $this->remove($goodsIds);
112
+
98 113
             return 'sussess';
99 114
         } catch (Exception $e) {
100 115
             Log::error('供应链拉取数据:' . $e->getFile() . ':' . $e->getLine() . '【' . $e->getMessage() . '】');
@@ -105,12 +120,14 @@ class Take
105 120
     }
106 121
 
107 122
     public function updata_product_img($spu_id){
123
+        // 1、验证该 SPUId 是否上架了 如果上架了 需要去更新商品 图片
108 124
         $product_id = Db::name('store_product')->where('spu_id',$spu_id)->value('product_id');
109 125
         if(!$product_id) return true;
110 126
 
127
+        // 2、查找微唯宝 商品
111 128
         $data = Db::name('douhuomall')->where('spu_id',$spu_id)->find();
112 129
 
113
-        //商品主图
130
+        // 3、获取 商品主图
114 131
         $spuId_info=json_decode($data['spuId_info'],true);
115 132
         $slider_image=$spuId_info['detail_img_list']??'';
116 133
         $image=$spuId_info['cover_url']??'';