PermissionResourceRepository.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. /**
  3. * 资源.
  4. *
  5. * @author jim <jim458734573@gmail.com>
  6. * @date 2020-01-24 00:02:37
  7. */
  8. declare(strict_types=1);
  9. namespace App\Repositories;
  10. use App\Model\PermissionResourceModel;
  11. use App\Repositories\Utils\TreeRepository;
  12. use Hyperf\Database\Model\Builder;
  13. use KZ2\Repositories\Model\Repository;
  14. class PermissionResourceRepository extends Repository
  15. {
  16. public function model()
  17. {
  18. return PermissionResourceModel::class;
  19. }
  20. /**
  21. * 所有树形数组.
  22. * @return array
  23. */
  24. public function getAllTree()
  25. {
  26. $arr = array();
  27. if ($tmp_list = PermissionResourceModel::orderBy('squad', 'ASC')->get()) {
  28. $arr_list = $tmp_list->toArray();
  29. if ($arr_list) {
  30. $treeObj = new TreeRepository();
  31. $arr = $treeObj->tree2AreaArray($arr_list, 'id', 'parent_id', 'cell');
  32. }
  33. }
  34. return $arr;
  35. }
  36. /**
  37. * 所有树形数组名称
  38. * @return array
  39. */
  40. public function getAllTreeName()
  41. {
  42. $arr = array();
  43. if ($tmp_list = PermissionResourceModel::orderBy('squad', 'ASC')->get()) {
  44. $arr_list = $tmp_list->toArray();
  45. if ($arr_list) {
  46. $treeObj = new TreeRepository();
  47. $arr = $treeObj->tree2AreaArray2($arr_list, 'operate','cell');
  48. }
  49. }
  50. return $arr;
  51. }
  52. /**
  53. * 所有有效树形数组.
  54. * @return array
  55. */
  56. public function getAllEnableTree()
  57. {
  58. $pLang = trans('permission');
  59. $rTree = $this->getAllTree();
  60. foreach ($rTree as $k1 => &$v1) {
  61. if (isset($pLang[$v1['operate']]) && $pLang[$v1['operate']]['power_rule']['module_hidden'] == 0) {
  62. $v1['name'] = $pLang[$v1['operate']]['power_rule']['module_name'];
  63. if (!empty($v1['cell'])) {
  64. foreach ($v1['cell'] as $k2 => &$v2) {
  65. if (isset($pLang[$v1['operate']][$v2['operate']])) {
  66. $v2['name'] = $pLang[$v1['operate']][$v2['operate']];
  67. } else {
  68. unset($rTree[$k1]['cell'][$k2]);
  69. }
  70. }
  71. }
  72. } else {
  73. unset($rTree[$k1]);
  74. }
  75. }
  76. return $rTree;
  77. }
  78. /**
  79. * 所有有效树形数组.名称
  80. * @return array
  81. */
  82. public function getAllEnableTreeName()
  83. {
  84. $pLang = trans('permission');
  85. $rTree = $this->getAllTreeName();
  86. foreach ($rTree as $k1 => &$v1) {
  87. if (isset($pLang[$v1['operate']]) && $pLang[$v1['operate']]['power_rule']['module_hidden'] == 0) {
  88. $v1['name'] = $pLang[$v1['operate']]['power_rule']['module_name'];
  89. if (!empty($v1['cell'])) {
  90. foreach ($v1['cell'] as $k2 => &$v2) {
  91. if (isset($pLang[$v1['operate']][$v2['operate']])) {
  92. $v2['name'] = $pLang[$v1['operate']][$v2['operate']];
  93. } else {
  94. unset($rTree[$k1]['cell'][$k2]);
  95. }
  96. }
  97. }
  98. } else {
  99. unset($rTree[$k1]);
  100. }
  101. }
  102. return $rTree;
  103. }
  104. }