- 新增角色菜单关联模型、控制器、请求验证和业务逻辑 - 新增用户角色关联模型、控制器、请求验证和业务逻辑 - 更新系统角色模型,增加与用户和菜单的关联 - 更新用户模型,增加与角色的关联和相关方法 - 在路由文件中添加新功能的路由定义
135 lines
3.9 KiB
PHP
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();
|
|
}
|
|
}
|