diff --git a/beike/Admin/Http/Controllers/ProductController.php b/beike/Admin/Http/Controllers/ProductController.php index d7bca5ba..6292e88f 100644 --- a/beike/Admin/Http/Controllers/ProductController.php +++ b/beike/Admin/Http/Controllers/ProductController.php @@ -169,4 +169,9 @@ class ProductController extends Controller return json_success(trans('common.deleted_success'), []); } + + public function trashedClear() + { + ProductRepo::forceDeleteTrashed(); + } } diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 64bdfdfa..23ea4324 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -140,6 +140,7 @@ Route::prefix($adminName) // 商品 Route::middleware('can:products_restore')->put('products/restore', [Controllers\ProductController::class, 'restore']); Route::middleware('can:products_trashed')->get('products/trashed', [Controllers\ProductController::class, 'trashed'])->name('products.trashed'); + Route::middleware('can:products_trashed')->post('products/trashed/clear', [Controllers\ProductController::class, 'trashedClear'])->name('products.trashed.clear'); Route::middleware('can:products_show')->get('products/{id}/name', [Controllers\ProductController::class, 'name'])->name('products.name'); Route::middleware('can:products_index')->get('products/names', [Controllers\ProductController::class, 'getNames'])->name('products.names'); Route::middleware('can:products_index')->get('products/autocomplete', [Controllers\ProductController::class, 'autocomplete'])->name('products.autocomplete'); diff --git a/beike/Repositories/ProductRepo.php b/beike/Repositories/ProductRepo.php index 1821ddf5..adce18e4 100644 --- a/beike/Repositories/ProductRepo.php +++ b/beike/Repositories/ProductRepo.php @@ -239,4 +239,9 @@ class ProductRepo { Product::query()->whereIn('id', $ids)->update(['active' => $status]); } + + public static function forceDeleteTrashed() + { + Product::onlyTrashed()->forceDelete(); + } }