| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- /**
- * Created by PhpStorm.
- * User: qiuzijian
- * Date: 2021-04-17
- * Time: 16:56
- */
- namespace Modules\Mine\Services;
- use App\Enum\ApiEnum;
- use Illuminate\Support\Arr;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\Log;
- use Modules\Admin\Traits\ClassifyMethod;
- use Modules\Mine\Entities\MineList;
- class MineServices{
- use ClassifyMethod;
- public function __construct()
- {
- }
- //初始化mine_list表
- public function initMineList()
- {
- $this->classify = new MineList();
- $this->cacheTitle = 'MineManageList';
- }
- //获取矿井列表
- public static function getMineList()
- {
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- $mine_list = MineList::orderBy('sort', 'desc')->orderBy('id', 'asc')->where(
- [
- 'parent_id' => 0
- ]
- )->select(
- [
- 'id as mine_id',
- 'title as name',
- ]
- )->get()->toArray();
- $result['data'] = $mine_list;
- return $result;
- }
- //获取矿区列表
- public static function getAreaList($mine_id = '')
- {
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- $mine_list = MineList::orderBy('sort', 'desc')->orderBy('id', 'asc')->select(
- [
- 'id as mine_id',
- 'title as name',
- 'parent_id',
- ]
- )->get()->toArray();
- if ($mine_list) {
- $mine_list = self::sortMineList($mine_list);
- }
- if ($mine_id) {
- foreach ($mine_list as $key => $val) {
- if ($val['mine_id'] != $mine_id) {
- unset($mine_list[$key]);
- }
- }
- }
- $result['data'] = $mine_list;
- return $result;
- }
- //递归排序矿区列表
- public static function sortMineList($mine_list, $pid = '0')
- {
- $arr = [];
- if (empty($mine_list)) {
- return '';
- }
- $num = 0;
- foreach ($mine_list as $key => $value) {
- if ($value['parent_id'] == $pid) {
- $arr[$num] = $value;
- $arr[$num]['children'] = self::sortMineList($mine_list, $value['mine_id']);
- unset($arr[$num]['parent_id']);
- if (count($arr[$num]['children']) == 0) {
- unset($arr[$num]['children']);
- }
- $num++;
- }
- }
- return $arr;
- }
- }
|