* @date 2020-01-24 00:02:37 */ declare(strict_types=1); namespace App\Repositories; use App\Model\PermissionResourceModel; use App\Repositories\Utils\TreeRepository; use Hyperf\Database\Model\Builder; use KZ2\Repositories\Model\Repository; class PermissionResourceRepository extends Repository { public function model() { return PermissionResourceModel::class; } /** * 所有树形数组. * @return array */ public function getAllTree() { $arr = array(); if ($tmp_list = PermissionResourceModel::orderBy('squad', 'ASC')->get()) { $arr_list = $tmp_list->toArray(); if ($arr_list) { $treeObj = new TreeRepository(); $arr = $treeObj->tree2AreaArray($arr_list, 'id', 'parent_id', 'cell'); } } return $arr; } /** * 所有树形数组名称 * @return array */ public function getAllTreeName() { $arr = array(); if ($tmp_list = PermissionResourceModel::orderBy('squad', 'ASC')->get()) { $arr_list = $tmp_list->toArray(); if ($arr_list) { $treeObj = new TreeRepository(); $arr = $treeObj->tree2AreaArray2($arr_list, 'operate','cell'); } } return $arr; } /** * 所有有效树形数组. * @return array */ public function getAllEnableTree() { $pLang = trans('permission'); $rTree = $this->getAllTree(); foreach ($rTree as $k1 => &$v1) { if (isset($pLang[$v1['operate']]) && $pLang[$v1['operate']]['power_rule']['module_hidden'] == 0) { $v1['name'] = $pLang[$v1['operate']]['power_rule']['module_name']; if (!empty($v1['cell'])) { foreach ($v1['cell'] as $k2 => &$v2) { if (isset($pLang[$v1['operate']][$v2['operate']])) { $v2['name'] = $pLang[$v1['operate']][$v2['operate']]; } else { unset($rTree[$k1]['cell'][$k2]); } } } } else { unset($rTree[$k1]); } } return $rTree; } /** * 所有有效树形数组.名称 * @return array */ public function getAllEnableTreeName() { $pLang = trans('permission'); $rTree = $this->getAllTreeName(); foreach ($rTree as $k1 => &$v1) { if (isset($pLang[$v1['operate']]) && $pLang[$v1['operate']]['power_rule']['module_hidden'] == 0) { $v1['name'] = $pLang[$v1['operate']]['power_rule']['module_name']; if (!empty($v1['cell'])) { foreach ($v1['cell'] as $k2 => &$v2) { if (isset($pLang[$v1['operate']][$v2['operate']])) { $v2['name'] = $pLang[$v1['operate']][$v2['operate']]; } else { unset($rTree[$k1]['cell'][$k2]); } } } } else { unset($rTree[$k1]); } } return $rTree; } }