diff --git a/app/admin/controller/Goods.php b/app/admin/controller/Goods.php index ea1b7d9a..3f667e33 100644 --- a/app/admin/controller/Goods.php +++ b/app/admin/controller/Goods.php @@ -135,11 +135,13 @@ class Goods extends Controller { // 商品详情 $model = GoodsModel::detail($goodsId); + $params = $this->postForm(); + $params['data_type'] = $model->data_type; // echo "
";
         // print_r($model);
         // exit();
         // 更新记录
-        if ($model->edit($this->postForm(), $model)) {
+        if ($model->edit($params, $model)) {
             //更新来源数据为当前数据的商品
             
 
@@ -178,6 +180,7 @@ class Goods extends Controller
                 'is_jd_remove' => $goods_sku->is_jd_remove,
                 'goods_no_other' => $goods_sku->goods_no_other,
                 'link_other' => $goods_sku->link_other,
+                'data_type' => $goods_sku->data_type,
                 // 'is_pool' => $goods_sku->is_pool,
                 // 'is_sale' => $goods_sku->is_sale,
                 'update_time' => time(),
diff --git a/app/admin/controller/Store.php b/app/admin/controller/Store.php
index b3bc4829..d0338247 100644
--- a/app/admin/controller/Store.php
+++ b/app/admin/controller/Store.php
@@ -373,59 +373,65 @@ class Store extends Controller
      * @param  int    $storeId [description]
      * @return [type]          [description]
      */
-    public function deleteGoods(int $storeId): Json
+    public function deleteGoods(): Json
     {
+        $params = $this->postData();
+        $storeId = $params['storeId'] ?? 0;
+        $type = $params['type'] ?? 0;
         ini_set('memory_limit', '1024M');
         set_time_limit(0);
         $model = StoreModel::detail($storeId);
         if (!$model || $storeId <= 0) {
             return $this->renderError('商城不存在');
         }
-
+        
         //删除分类
-        Category::where('store_id', $storeId)->delete();
-        // GoodsSku::where('store_id', $storeId)->delete();
-        // GoodsImage::where('store_id', $storeId)->delete();
-        // GoodsSpecRel::where('store_id', $storeId)->delete();
-        // GoodsModel::where('store_id', $storeId)->delete();
-        $page = 1;
-        while (TRUE) {
-            //echo $page.PHP_EOL;
-            $goods_list = GoodsModel::where('store_id', $storeId)
-                        ->where('channel','<>', 'zy')
-                        ->field('goods_id')
-                        ->order("goods_id desc")
-                        ->page($page)
-                        ->limit(2000)
-                        ->select();
-            if ($goods_list->isEmpty()) {
-                break;
-            }
-            $goods_ids = array_column($goods_list->toArray(), "goods_id");
-            // 分批每次导入20条
-            $limit = 200;
-            // 根据商品总数量计算需要的队列任务数量
-            $jobCount = \count($goods_ids) / $limit;
-            // 逐次发布队列任务
-            for ($i = 0; $i < $jobCount; $i++) {
-                $data = array_slice($goods_ids, $i * $limit, $limit);
-                GoodsRealDeleteJob::dispatch([
-                        'list' => $data,
-                    ]);
+        if ($type == "cate") {
+            Category::where('store_id', $storeId)->delete();
+            return $this->renderSuccess();
+        }
+        
+        if ($type == "goods") {
+            $page = 1;
+            while (TRUE) {
+                //echo $page.PHP_EOL;
+                $goods_list = GoodsModel::where('store_id', $storeId)
+                            ->where('channel','<>', 'zy')
+                            ->field('goods_id')
+                            ->order("goods_id desc")
+                            ->page($page)
+                            ->limit(2000)
+                            ->select();
+                if ($goods_list->isEmpty()) {
+                    break;
+                }
+                $goods_ids = array_column($goods_list->toArray(), "goods_id");
+                // 分批每次导入20条
+                $limit = 200;
+                // 根据商品总数量计算需要的队列任务数量
+                $jobCount = \count($goods_ids) / $limit;
+                // 逐次发布队列任务
+                for ($i = 0; $i < $jobCount; $i++) {
+                    $data = array_slice($goods_ids, $i * $limit, $limit);
+                    GoodsRealDeleteJob::dispatch([
+                            'list' => $data,
+                        ]);
+                    
+                }
+
+                //删除商品sku
+                GoodsSku::whereIn('goods_id', $goods_ids)->delete();
+                //删除商品图片
+                GoodsImage::whereIn('goods_id', $goods_ids)->delete();
+                //删除商品规格
+                GoodsSpecRel::whereIn('goods_id', $goods_ids)->delete();
                 
+                $page++;
             }
-
-            //删除商品sku
-            GoodsSku::whereIn('goods_id', $goods_ids)->delete();
-            //删除商品图片
-            GoodsImage::whereIn('goods_id', $goods_ids)->delete();
-            //删除商品规格
-            GoodsSpecRel::whereIn('goods_id', $goods_ids)->delete();
-            
-            $page++;
+            //删除商品
+            GoodsModel::where('store_id', $storeId)->where('channel','<>', 'zy')->delete();
         }
-        //删除商品
-        GoodsModel::where('store_id', $storeId)->where('channel','<>', 'zy')->delete();
+        
         return $this->renderSuccess();
     }
 
diff --git a/app/store/controller/Goods.php b/app/store/controller/Goods.php
index 80c38775..5649f6dc 100644
--- a/app/store/controller/Goods.php
+++ b/app/store/controller/Goods.php
@@ -167,6 +167,7 @@ class Goods extends Controller
         // print_r($params);
         // print_r($model->toArray());
         // exit();
+        $params['data_type'] = $model->data_type;
         // 更新记录
         if ($model->edit($params)) {
             return $this->renderSuccess('更新成功');
diff --git a/app/store/model/Goods.php b/app/store/model/Goods.php
index d05df1a6..4b5e5238 100644
--- a/app/store/model/Goods.php
+++ b/app/store/model/Goods.php
@@ -114,7 +114,7 @@ class Goods extends GoodsModel
         $data = $this->createData($data);
         // 事务处理
         $this->transaction(function () use ($data) {
-            $data['data_type'] = $data['data_type'] ?? 1;
+            $data['data_type'] = 1;
             // 添加商品
             $this->save($data);
             // 新增商品与分类关联
@@ -142,7 +142,6 @@ class Goods extends GoodsModel
      */
     public function edit(array $data, $goodsModel = null): bool
     {
-        
 
         // 创建商品数据
         $data = $this->createData($data);
@@ -335,7 +334,7 @@ class Goods extends GoodsModel
             'line_price' => $data['line_price'] ?? 0,
             'content' => $data['content'] ?? '',
             'newSpecList' => [],
-            'data_type' => 1,//数据类型
+            //'data_type' => 1,//数据类型
             'newSkuList' => [],
             'store_id' => self::$storeId,
             //'sale_areas' => $arr ? implode("、", $arr) : "",
@@ -412,7 +411,9 @@ class Goods extends GoodsModel
             }
             $data['imagesIds'] = $images;
         }
-        
+        if ($data['categoryIds']) {
+            $data['cate_status'] = 1;
+        }
          
         return $data;
     }