This commit is contained in:
104
app/Service/RelatedInfo.php
Normal file
104
app/Service/RelatedInfo.php
Normal file
@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/**
|
||||
* Author: ykxiao
|
||||
* Date: 2025/6/8
|
||||
* Time: 上午11:01
|
||||
* 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\Service;
|
||||
|
||||
use App\JsonRpc\RoleServiceInterface;
|
||||
use App\Repository\Company\FirstCompanyRepository;
|
||||
use Hyperf\Collection\Collection;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use function Hyperf\Collection\collect;
|
||||
|
||||
class RelatedInfo
|
||||
{
|
||||
#[Inject]
|
||||
protected RoleServiceInterface $roleServiceInterface;
|
||||
|
||||
#[Inject]
|
||||
protected FirstCompanyRepository $firstCompanyRepository;
|
||||
|
||||
/**
|
||||
* 用户角色关联.
|
||||
* @param int $uid 用户ID
|
||||
* @return array 用户角色关联信息
|
||||
*/
|
||||
public function userRoles(int $uid): array
|
||||
{
|
||||
$data = [
|
||||
'user_id' => $uid,
|
||||
];
|
||||
|
||||
$rpcResult = $this->roleServiceInterface->getUserRoleInfo($data);
|
||||
return $rpcResult['result'] ?? [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 公司信息关联.
|
||||
* @param string $companyName 公司名称
|
||||
* @return array|null 公司信息关联信息
|
||||
*/
|
||||
public function companyInfo(string $companyName): ?array
|
||||
{
|
||||
return $this->firstCompanyRepository->getCompanyByFullName($companyName, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 公司信息关联.
|
||||
* @param int $companyId
|
||||
* @return array
|
||||
*/
|
||||
public function companyInfoById(int $companyId): array
|
||||
{
|
||||
return $this->firstCompanyRepository->getCompanyById($companyId, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户角色权限.
|
||||
* @param int $uid 用户ID
|
||||
* @return Collection 角色权限集合
|
||||
*/
|
||||
public function getRolePermissions(int $uid): Collection
|
||||
{
|
||||
// 获取用户角色表中的 role_ids 数组
|
||||
$roleIds = static::userRoles($uid)['role_ids_info'] ?? [];
|
||||
$userRolesIds = array_keys($roleIds);
|
||||
|
||||
$data = [
|
||||
'role_ids' => $userRolesIds
|
||||
];
|
||||
// 通过数组中的 role_id 查找对应的角色权限
|
||||
|
||||
$rpcResult = $this->roleServiceInterface->getRolePermissionSetByRoleIds($data);
|
||||
$res = $rpcResult['result'] ?? [];
|
||||
|
||||
return collect($res);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户数据权限关联.
|
||||
* @param int $uid 用户ID
|
||||
* @return array 数据权限信息
|
||||
* @return array
|
||||
*/
|
||||
public function dataPermissions(int $uid): array
|
||||
{
|
||||
$data = [
|
||||
'user_id' => $uid,
|
||||
];
|
||||
|
||||
$rpcResult = $this->roleServiceInterface->getUserDataPermissions($data);
|
||||
return $rpcResult['result'] ?? [];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user