增加基础配置
Some checks failed
Build Docker / build (push) Has been cancelled

This commit is contained in:
2025-07-12 11:59:33 +08:00
parent fb50096e66
commit 8a3ab17b25
44 changed files with 1599 additions and 66 deletions

View File

@ -15,8 +15,13 @@ declare(strict_types=1);
namespace App\Controller;
use App\JsonRpc\UserAuthServiceInterface;
use App\Constants\ActiveStatusConst;
use App\JsonRpc\RoleServiceInterface;
use App\Repository\Company\CompanyModulesRepository;
use App\Repository\Company\FirstCompanyRepository;
use App\Request\RoleRequest;
use App\Service\PermissionService;
use Hyperf\Config\Annotation\Value;
use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpMessage\Server\Response;
use Hyperf\Validation\Annotation\Scene;
@ -24,7 +29,19 @@ use Hyperf\Validation\Annotation\Scene;
class RoleController extends AbstractController
{
#[Inject]
protected UserAuthServiceInterface $userAuthServiceInterface;
protected RoleServiceInterface $roleServiceInterface;
#[Inject]
protected PermissionService $permissionService;
#[Inject]
protected CompanyModulesRepository $companyModulesRepository;
#[Inject]
protected FirstCompanyRepository $firstCompanyRepository;
#[Value('menu.data_permissions')]
protected array $menuDataPermissions;
/**
* 添加角色.
@ -37,15 +54,172 @@ class RoleController extends AbstractController
$params = $request->all();
$data = [
'companyInfo' => $this->company(),
'token' => $this->token(),
'id' => $params['id'] ?? null,
'role_name' => $params['role_name'],
'active_status' => $params['active_status'],
'sort' => $params['sort'],
];
// 添加角色.
$this->userAuthServiceInterface->addRole($data);
$this->roleServiceInterface->addRole($data);
return $this->apiResponse->success();
}
/**
* 角色列表.
* @return Response
*/
public function roleList(): Response
{
$params = $this->request->all();
$data = [
'token' => $this->token(),
'getPage' => $this->getPage(),
'params' => $params
];
$roleList = $this->roleServiceInterface->roleList($data);
return $this->apiResponse->success($roleList);
}
/**
* 禁用角色.
* @param RoleRequest $request
* @return Response
*/
#[Scene(scene: 'disableRoles', argument: 'request')]
public function disableRoles(RoleRequest $request): Response
{
$params = $request->all();
$data = [
'token' => $this->token(),
'params' => $params,
];
$rpcResult = $this->roleServiceInterface->disableRoles($data);
$status = $params['status'] ?
ActiveStatusConst::getMessage(ActiveStatusConst::ACTIVE_ENABLE) :
ActiveStatusConst::getMessage(ActiveStatusConst::ACTIVE_DISABLE);
$res = $rpcResult['result'] ?? [];
$this->opLogs('[' . $status . '角色]名称 ' . $res['role_name'] ?? '');
return $this->apiResponse->success($rpcResult);
}
/**
* 删除角色.
* @param RoleRequest $request
* @return Response
*/
#[Scene(scene: 'delRoles', argument: 'request')]
public function delRoles(RoleRequest $request): Response
{
$params = $request->all();
$data = [
'token' => $this->token(),
'params' => $params,
];
$rpcResult = $this->roleServiceInterface->deletedRoles($data);
$res = $rpcResult['result'] ?? '';
$this->opLogs('[删除角色]名称 ' . $res);
return $this->apiResponse->success($rpcResult);
}
/**
* 分配用户角色.
* @param RoleRequest $request
* @return Response
*/
#[Scene(scene: 'assignUserRoles', argument: 'request')]
public function assignUserRoles(RoleRequest $request): Response
{
$params = $request->all();
$params['menu_data_permission'] = $this->menuDataPermissions;
$data = [
'token' => $this->token(),
'params' => $params,
];
$rpcResult = $this->roleServiceInterface->assignUserRoles($data);
$res = $rpcResult['result'] ?? '';
$this->opLogs('[角色管理] 分配用户角色 ' . $res);
return $this->apiResponse->success();
}
/**
* 角色授权
*/
#[Scene(scene: 'assignRolePermissions', argument: 'request')]
public function assignRolePermissions(RoleRequest $request): Response
{
$params = $request->all();
$data = [
'token' => $this->token(),
'params' => $params
];
$rpcResult = $this->roleServiceInterface->assignRolePermissions($data);
$res = $rpcResult['result'] ?? [];
$this->opLogs('[角色授权]' . $res['role_name'] . ': 权限集 ' . implode(',', $res['actions']));
return $this->apiResponse->success();
}
/**
* 角色权限列表
* @param RoleRequest $request
* @return Response
*/
#[Scene(scene: 'roleChecked', argument: 'request')]
public function roleChecked(RoleRequest $request): Response
{
$params = [
'token' => $this->token(),
'params' => $request->all()
];
$rpcResult = $this->roleServiceInterface->getRolePermissionsByRoleId($params);
$res = $rpcResult['result'] ?? [];
$menu = $this->permissionService->checkMenu($res);
return $this->apiResponse->success($menu);
}
/**
* 公司功能模块授权.
* @param RoleRequest $request
* @return Response
*/
#[Scene(scene: 'addCompanyModule', argument: 'request')]
public function addCompanyModule(RoleRequest $request): Response
{
$params = $request->all();
$companyInfo = $this->firstCompanyRepository->getCompanyById($params['company_id']);
$res = $this->companyModulesRepository->addModule($params);
$menuName = array_column($res['module_data_permissions'] ?? [], 'title');
$this->opLogs('[授权公司功能模块]' . $companyInfo['full_name'] . ' : ' . implode(',', $menuName));
return $this->apiResponse->success();
}
/**
* 公司功能模块列表.
* @param RoleRequest $request
* @return Response
*/
#[Scene(scene: 'companyChecked', argument: 'request')]
public function companyChecked(RoleRequest $request): Response
{
$companyId = $request->input('company_id', 0);
$moduleList = $this->companyModulesRepository->codeList($companyId);
$menu = $this->permissionService->checkMenu($moduleList);
return $this->apiResponse->success($menu);
}
}