- 新增角色菜单关联模型、控制器、请求验证和业务逻辑 - 新增用户角色关联模型、控制器、请求验证和业务逻辑 - 更新系统角色模型,增加与用户和菜单的关联 - 更新用户模型,增加与角色的关联和相关方法 - 在路由文件中添加新功能的路由定义
102 lines
2.9 KiB
PHP
102 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin\System;
|
|
|
|
use App\Http\Controllers\BaseController;
|
|
use App\Http\Requests\Admin\System\SystemRoleMenuRequest;
|
|
use App\Services\System\SystemRoleMenuService;
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
/**
|
|
* 系统角色菜单关联控制器
|
|
*/
|
|
class SystemRoleMenuController extends BaseController
|
|
{
|
|
public function __construct(
|
|
private SystemRoleMenuService $systemRoleMenuService
|
|
) {}
|
|
|
|
/**
|
|
* 获取角色菜单关联列表
|
|
*/
|
|
public function list(SystemRoleMenuRequest $request): JsonResponse
|
|
{
|
|
$params = $request->validated();
|
|
$result = $this->systemRoleMenuService->getList($params);
|
|
|
|
return $this->SuccessPage($result->items(), $result->total());
|
|
}
|
|
|
|
/**
|
|
* 获取角色的菜单列表
|
|
*/
|
|
public function getRoleMenus(SystemRoleMenuRequest $request): JsonResponse
|
|
{
|
|
$params = $request->validated();
|
|
$result = $this->systemRoleMenuService->getRoleMenus($params['role_id']);
|
|
return $this->Success($result);
|
|
}
|
|
|
|
/**
|
|
* 获取菜单的角色列表
|
|
*/
|
|
public function getMenuRoles(SystemRoleMenuRequest $request): JsonResponse
|
|
{
|
|
$params = $request->validated();
|
|
$result = $this->systemRoleMenuService->getMenuRoles($params['menu_id']);
|
|
return $this->Success($result);
|
|
}
|
|
|
|
/**
|
|
* 获取角色的菜单树
|
|
*/
|
|
public function getRoleMenuTree(SystemRoleMenuRequest $request): JsonResponse
|
|
{
|
|
$params = $request->validated();
|
|
$result = $this->systemRoleMenuService->getRoleMenuTree($params['role_id']);
|
|
return $this->Success($result);
|
|
}
|
|
|
|
/**
|
|
* 设置角色菜单权限
|
|
*/
|
|
public function setRoleMenus(SystemRoleMenuRequest $request): JsonResponse
|
|
{
|
|
$params = $request->validated();
|
|
$result = $this->systemRoleMenuService->setRoleMenus(
|
|
$params['role_id'],
|
|
$params['menu_ids'] ?? []
|
|
);
|
|
return $this->Success($result);
|
|
}
|
|
|
|
/**
|
|
* 批量设置角色菜单权限
|
|
*/
|
|
public function batchSetRoleMenus(SystemRoleMenuRequest $request): JsonResponse
|
|
{
|
|
$params = $request->validated();
|
|
$result = $this->systemRoleMenuService->batchSetRoleMenus($params['role_menu_data']);
|
|
return $this->Success($result);
|
|
}
|
|
|
|
/**
|
|
* 清除角色的所有菜单权限
|
|
*/
|
|
public function clearRoleMenus(SystemRoleMenuRequest $request): JsonResponse
|
|
{
|
|
$params = $request->validated();
|
|
$this->systemRoleMenuService->clearRoleMenus($params['role_id']);
|
|
return $this->Success();
|
|
}
|
|
|
|
/**
|
|
* 清除菜单的所有角色关联
|
|
*/
|
|
public function clearMenuRoles(SystemRoleMenuRequest $request): JsonResponse
|
|
{
|
|
$params = $request->validated();
|
|
$this->systemRoleMenuService->clearMenuRoles($params['menu_id']);
|
|
return $this->Success();
|
|
}
|
|
}
|