get product names

This commit is contained in:
Edward Yang 2022-07-18 16:56:19 +08:00
parent 75c85b7832
commit 532b286b8c
3 changed files with 42 additions and 1 deletions

View File

@ -99,4 +99,19 @@ class ProductController extends Controller
return json_success('获取成功', $name); 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);
}
} }

View File

@ -41,6 +41,7 @@ Route::prefix($adminName)
Route::put('products/restore', [Controllers\ProductController::class, 'restore']); Route::put('products/restore', [Controllers\ProductController::class, 'restore']);
Route::get('categories/{id}/name', [Controllers\CategoryController::class, 'name'])->name('categories.name'); 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/{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('products', Controllers\ProductController::class);
Route::resource('currencies', Controllers\CurrencyController::class); Route::resource('currencies', Controllers\CurrencyController::class);

View File

@ -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'); $builder = Product::query()->with('description', 'skus', 'master_sku');
@ -124,4 +124,29 @@ class ProductRepo
} }
return ''; 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;
}
} }