MineServices.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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')->orderBy('id', 'asc')->where(
  32. [
  33. 'parent_id' => 0
  34. ]
  35. )->select(
  36. [
  37. 'id as mine_id',
  38. 'title as name',
  39. ]
  40. )->get()->toArray();
  41. $result['data'] = $mine_list;
  42. return $result;
  43. }
  44. //获取矿区列表
  45. public static function getAreaList($mine_id = '')
  46. {
  47. $result['status'] = true;
  48. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  49. $mine_list = MineList::orderBy('sort', 'desc')->orderBy('id', 'asc')->select(
  50. [
  51. 'id as mine_id',
  52. 'title as name',
  53. 'parent_id',
  54. ]
  55. )->get()->toArray();
  56. if ($mine_list) {
  57. $mine_list = self::sortMineList($mine_list);
  58. }
  59. if ($mine_id) {
  60. foreach ($mine_list as $key => $val) {
  61. if ($val['mine_id'] != $mine_id) {
  62. unset($mine_list[$key]);
  63. }
  64. }
  65. }
  66. $result['data'] = $mine_list;
  67. return $result;
  68. }
  69. //递归排序矿区列表
  70. public static function sortMineList($mine_list, $pid = '0')
  71. {
  72. $arr = [];
  73. if (empty($mine_list)) {
  74. return '';
  75. }
  76. $num = 0;
  77. foreach ($mine_list as $key => $value) {
  78. if ($value['parent_id'] == $pid) {
  79. $arr[$num] = $value;
  80. $arr[$num]['children'] = self::sortMineList($mine_list, $value['mine_id']);
  81. unset($arr[$num]['parent_id']);
  82. if (count($arr[$num]['children']) == 0) {
  83. unset($arr[$num]['children']);
  84. }
  85. $num++;
  86. }
  87. }
  88. return $arr;
  89. }
  90. }