shensong 5 yıl önce
ebeveyn
işleme
47724ce2e5
2 değiştirilmiş dosya ile 41 ekleme ve 32 silme
  1. 39 31
      app/Console/Commands/SyncGoods.php
  2. 2 1
      config/constants.php

+ 39 - 31
app/Console/Commands/SyncGoods.php

@@ -1,5 +1,6 @@
1 1
 <?php namespace App\Console\Commands;
2 2
 
3
+use App\Log;
3 4
 use App\Order;
4 5
 use Illuminate\Console\Command;
5 6
 use Illuminate\Support\Facades\DB;
@@ -32,32 +33,31 @@ class SyncGoods extends Command {
32 33
     }
33 34
 
34 35
     public function handleGoodsList($list) {
35
-        foreach($list as $goods){
36
+        foreach($list as $key=>$goods){
36 37
             //查询现在商品表中是否有该商品
37
-            $info = DB::table('seafood_fx.goods')->where('id',$goods['id'])->first();
38
+            $info = DB::table('seafood_fx.goods')->where('productCode',$goods['productCode'])->first();
38 39
             if($info){
39 40
                 //有商品信息则更新店铺商品信息
40 41
                 //卖家云必要参数拼接转化
41 42
                 $mjArr = array();
42 43
                 $mjArr['eshopCode'] = config('constants.ESHOP_CODE');
43
-                $mjArr['outerCode'] = $goods['id'];
44
+                $mjArr['outerCode'] = config('constants.GOODS_PREFIX').$goods['id'];
44 45
                 $mjArr['name'] = $goods['name'];
45 46
                 $mjArr['description'] = $goods['description'];
46 47
                 $mj = Order::mjGoodsUpdate($mjArr);
47 48
                 if($mj == false){
48
-                    echo 'goods_id:'.$goods['id']."\r\n";
49
-                    return false;
49
+                    Log::errorLog(json_encode($mjArr),[],"order/syncGoods",0,'');
50 50
                 }
51 51
                 //查询规格信息,更新规格信息
52
-                $result = DB::table('seafood.goods_skus')->where('goodsCode', $goods['id'])->orderBy('id', 'desc')->get();
52
+                $result = DB::table('seafood.goods_skus')->where('goodsCode', $goods['id'])->get();
53 53
                 $result = json_decode(json_encode($result),true);
54 54
                 foreach ($result as $sku){
55 55
                     //查询规格信息
56
-                    $skuInfo = DB::table('seafood_fx.goods_skus')->where('id',$sku['id'])->first();
56
+                    $skuInfo = DB::table('seafood_fx.goods_skus')->where('code',$sku['code'])->first();
57 57
                     if($skuInfo){
58 58
                         //增加shop sku
59 59
                         $shopArr = array();
60
-                        $shopArr['outerCode'] = $sku['id'];
60
+                        $shopArr['outerCode'] = config('constants.GOODS_PREFIX').$sku['id'];
61 61
                         $shopArr['eshopCode'] = config('constants.ESHOP_CODE');
62 62
                         $shopArr['goodsCode'] = $sku['goodsCode'];
63 63
                         $shopArr['propsName'] = $sku['propsName'];
@@ -67,39 +67,43 @@ class SyncGoods extends Command {
67 67
                         $shopArr['modifyTime'] = $sku['createTime'];
68 68
                         $sku_add = Order::mjSkuAdd($shopArr);
69 69
                         if($sku_add == false){
70
-                            echo 'sku_id:'.$sku['id']."\r\n";
71
-                            return false;
70
+                            Log::errorLog(json_encode($shopArr),[],"order/syncGoods",0,'');
72 71
                         }
73 72
                         //更新商品信息以及添加库存
74
-                        $goods_id = $goods['id'];
75
-                        unlink($goods['id']);
76
-                        $goods_up = DB::table('seafood_fx.goods')->where('id',$goods_id)->update($goods);
73
+                        $productCode = $goods['productCode'];
74
+                        unset($goods['productCode']);
75
+                        unset($goods['id']);
76
+                        $goods_up = DB::table('seafood_fx.goods')->where('productCode',$productCode)->update($goods);
77
+                        $sku['goodsCode'] = $skuInfo->id;
77 78
                         $skus_ad = DB::table('seafood_fx.goods_skus')->insert($sku);
78 79
                     } else {
79 80
                         # eshop sku更新
80 81
                         $shopArr = array();
81 82
                         $shopArr['eshopCode'] = config('constants.ESHOP_CODE');
82 83
                         $shopArr['goodsCode'] = $sku['goodsCode'];
83
-                        $shopArr['outerCode'] = $sku['id'];
84
+                        $shopArr['outerCode'] = config('constants.GOODS_PREFIX').$sku['id'];
84 85
                         $shopArr['propsName'] = $sku['propsName'];
85 86
                         $shopArr['price'] = $sku['price'];
86 87
                         $sku_up = Order::mjSkuUpdate($shopArr);
87 88
                         if($sku_up == false){
88
-                            echo 'sku_id:'.$sku['id']."\r\n";
89
-                            return false;
89
+                            Log::errorLog(json_encode($shopArr),[],"order/syncGoods",0,'');
90 90
                         }
91
-                        $goods_id = $goods['id'];
92
-                        unlink($goods['id']);
93
-                        $goods_up = DB::table('seafood_fx.goods')->where('id',$goods_id)->update($goods);
94
-                        $sku_id = $sku['id'];
95
-                        unlink($sku['id']);
96
-                        $sku_update = DB::table('seafood_fx.goods_skus')->where('id',$sku_id)->update($sku);
91
+
92
+                        $productCode = $goods['productCode'];
93
+                        unset($goods['id']);
94
+                        unset($goods['productCode']);
95
+                        $goods_up = DB::table('seafood_fx.goods')->where('productCode',$productCode)->update($goods);
96
+
97
+                        $code = $sku['code'];
98
+                        unset($sku['id']);
99
+                        unset($sku['code']);
100
+                        $sku_update = DB::table('seafood_fx.goods_skus')->where('code',$code)->update($sku);
97 101
                     }
98 102
                 }
99 103
 
100 104
             } else {
101 105
                 //没有商品,直接同步店铺商品信息以及库存信息
102
-                $result = DB::table('seafood.goods_skus')->where('goodsCode', $goods['id'])->orderBy('id', 'desc')->get();
106
+                $result = DB::table('seafood.goods_skus')->where('goodsCode', $goods['id'])->get();
103 107
                 $result = json_decode(json_encode($result),true);
104 108
                 $mjArr = array();
105 109
                 $skuArr = array();
@@ -108,8 +112,7 @@ class SyncGoods extends Command {
108 112
                         $skuArr[$k]['propsName'] = $sku['propsName'];
109 113
                         $skuArr[$k]['eShopCode'] = config('constants.ESHOP_CODE');
110 114
                         $skuArr[$k]['price'] = $sku['price'];
111
-                        $skuArr[$k]['outerCode'] = $sku['id'];
112
-                        $skuArr[$k]['skuProductCode'] = $sku['code'];
115
+                        $skuArr[$k]['outerCode'] = config('constants.GOODS_PREFIX').$sku['id'];
113 116
                         $skuArr[$k]['createTime'] = $sku['createTime'];
114 117
                         $skuArr[$k]['modifyTime'] = $sku['modifyTime'];
115 118
                     }
@@ -120,20 +123,25 @@ class SyncGoods extends Command {
120 123
                 $mjArr['productCode'] = $goods['productCode'];
121 124
                 $mjArr['goodsCategoryName'] = $goods['goodsCategoryName'];
122 125
                 $mjArr['picUrl'] = $goods['picUrl'];
123
-                $mjArr['outerCode'] = $goods['id'];
126
+                $mjArr['outerCode'] = config('constants.GOODS_PREFIX').$goods['id'];
124 127
                 $mjArr['skuList'] = $skuArr;
125 128
                 $mj = Order::mjGoodsAdd($mjArr);
126 129
                 if($mj == false){
127
-                    echo 'goods_id:'.$goods['id']."\r\n";
128
-                    return false;
130
+                    Log::errorLog(json_encode($mjArr),[],"order/syncGoods",0,'');
129 131
                 }
130 132
                 //数据表中插入商品信息以及规格信息
131
-                $goods_ad = DB::table('seafood_fx.goods')->insert($goods);
132
-                if(count($result)>0){
133
-                    $sku_ad = DB::table('seafood_fx.goods_skus')->insert($result);
133
+                unset($goods['id']);
134
+                $goods_id = DB::table('seafood_fx.goods')->insertGetId($goods);
135
+                if($goods_id > 0 && count($result)>0 ){
136
+                    foreach ($result as $skus){
137
+                        $skus['goodsCode'] = $goods_id;
138
+                        $sku_ad = DB::table('seafood_fx.goods_skus')->insert($skus);
139
+                    }
140
+
134 141
                 }
135 142
             }
136 143
         }
144
+        echo 'SUCCESS';die;
137 145
     }
138 146
 
139 147
 }

+ 2 - 1
config/constants.php

@@ -6,7 +6,7 @@ return [
6 6
     'REDIS_PORT'=>'6379',
7 7
     'REDIS_PASSWORD'=>'Zhuaduoduo2017',
8 8
 
9
-//    'ESHOP_CODE' => '100|100|mrhx', //卖家云店铺code
9
+//    'ESHOP_CODE' => '100|csxd', //卖家云店铺code
10 10
 //    'ESHOP_CODE' => '100|hxas', //卖家云店铺code
11 11
     'ESHOP_CODE' => '100|xyxd', //卖家云店铺code
12 12
     'WAREHOUSE_CODE' => '28416',//卖家云仓库编码
@@ -14,4 +14,5 @@ return [
14 14
     'SKU_QUANTITY_TABLE' => 'seafood.sku_wmj_quantity',
15 15
 
16 16
     'ORDER_PREFIX' => '',//订单编号前缀
17
+    'GOODS_PREFIX' => 'f',//商品规格前缀
17 18
 ];