wesmiler 2 lat temu
rodzic
commit
644aadcb6e
1 zmienionych plików z 55 dodań i 10 usunięć
  1. 55 10
      app/Services/Api/GoodsService.php

+ 55 - 10
app/Services/Api/GoodsService.php

@@ -154,19 +154,16 @@ class GoodsService extends BaseService
                 if ($goodsId && $goodsSkuSn) {
 
                     $skuInfo = SupplyService::make()->getApiData('getSkuDetail', ['sku_sn' => $goodsSkuSn]);
-                    if ($goodsSkuSn) {
-                        $updateData = ['update_time' => time(), 'last_update_at' => $item['update_time']];
+                    if ($skuInfo) {
+                        $updateData = ['sku_sn'=> $goodsSkuSn,'update_time' => time(),'mark'=>1, 'last_update_at' => $item['update_time']];
                         if (isset($item['sku_name']) && $item['sku_name']) {
                             $updateData['sku_name'] = $item['sku_name'];
                         }
                         if (isset($item['main_img']) && $item['main_img']) {
                             $updateData['main_img'] = $item['main_img'];
                         }
-                        if (isset($item['name']) && $item['name']) {
-                            $updateData['name'] = $item['name'];
-                        }
-                        if (isset($item['val']) && $item['val']) {
-                            $updateData['val'] = $item['val'];
+                        if (isset($item['spu_sn']) && $item['spu_sn']) {
+                            $updateData['spu_sn'] = $item['spu_sn'];
                         }
                         if (isset($item['status']) && $item['status']) {
                             $updateData['status'] = intval($item['status']);
@@ -183,7 +180,14 @@ class GoodsService extends BaseService
                         if (isset($item['attr']) && $item['attr']) {
                             $updateData['attr'] = json_encode($item['attr'], 256);
                         }
-                        $this->model->where(['goods_id' => $goodsId, 'mark' => 1])->update($updateData);
+
+                        if($this->model->where(['goods_id' => $goodsId])->value('id')){
+                            $this->model->where(['goods_id' => $goodsId, 'mark' => 1])->update($updateData);
+                        }else{
+                            $updateData['goods_id'] = $goodsId;
+                            $this->model->insert($updateData);
+                        }
+
                         $updated++;
                     } else {
                         $error++;
@@ -226,6 +230,7 @@ class GoodsService extends BaseService
             'begin_time' => $lastTime ? $lastTime : '',  // 开始时间
         ];
         $goods = [];
+        $skus = [];
         $updated = 0;
         $error = 0;
         $datas = SupplyService::make()->getApiData('getGoodsList', $params);
@@ -250,7 +255,7 @@ class GoodsService extends BaseService
                             'cost_price' => isset($info['cost_price']) ? floatval($info['cost_price']) : 0,
                             'retail_price' => isset($info['retail_price']) ? floatval($info['retail_price']) : 0,
                             'profit' => isset($info['profit']) ? floatval($info['profit']) : 0,
-                            'sku_list' => isset($info['sku_list']) ? json_encode($info['sku_list'], 256) : '',
+                            'sku_list' => '',
                             'sku_total' => isset($info['sku_total']) ? intval($info['sku_total']) : 0,
                             'tag' => isset($item['tag']) ? json_encode($item['tag'], 256) : '',
                             'status' => isset($info['status']) ? intval($info['status']) : 1,
@@ -258,6 +263,27 @@ class GoodsService extends BaseService
                             'last_update_at' => isset($info['update_time']) ? $info['update_time'] : (isset($item['time']) && $item['time'] ? $item['time'] : date('Y-m-d H:i:s')),
                             'create_time' => time(),
                         ];
+
+                        $skuList = isset($info['sku_list']) ? $info['sku_list'] : [];
+                        foreach($skuList as $v){
+                            $skus[] = [
+                                'sku_id'=> isset($v['sku_id'])? $v['sku_id'] : 0,
+                                'goods_id'=> isset($v['goods_id'])? $v['goods_id'] : 0,
+                                'spu_sn'=> isset($v['spu_sn'])? $v['spu_sn'] : '',
+                                'sku_sn'=> isset($v['sku_sn'])? $v['sku_sn'] : '',
+                                'sku_name'=> isset($v['sku_name'])? $v['sku_name'] : '',
+                                'main_img'=> isset($v['main_img'])? $v['main_img'] : '',
+                                'status'=> isset($v['status'])? $v['status'] : 1,
+                                'source_type'=> isset($v['source_type'])? $v['source_type'] : 0,
+                                'retail_price'=> isset($v['retail_price'])? floatval($v['retail_price']) : 0,
+                                'plat_price'=> isset($v['plat_price'])? floatval($v['plat_price']) : 0,
+                                'profit'=> isset($v['profit'])? floatval($v['profit']) : 0,
+                                'last_update_at'=> isset($v['update_time'])? $v['update_time'] : date('Y-m-d H:i:s'),
+                                'detail_img'=> isset($v['detail_img'])? json_encode($v['detail_img'],256) : '',
+                                'attr'=> isset($v['attr'])? json_encode($v['attr'],256) : '',
+                            ];
+                        }
+
                         $updated++;
                     } else {
                         $error++;
@@ -275,7 +301,9 @@ class GoodsService extends BaseService
         if ($goods) {
             RedisService::set($cacheKey . '_page', $page, rand(300, 600));
             RedisService::set($cacheKey, $goods, rand(5, 10));
-            $this->model->insertAll($goods);
+            if(!$this->model->insertAll($goods)){
+
+            }
         }
 
 
@@ -356,6 +384,23 @@ class GoodsService extends BaseService
     }
 
     /**
+     * 验证分类
+     * @param $cateId
+     * @return bool
+     */
+    public function checkCategory($cateId)
+    {
+        $cacheKey = "caches:goods:category_check_{$cateId}";
+        if (RedisService::get($cacheKey) || RedisService::exists($cacheKey)) {
+            return true;
+        }
+
+        $data = GoodsCategoryModel::where(['cate_id' => $cateId, 'mark' => 1])->value('id');
+        RedisService::set($cacheKey, $data, rand(30, 60));
+        return $data;
+    }
+
+    /**
      * 接口商品详情
      * @param $goodsId 商品ID
      * @param int $isReal 是否实时数据,0-是,1-否