|
|
@@ -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']??'';
|