64 lines
1.7 KiB
PHP
64 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* Author: ykxiao
|
|
* Date: 2025/7/10
|
|
* Time: 下午9:10
|
|
* 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\Repository\Company;
|
|
|
|
use App\Dao\Company\CompanyModulesDao;
|
|
use App\Repository\AbstractRepository;
|
|
|
|
class CompanyModulesRepository extends AbstractRepository
|
|
{
|
|
public function __construct(CompanyModulesDao $dao)
|
|
{
|
|
$this->dao = $dao;
|
|
}
|
|
|
|
/**
|
|
* 公司功能模块列表.
|
|
*/
|
|
public function codeList(int $company_id): array
|
|
{
|
|
$query = $this->dao->builder()->where('company_id', '=', $company_id);
|
|
$role_permission_code = [];
|
|
$data_permission_code = [];
|
|
if (!$query->exists()) {
|
|
return compact('role_permission_code', 'data_permission_code');
|
|
}
|
|
$info = $query->first(['module_code', 'module_data_permissions'])->toArray();
|
|
$role_permission_code = $info['module_code'];
|
|
$data_permission_code = $info['module_data_permissions'];
|
|
return compact('role_permission_code', 'data_permission_code');
|
|
}
|
|
|
|
/**
|
|
* 公司功能模块分配.
|
|
* @param array $data
|
|
* @return array
|
|
*/
|
|
public function addModule(array $data): array
|
|
{
|
|
$query = $this->dao->builder();
|
|
|
|
$params = [];
|
|
$params['company_id'] = $data['company_id'];
|
|
$params['module_code'] = $data['menu_permission'];
|
|
$params['module_data_permissions'] = mergePermissions($data['data_permission'] ?? []);
|
|
$query->updateOrCreate([
|
|
'company_id' => $params['company_id'],
|
|
], $params);
|
|
|
|
return $params;
|
|
}
|
|
} |