后台批量上下架和批量删除

This commit is contained in:
TL 2022-08-23 14:37:26 +08:00
parent a1ee7cda6e
commit 419f29debe
3 changed files with 32 additions and 0 deletions

View File

@ -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'), []);
}
}

View File

@ -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');
// 区域组

View File

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