study-api-v2/app/Http/Controllers/Admin/System/SystemMenuController.php

108 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers\Admin\System;
use App\Http\Controllers\BaseController;
use App\Http\Requests\Admin\System\SystemMenuRequest;
use App\Services\System\SystemMenuService;
use Illuminate\Http\JsonResponse;
/**
* 系统菜单控制器
*/
class SystemMenuController extends BaseController
{
public function __construct(
private SystemMenuService $systemMenuService
) {}
/**
* 获取系统菜单列表
*/
public function list(): JsonResponse
{
$user = request()->user();
$result = $this->systemMenuService->getMenuTreeByPermission($user, true, false);
return $this->Success($result);
}
/**
* 获取简单列表
*/
public function simpleList(): JsonResponse
{
$result = $this->systemMenuService->getSimpleList();
return $this->Success($result);
}
/**
* 获取树形菜单
*/
public function tree(): JsonResponse
{
$user = request()->user();
$result = $this->systemMenuService->getMenuTreeByPermission($user, true);
return $this->Success($result);
}
/**
* 获取父级菜单列表
*/
public function parentMenus(): JsonResponse
{
$result = $this->systemMenuService->getParentMenus();
return $this->Success($result);
}
/**
* 获取系统菜单详情
*/
public function detail(SystemMenuRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemMenuService->detail($params['id']);
return $this->Success($result);
}
/**
* 创建系统菜单
*/
public function create(SystemMenuRequest $request): JsonResponse
{
$data = $request->validated();
$result = $this->systemMenuService->create($data);
return $this->Success($result);
}
/**
* 更新系统菜单
*/
public function update(SystemMenuRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemMenuService->update($params['id'], $params);
return $this->Success($result);
}
/**
* 删除系统菜单
*/
public function delete(SystemMenuRequest $request): JsonResponse
{
$params = $request->validated();
$this->systemMenuService->delete($params['id']);
return $this->Success();
}
/**
* 批量删除系统菜单
*/
public function batchDelete(SystemMenuRequest $request): JsonResponse
{
$params = $request->validated();
$this->systemMenuService->batchDelete($params['ids']);
return $this->Success();
}
}