This commit is contained in:
@ -17,6 +17,7 @@ namespace App\Controller;
|
||||
|
||||
use App\Repository\Company\CompanyRepository;
|
||||
use App\Request\CompanyRequest;
|
||||
use Exception;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\HttpMessage\Server\Response;
|
||||
use Hyperf\Validation\Annotation\Scene;
|
||||
@ -30,6 +31,7 @@ class CompanyController extends AbstractController
|
||||
* 添加公司.
|
||||
* @param CompanyRequest $request
|
||||
* @return Response
|
||||
* @throws Exception
|
||||
*/
|
||||
#[Scene(scene: 'addCompany', argument: 'request')]
|
||||
public function addCompany(CompanyRequest $request): Response
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
39
app/Controller/SystemController.php
Normal file
39
app/Controller/SystemController.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* Author: ykxiao
|
||||
* Date: 2025/7/11
|
||||
* Time: 下午7:05
|
||||
* Description:
|
||||
*
|
||||
* (c) ykxiao <yk_9001@hotmail.com>
|
||||
*
|
||||
* This source file is subject to the MIT license that is bundled
|
||||
* with this source code in the file LICENSE.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Service\PermissionService;
|
||||
use Exception;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\HttpMessage\Server\Response;
|
||||
|
||||
class SystemController extends AbstractController
|
||||
{
|
||||
#[Inject]
|
||||
protected PermissionService $permissionService;
|
||||
|
||||
/**
|
||||
* 菜单列表
|
||||
* @throws Exception
|
||||
*/
|
||||
public function menuList(): Response
|
||||
{
|
||||
$user = $this->user();
|
||||
$menu = $this->permissionService->getMenuByUserType($user);
|
||||
|
||||
return $this->apiResponse->success($menu);
|
||||
}
|
||||
}
|
@ -60,6 +60,26 @@ class UserController extends AbstractController
|
||||
return $this->apiResponse->success($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户登出.
|
||||
* @param UserRequest $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Scene(scene: 'userLogout', argument: 'request')]
|
||||
public function userLogout(UserRequest $request): Response
|
||||
{
|
||||
$user = $this->user();
|
||||
$token = $this->token();
|
||||
|
||||
$this->userAuthService->userLogout([
|
||||
'token' => $token,
|
||||
'refresh_token' => $request->input('refresh_token')
|
||||
]);
|
||||
|
||||
$this->opLogs('[PC端用户退出]' . $user['name']);
|
||||
return $this->apiResponse->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加用户.
|
||||
* @param UserRequest $request
|
||||
@ -88,8 +108,7 @@ class UserController extends AbstractController
|
||||
public function getUserList(UserRequest $request): Response
|
||||
{
|
||||
$data = [
|
||||
'companyInfo' => $this->company(),
|
||||
'userInfo' => UserContext::getCurrentUser(),
|
||||
'token' => $this->token(),
|
||||
'getPage' => $this->getPage(),
|
||||
'params' => $request->all()
|
||||
];
|
||||
|
Reference in New Issue
Block a user