From 727315bf3979cdd2238df315edb37b63af7eb69c Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq.com> Date: Mon, 27 Apr 2026 10:17:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A5=BC=E5=B1=82=E6=A0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Admin/FloorController.php | 28 +++++++++++++++++++ .../Controllers/Admin/IndexController.php | 5 ++-- .../Admin/ParkingElectronicMapController.php | 28 +++++++++++++++++-- app/Models/AdminFloor.php | 3 +- app/Services/AdminFloorService.php | 14 ++++++++-- ..._02_10_173627_create_admin_floor_table.php | 1 + routes/admin/api.php | 2 ++ 7 files changed, 71 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Admin/FloorController.php b/app/Http/Controllers/Admin/FloorController.php index 78107ec..d7dbacb 100644 --- a/app/Http/Controllers/Admin/FloorController.php +++ b/app/Http/Controllers/Admin/FloorController.php @@ -43,6 +43,13 @@ class FloorController extends BaseController try { $query = AdminFloor::query(); + if ($request->has('building_floor')) { + $building_floor = $request->input('building_floor'); + if ($building_floor) { + $query->where('building_floor', $building_floor); + } + } + // 分页 $page = $request->input('page', 1); $perPage = $request->input('per_page', 10); @@ -207,4 +214,25 @@ class FloorController extends BaseController ); } } + + /** + * 列表搜索数据 + * @return JsonResponse + */ + public function search(): JsonResponse + { + try { + $data = [ + 'building_floor_list' => get_select_data( + AdminFloorService::getBuildingFloor() + ) + ]; + return $this->responseService->success($data); + } catch (Exception $e) { + $m_prefix = __('exception.exception_handler.resource'); + return $this->responseService->systemError( + $m_prefix . ':' . $e->getMessage() + ); + } + } } diff --git a/app/Http/Controllers/Admin/IndexController.php b/app/Http/Controllers/Admin/IndexController.php index b938841..4978591 100644 --- a/app/Http/Controllers/Admin/IndexController.php +++ b/app/Http/Controllers/Admin/IndexController.php @@ -4,10 +4,9 @@ namespace App\Http\Controllers\Admin; use App\Services\AdminMenuService; use App\Services\ApiResponseService; +use App\Services\OperationLogService; use Exception; use Illuminate\Http\JsonResponse; -use Illuminate\Http\Request; -use Illuminate\Support\Facades\Auth; class IndexController extends BaseController { @@ -39,7 +38,7 @@ class IndexController extends BaseController public function menu(): JsonResponse { try { - $data = (new AdminMenuService())->getUserMenuTreeList( + $data = (new AdminMenuService(new OperationLogService()))->getUserMenuTreeList( $this->adminUserId ); return $this->responseService->success($data); diff --git a/app/Http/Controllers/Admin/ParkingElectronicMapController.php b/app/Http/Controllers/Admin/ParkingElectronicMapController.php index a4c5ea8..3558338 100644 --- a/app/Http/Controllers/Admin/ParkingElectronicMapController.php +++ b/app/Http/Controllers/Admin/ParkingElectronicMapController.php @@ -2,7 +2,6 @@ namespace App\Http\Controllers\Admin; -use App\Models\ParkingElectronicMap; use App\Services\AdminFloorService; use App\Services\ApiResponseService; use App\Services\ParkingElectronicMapService; @@ -33,13 +32,36 @@ class ParkingElectronicMapController extends BaseController /** * 查询楼层 + * @param Request $request * @return JsonResponse */ - public function floorList(): JsonResponse + public function floorList(Request $request): JsonResponse { try { + $building_floor = $request->get('building_floor', '1'); $data = [ - 'floor_list' => AdminFloorService::getSelectList() + 'floor_list' => AdminFloorService::getSelectList($building_floor) + ]; + return $this->responseService->success($data); + } catch (Exception $e) { + $m_prefix = __('exception.exception_handler.resource'); + return $this->responseService->systemError( + $m_prefix . ':' . $e->getMessage() + ); + } + } + + /** + * 楼层栋 + * @return JsonResponse + */ + public function buildingFloorList(): JsonResponse + { + try { + $data = [ + 'building_floor_list' => get_select_data( + AdminFloorService::getBuildingFloor() + ) ]; return $this->responseService->success($data); } catch (Exception $e) { diff --git a/app/Models/AdminFloor.php b/app/Models/AdminFloor.php index 68ba4a3..808f591 100644 --- a/app/Models/AdminFloor.php +++ b/app/Models/AdminFloor.php @@ -15,7 +15,8 @@ class AdminFloor extends Model protected $fillable = [ 'name', - 'image_url' + 'image_url', + 'building_floor' ]; protected $hidden = [ diff --git a/app/Services/AdminFloorService.php b/app/Services/AdminFloorService.php index 82d3b05..bc4c334 100644 --- a/app/Services/AdminFloorService.php +++ b/app/Services/AdminFloorService.php @@ -11,6 +11,7 @@ use Illuminate\Support\Facades\DB; class AdminFloorService { + private static array $buildingFloor = [1 => 'MSCP', 2 => 'GSCP']; /** * @var OperationLogService @@ -177,18 +178,25 @@ class AdminFloorService } // 获取楼层列表 - public static function getSelectList(): array + public static function getSelectList($building_floor): array { $column = [ 'id as floor_id', 'name as floor_name', - 'image_url as pic_url' + 'image_url as pic_url', + 'building_floor' ]; - $list = AdminFloor::query()->whereNull('deleted_at')->select($column) + $list = AdminFloor::query()->where('building_floor', $building_floor)->whereNull('deleted_at')->select($column) ->get()->toArray(); foreach ($list as &$item) { $item['pic_url'] = env('app_url') . $item['pic_url']; } return $list; } + + // 获取楼栋层 + public static function getBuildingFloor(): array + { + return self::$buildingFloor; + } } diff --git a/database/migrations/2026_02_10_173627_create_admin_floor_table.php b/database/migrations/2026_02_10_173627_create_admin_floor_table.php index e0ec66f..5121dd8 100644 --- a/database/migrations/2026_02_10_173627_create_admin_floor_table.php +++ b/database/migrations/2026_02_10_173627_create_admin_floor_table.php @@ -15,6 +15,7 @@ return new class extends Migration $table->id(); $table->string('name')->comment('楼层名称'); $table->string('image_url')->comment('图片路径'); + $table->integer('building_floor')->default(1)->comment('所属楼'); $table->timestamps(); $table->softDeletes(); $table->innoDb(); diff --git a/routes/admin/api.php b/routes/admin/api.php index 08b1b93..5f5c09d 100644 --- a/routes/admin/api.php +++ b/routes/admin/api.php @@ -70,6 +70,7 @@ Route::group(['prefix' => 'admin'], function () { // 绘制电子地图 Route::get('/map/index', [ParkingElectronicMapController::class, 'index']); Route::get('/map/floorList', [ParkingElectronicMapController::class, 'floorList']); + Route::get('/map/buildingFloorList', [ParkingElectronicMapController::class, 'buildingFloorList']); Route::get('/map/parkingSpaceList/{id}', [ParkingElectronicMapController::class, 'getParkingSpaceList']); Route::post('/map/save', [ParkingElectronicMapController::class, 'save']); @@ -99,6 +100,7 @@ Route::group(['prefix' => 'admin'], function () { Route::put('/floors/{id}', [FloorController::class, 'update']); Route::delete('/floors/{id}', [FloorController::class, 'destroy']); Route::get('/floors/rule', [FloorController::class, 'rule']); + Route::get('/floors/search', [FloorController::class, 'search']); // 图片上传 Route::post('/uploadImage', [UploadController::class, 'uploadImage']); // 翻译