study-api-v2/app/Http/Controllers/Admin/System/SystemUserRoleController.php
hx a621de91ff feat(system): 添加系统菜单、角色菜单关联和用户角色关联功能- 新增系统菜单模型、控制器、请求验证和业务逻辑
- 新增角色菜单关联模型、控制器、请求验证和业务逻辑
- 新增用户角色关联模型、控制器、请求验证和业务逻辑
- 更新系统角色模型,增加与用户和菜单的关联
- 更新用户模型,增加与角色的关联和相关方法
- 在路由文件中添加新功能的路由定义
2025-07-15 01:14:15 +08:00

135 lines
3.9 KiB
PHP

<?php
namespace App\Http\Controllers\Admin\System;
use App\Http\Controllers\BaseController;
use App\Http\Requests\Admin\System\SystemUserRoleRequest;
use App\Services\System\SystemUserRoleService;
use Illuminate\Http\JsonResponse;
/**
* 系统用户角色关联控制器
*/
class SystemUserRoleController extends BaseController
{
public function __construct(
private SystemUserRoleService $systemUserRoleService
) {}
/**
* 获取用户角色关联列表
*/
public function list(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->getList($params);
return $this->SuccessPage($result->items(), $result->total());
}
/**
* 获取用户的角色列表
*/
public function getUserRoles(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->getUserRoles($params['user_id']);
return $this->Success($result);
}
/**
* 获取角色的用户列表
*/
public function getRoleUsers(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->getRoleUsers($params['role_id']);
return $this->Success($result);
}
/**
* 获取用户的角色详情
*/
public function getUserRoleDetails(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->getUserRoleDetails($params['user_id']);
return $this->Success($result);
}
/**
* 设置用户角色
*/
public function setUserRoles(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->setUserRoles(
$params['user_id'],
$params['role_ids'] ?? []
);
return $this->Success($result);
}
/**
* 为角色分配用户
*/
public function setRoleUsers(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->setRoleUsers(
$params['role_id'],
$params['user_ids'] ?? []
);
return $this->Success($result);
}
/**
* 批量设置用户角色
*/
public function batchSetUserRoles(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->batchSetUserRoles($params['user_role_data']);
return $this->Success($result);
}
/**
* 检查用户是否拥有角色
*/
public function hasRole(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->hasRole($params['user_id'], $params['role_id']);
return $this->Success(['has_role' => $result]);
}
/**
* 检查用户是否拥有角色编码
*/
public function hasRoleCode(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->systemUserRoleService->hasRoleCode($params['user_id'], $params['role_code']);
return $this->Success(['has_role' => $result]);
}
/**
* 清除用户的所有角色
*/
public function clearUserRoles(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$this->systemUserRoleService->clearUserRoles($params['user_id']);
return $this->Success();
}
/**
* 清除角色的所有用户关联
*/
public function clearRoleUsers(SystemUserRoleRequest $request): JsonResponse
{
$params = $request->validated();
$this->systemUserRoleService->clearRoleUsers($params['role_id']);
return $this->Success();
}
}