diff --git a/beike/Admin/Http/Controllers/ProductController.php b/beike/Admin/Http/Controllers/ProductController.php index 282c8492..f113348e 100644 --- a/beike/Admin/Http/Controllers/ProductController.php +++ b/beike/Admin/Http/Controllers/ProductController.php @@ -151,4 +151,19 @@ class ProductController extends Controller return json_success(trans('common.get_success'), $products); } + + public function updateStatus(Request $request) + { + ProductRepo::updateStatusByIds($request->get('ids')); + + return json_success(trans('common.updated_success'), []); + } + + + public function destroyByIds(Request $request) + { + ProductRepo::DeleteByIds($request->get('ids')); + + return json_success(trans('common.deleted_success'), []); + } } diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 4b3d99e7..4e98ce52 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -149,6 +149,8 @@ Route::prefix($adminName) Route::middleware('can:products_update')->get('products/{product}/edit', [Controllers\ProductController::class, 'edit'])->name('products.edit'); Route::middleware('can:products_update')->put('products/{product}', [Controllers\ProductController::class, 'update'])->name('products.update'); Route::middleware('can:products_delete')->delete('products/{product}', [Controllers\ProductController::class, 'destroy'])->name('products.destroy'); + Route::middleware('can:products_update')->post('products/status', [Controllers\ProductController::class, 'updateStatus'])->name('products.update_status'); + Route::middleware('can:products_delete')->post('products/delete', [Controllers\ProductController::class, 'destroyByIds'])->name('products.batch_delete'); // 区域组 diff --git a/beike/Repositories/ProductRepo.php b/beike/Repositories/ProductRepo.php index 30a1f2f5..d5253cca 100644 --- a/beike/Repositories/ProductRepo.php +++ b/beike/Repositories/ProductRepo.php @@ -12,6 +12,9 @@ namespace Beike\Repositories; use Beike\Models\Product; +use Beike\Models\ProductCategory; +use Beike\Models\ProductDescription; +use Beike\Models\ProductSku; use Illuminate\Database\Eloquent\Builder; use Beike\Shop\Http\Resources\ProductSimple; use Illuminate\Database\Eloquent\Collection; @@ -233,4 +236,16 @@ class ProductRepo ->get(); return $products; } + public static function DeleteByIds($ids, $price) + { + Product::query()->whereIn('id', $ids)->delete(); + ProductSku::query()->whereIn('product_id', $ids)->delete(); + ProductDescription::query()->whereIn('product_id', $ids)->delete(); + ProductCategory::query()->whereIn('product_id', $ids)->delete(); + } + + public static function updateStatusByIds($ids, $status) + { + Product::query()->whereIn('id', $ids)->update('status', $status); + } }