MineServices.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: qiuzijian
  5. * Date: 2021-04-17
  6. * Time: 16:56
  7. */
  8. namespace Modules\Mine\Services;
  9. use App\Enum\ApiEnum;
  10. use Illuminate\Support\Arr;
  11. use Illuminate\Support\Facades\Cache;
  12. use Illuminate\Support\Facades\Log;
  13. use Modules\Admin\Traits\ClassifyMethod;
  14. use Modules\Mine\Entities\MineList;
  15. class MineServices{
  16. use ClassifyMethod;
  17. public function __construct()
  18. {
  19. }
  20. //初始化mine_list表
  21. public function initMineList()
  22. {
  23. $this->classify = new MineList();
  24. $this->cacheTitle = 'MineManageList';
  25. }
  26. //获取矿区列表
  27. public static function getMineList()
  28. {
  29. $result['status'] = true;
  30. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  31. $mine_list = MineList::orderBy('sort', 'desc')->select(
  32. [
  33. 'id',
  34. 'title as name',
  35. 'parent_id',
  36. ]
  37. )->get()->toArray();
  38. if ($mine_list) {
  39. $mine_list = self::sortMineList($mine_list);
  40. }
  41. $result['data'] = $mine_list;
  42. return $result;
  43. }
  44. //递归排序矿区列表
  45. public static function sortMineList($mine_list, $pid = '0')
  46. {
  47. $arr = [];
  48. if (empty($mine_list)) {
  49. return '';
  50. }
  51. $num = 0;
  52. foreach ($mine_list as $key => $value) {
  53. if ($value['parent_id'] == $pid) {
  54. $arr[$num] = $value;
  55. $arr[$num]['children'] = self::sortMineList($mine_list, $value['id']);
  56. unset($arr[$num]['id']);
  57. unset($arr[$num]['parent_id']);
  58. if (count($arr[$num]['children']) == 0) {
  59. unset($arr[$num]['children']);
  60. }
  61. $num++;
  62. }
  63. }
  64. return $arr;
  65. }
  66. }