PermissionResourceRepository.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * 资源.
  4. *
  5. * @author nj
  6. * @date 2021-01-24 00:02:37
  7. */
  8. namespace App\Repositories;
  9. use KZ2\Laravel\Repositories\Eloquent\Repository;
  10. use App\Models\Mysql\PermissionResourceModel;
  11. use App\Repositories\Utils\TreeRepository;
  12. class PermissionResourceRepository extends Repository
  13. {
  14. public function model()
  15. {
  16. return PermissionResourceModel::class;
  17. }
  18. /**
  19. * 所有树形数组.
  20. * @return array
  21. */
  22. public function getAllTree()
  23. {
  24. $arr = array();
  25. if ($tmp_list = PermissionResourceModel::orderBy('squad', 'ASC')->get()) {
  26. $arr_list = $tmp_list->toArray();
  27. if ($arr_list) {
  28. $treeObj = new TreeRepository();
  29. $arr = $treeObj->tree2AreaArray($arr_list, 'id', 'parent_id', 'cell');
  30. }
  31. }
  32. return $arr;
  33. }
  34. /**
  35. * 所有有效树形数组.
  36. * @return array
  37. */
  38. public function getAllEnableTree()
  39. {
  40. $pLang = trans('permission');
  41. $rTree = $this->getAllTree();
  42. foreach ($rTree as $k1 => &$v1) {
  43. if (isset($pLang[$v1['operate']]) && $pLang[$v1['operate']]['power_rule']['module_hidden'] == 0) {
  44. $v1['name'] = $pLang[$v1['operate']]['power_rule']['module_name'];
  45. if (!empty($v1['cell'])) {
  46. foreach ($v1['cell'] as $k2 => &$v2) {
  47. if (isset($pLang[$v1['operate']][$v2['operate']])) {
  48. $v2['name'] = $pLang[$v1['operate']][$v2['operate']];
  49. } else {
  50. unset($rTree[$k1]['cell'][$k2]);
  51. }
  52. }
  53. }
  54. } else {
  55. unset($rTree[$k1]);
  56. }
  57. }
  58. return $rTree;
  59. }
  60. }