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; }