Optimize brand.

This commit is contained in:
Edward Yang 2023-03-16 09:38:19 +08:00
parent 024a2190f2
commit 7e934151f0
3 changed files with 32 additions and 11 deletions

View File

@ -11,6 +11,7 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Models\Brand;
use Beike\Repositories\BrandRepo; use Beike\Repositories\BrandRepo;
use Exception; use Exception;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@ -57,30 +58,43 @@ class BrandController extends Controller
} }
/** /**
* @param Request $request
* @param Brand $brand
* @return array
* @throws Exception * @throws Exception
*/ */
public function update(Request $request, int $id): array public function update(Request $request, Brand $brand): array
{ {
$requestData = $request->all(); $requestData = $request->all();
$data = [ $data = [
'brand_id' => $id, 'brand_id' => $brand,
'request_data' => $requestData, 'request_data' => $requestData,
]; ];
hook_action('admin.brand.update.before', $data); hook_action('admin.brand.update.before', $data);
$brand = BrandRepo::update($id, $requestData); $brand = BrandRepo::update($brand, $requestData);
hook_action('admin.brand.update.after', $data); hook_action('admin.brand.update.after', $data);
return json_success(trans('common.updated_success'), $brand); return json_success(trans('common.updated_success'), $brand);
} }
public function destroy(int $brandId): array /**
* @param Request $request
* @param Brand $brand
* @return array
*/
public function destroy(Request $request, Brand $brand): array
{ {
BrandRepo::delete($brandId); hook_action('admin.brand.destroy.before', $brand);
hook_action('admin.brand.destroy.after', $brandId); BrandRepo::delete($brand);
hook_action('admin.brand.destroy.after', $brand);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
/**
* @param Request $request
* @return array
*/
public function autocomplete(Request $request): array public function autocomplete(Request $request): array
{ {
$brands = BrandRepo::autocomplete($request->get('name') ?? '', 0); $brands = BrandRepo::autocomplete($request->get('name') ?? '', 0);
@ -88,6 +102,10 @@ class BrandController extends Controller
return json_success(trans('common.get_success'), $brands); return json_success(trans('common.get_success'), $brands);
} }
/**
* @param int $id
* @return array
*/
public function name(int $id): array public function name(int $id): array
{ {
$name = BrandRepo::getName($id); $name = BrandRepo::getName($id);

View File

@ -44,8 +44,8 @@ Route::prefix($adminName)
Route::middleware('can:brands_show')->get('brands/{id}/name', [Controllers\BrandController::class, 'name'])->name('brands.name'); Route::middleware('can:brands_show')->get('brands/{id}/name', [Controllers\BrandController::class, 'name'])->name('brands.name');
Route::middleware('can:brands_index')->get('brands', [Controllers\BrandController::class, 'index'])->name('brands.index'); Route::middleware('can:brands_index')->get('brands', [Controllers\BrandController::class, 'index'])->name('brands.index');
Route::middleware('can:brands_create')->post('brands', [Controllers\BrandController::class, 'store'])->name('brands.store'); Route::middleware('can:brands_create')->post('brands', [Controllers\BrandController::class, 'store'])->name('brands.store');
Route::middleware('can:brands_update')->put('brands/{id}', [Controllers\BrandController::class, 'update'])->name('brands.update'); Route::middleware('can:brands_update')->put('brands/{brand}', [Controllers\BrandController::class, 'update'])->name('brands.update');
Route::middleware('can:brands_delete')->delete('brands/{id}', [Controllers\BrandController::class, 'destroy'])->name('brands.destroy'); Route::middleware('can:brands_delete')->delete('brands/{brand}', [Controllers\BrandController::class, 'destroy'])->name('brands.destroy');
// 商品分类 // 商品分类
Route::middleware('can:categories_index')->get('categories/autocomplete', [Controllers\CategoryController::class, 'autocomplete'])->name('categories.autocomplete'); Route::middleware('can:categories_index')->get('categories/autocomplete', [Controllers\CategoryController::class, 'autocomplete'])->name('categories.autocomplete');

View File

@ -78,12 +78,15 @@ class BrandRepo
} }
/** /**
* @param $id * @param $brand
* @return void * @return void
*/ */
public static function delete($id) public static function delete($brand)
{ {
$brand = Brand::query()->find($id); if (! $brand instanceof Brand) {
$brand = Brand::query()->find((int) $brand);
}
if ($brand) { if ($brand) {
$brand->delete(); $brand->delete();
} }