113 lines
2.7 KiB
PHP
113 lines
2.7 KiB
PHP
<?php
|
|
/**
|
|
* CategoryController.php
|
|
*
|
|
* @copyright 2023 beikeshop.com - All Rights Reserved
|
|
* @link https://beikeshop.com
|
|
* @author Edward Yang <yangjin@guangda.work>
|
|
* @created 2023-04-20 17:00:40
|
|
* @modified 2023-04-20 17:00:40
|
|
*/
|
|
|
|
namespace Beike\API\Controllers\Admin;
|
|
|
|
use Beike\Admin\Http\Requests\CategoryRequest;
|
|
use Beike\Admin\Http\Resources\CategoryResource;
|
|
use Beike\Admin\Services\CategoryService;
|
|
use Beike\Models\Category;
|
|
use Beike\Repositories\CategoryRepo;
|
|
use Illuminate\Http\Request;
|
|
|
|
class CategoryController
|
|
{
|
|
/**
|
|
* 商品分类列表
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function index()
|
|
{
|
|
$categories = CategoryRepo::getAdminList();
|
|
$data = [
|
|
'categories' => CategoryResource::collection($categories),
|
|
];
|
|
|
|
return hook_filter('admin_api.category.index.data', $data);
|
|
}
|
|
|
|
/**
|
|
* 单个商品分类
|
|
*
|
|
* @param Request $request
|
|
* @param Category $category
|
|
* @return mixed
|
|
*/
|
|
public function show(Request $request, Category $category)
|
|
{
|
|
if (! $category->active) {
|
|
return [];
|
|
}
|
|
$category->load('description');
|
|
|
|
return hook_filter('admin_api.category.show.data', $category);
|
|
}
|
|
|
|
/**
|
|
* 保存商品分类
|
|
*
|
|
* @param CategoryRequest $request
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function store(CategoryRequest $request)
|
|
{
|
|
$requestData = $request->all();
|
|
$category = (new CategoryService())->createOrUpdate($requestData, null);
|
|
$data = [
|
|
'category' => $category,
|
|
'request_data' => $requestData,
|
|
];
|
|
|
|
hook_action('admin_api.category.save.after', $data);
|
|
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* 更新产品分类
|
|
*
|
|
* @param CategoryRequest $request
|
|
* @param Category $category
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function update(CategoryRequest $request, Category $category)
|
|
{
|
|
$requestData = $request->all();
|
|
$category = (new CategoryService())->createOrUpdate($requestData, $category);
|
|
$data = [
|
|
'category' => $category,
|
|
'request_data' => $requestData,
|
|
];
|
|
|
|
hook_action('admin_api.category.save.after', $data);
|
|
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* 删除分类
|
|
* @param Request $request
|
|
* @param Category $category
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function destroy(Request $request, Category $category): array
|
|
{
|
|
CategoryRepo::delete($category);
|
|
hook_action('admin.category.destroy.after', $category);
|
|
|
|
return json_success(trans('common.deleted_success'));
|
|
}
|
|
}
|