diff --git a/beike/Admin/Http/Controllers/ProductController.php b/beike/Admin/Http/Controllers/ProductController.php index 4dc86c13..c3af1fb0 100644 --- a/beike/Admin/Http/Controllers/ProductController.php +++ b/beike/Admin/Http/Controllers/ProductController.php @@ -99,4 +99,19 @@ class ProductController extends Controller return json_success('获取成功', $name); } + + + /** + * 根据产品ID批量获取产品名称 + * + * @param Request $request + * @return array + */ + public function getNames(Request $request): array + { + $productIds = explode(',',$request->get('product_ids')); + $name = ProductRepo::getNames($productIds); + + return json_success('获取成功', $name); + } } diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index bb9947a4..7e9a2709 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -41,6 +41,7 @@ Route::prefix($adminName) Route::put('products/restore', [Controllers\ProductController::class, 'restore']); Route::get('categories/{id}/name', [Controllers\CategoryController::class, 'name'])->name('categories.name'); Route::get('products/{id}/name', [Controllers\ProductController::class, 'name'])->name('products.name'); + Route::get('products/names', [Controllers\ProductController::class, 'getNames'])->name('products.names'); Route::resource('products', Controllers\ProductController::class); Route::resource('currencies', Controllers\CurrencyController::class); diff --git a/beike/Repositories/ProductRepo.php b/beike/Repositories/ProductRepo.php index d8063ab0..bd877d2a 100644 --- a/beike/Repositories/ProductRepo.php +++ b/beike/Repositories/ProductRepo.php @@ -46,7 +46,7 @@ class ProductRepo } - public static function getBuilder($data = []) :Builder + public static function getBuilder($data = []): Builder { $builder = Product::query()->with('description', 'skus', 'master_sku'); @@ -124,4 +124,29 @@ class ProductRepo } return ''; } + + + /** + * @param $productIds + * @return array + */ + public static function getNames($productIds): array + { + if (empty($productIds)) { + return []; + } + $products = Product::query() + ->with(['description']) + ->whereIn('id', $productIds) + ->get(); + + $items = []; + foreach ($products as $product) { + $items[] = [ + 'id' => $product->id, + 'name' => $product->description->name ?? '' + ]; + } + return $items; + } }