Browse Source

绘制电子地图删除接口

master
wanghongjun 4 weeks ago
parent
commit
e14a140449
  1. 36
      app/Http/Controllers/Admin/ParkingElectronicMapController.php
  2. 24
      app/Services/ParkingElectronicMapService.php
  3. 1
      database/seeders/AdminMenuSeeder.php
  4. 3
      resources/lang/en/log.php
  5. 3
      resources/lang/zh-CN/log.php
  6. 3
      resources/lang/zh-TW/log.php
  7. 1
      routes/admin/api.php

36
app/Http/Controllers/Admin/ParkingElectronicMapController.php

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Exceptions\CustomException; use App\Exceptions\CustomException;
use App\Models\ParkingElectronicMap;
use App\Services\AdminFloorService; use App\Services\AdminFloorService;
use App\Services\ApiResponseService; use App\Services\ApiResponseService;
use App\Services\ParkingElectronicMapService; use App\Services\ParkingElectronicMapService;
@ -42,7 +43,9 @@ class ParkingElectronicMapController extends BaseController
try { try {
$building_floor = $request->get('building_floor', '1'); $building_floor = $request->get('building_floor', '1');
$data = [ $data = [
'floor_list' => AdminFloorService::getSelectList($building_floor) 'floor_list' => AdminFloorService::getSelectList(
$building_floor
)
]; ];
return $this->responseService->success($data); return $this->responseService->success($data);
} catch (Exception $e) { } catch (Exception $e) {
@ -115,8 +118,12 @@ class ParkingElectronicMapController extends BaseController
]; ];
if ($is_save) { if ($is_save) {
$rules['parking_space_id'] = 'required|numeric'; $rules['parking_space_id'] = 'required|numeric';
$messages['parking_space_id.required'] = __('validation.map.p_empty'); $messages['parking_space_id.required'] = __(
$messages['parking_space_id.numeric'] = __('validation.map.p_number'); 'validation.map.p_empty'
);
$messages['parking_space_id.numeric'] = __(
'validation.map.p_number'
);
} }
$validator = Validator::make($data, $rules, $messages); $validator = Validator::make($data, $rules, $messages);
@ -137,7 +144,8 @@ class ParkingElectronicMapController extends BaseController
$this->saveValidator($item, 1); $this->saveValidator($item, 1);
} }
$this->service->saveModel($saveData); $this->service->saveModel($saveData);
return $this->responseService->success([], __('admin.save_succeeded')); return $this->responseService->success([],
__('admin.save_succeeded'));
} catch (CustomException|ValidationException $e) { } catch (CustomException|ValidationException $e) {
throw $e; throw $e;
} catch (Exception $e) { } catch (Exception $e) {
@ -146,7 +154,6 @@ class ParkingElectronicMapController extends BaseController
$m_prefix . ':' . $e->getMessage() $m_prefix . ':' . $e->getMessage()
); );
} }
} }
public function index(Request $request): JsonResponse public function index(Request $request): JsonResponse
@ -165,4 +172,23 @@ class ParkingElectronicMapController extends BaseController
); );
} }
} }
public function destroy(string $id)
{
try {
$this->validateId($id, ParkingElectronicMap::class);
$this->service->deleteModel($id);
return $this->responseService->success(
null,
__('admin.delete_succeeded')
);
} catch (ValidationException $e) {
throw $e;
} catch (Exception $e) {
return $this->responseService->systemError(
__('admin.operation_failed') . ':'
. $e->getMessage()
);
}
}
} }

24
app/Services/ParkingElectronicMapService.php

@ -131,4 +131,28 @@ class ParkingElectronicMapService extends BaseService
self::syncDeleteMapSpace($space_id, $old_floor_id); self::syncDeleteMapSpace($space_id, $old_floor_id);
} }
} }
/**
* @param $id
* @return bool
* @throws Exception
*/
public function deleteModel($id): bool
{
try {
DB::beginTransaction();
$model = ParkingElectronicMap::query()->findOrFail($id);
$this->logService->logDeleted($model, 'map.delete');
$model->delete();
DB::commit();
return true;
} catch (Exception $e) {
DB::rollBack();
throw $e;
}
}
} }

1
database/seeders/AdminMenuSeeder.php

@ -180,6 +180,7 @@ class AdminMenuSeeder extends Seeder
'child' => [ 'child' => [
'read_only' => 'map.index', 'read_only' => 'map.index',
'save' => 'map.save', 'save' => 'map.save',
'delete' => 'map.destroy'
] ]
], ],
'parking_information' => [ 'parking_information' => [

3
resources/lang/en/log.php

@ -56,7 +56,8 @@ return [
], ],
'map' => [ 'map' => [
'save' => 'Draw an electronic map and save it', 'save' => 'Draw an electronic map and save it',
'sync_delete' => 'Synchronized deletion of parking spaces' 'sync_delete' => 'Synchronized deletion of parking spaces',
'delete' => 'Delete drawing position'
], ],
'parking_information' => [ 'parking_information' => [
'create' => 'Create parking information', 'create' => 'Create parking information',

3
resources/lang/zh-CN/log.php

@ -56,7 +56,8 @@ return [
], ],
'map' => [ 'map' => [
'save' => '绘制电子地图保存', 'save' => '绘制电子地图保存',
'sync_delete' => '车位同步删除' 'sync_delete' => '车位同步删除',
'delete' => '删除绘制位置'
], ],
'parking_information' => [ 'parking_information' => [
'create' => '创建车位资讯', 'create' => '创建车位资讯',

3
resources/lang/zh-TW/log.php

@ -56,7 +56,8 @@ return [
], ],
'map' => [ 'map' => [
'save' => '繪製電子地圖保存', 'save' => '繪製電子地圖保存',
'sync_delete' => '車位同步删除' 'sync_delete' => '車位同步删除',
'delete' => '刪除繪製位置'
], ],
'parking_information' => [ 'parking_information' => [
'create' => '創建車位資訊', 'create' => '創建車位資訊',

1
routes/admin/api.php

@ -170,6 +170,7 @@ Route::group(['prefix' => 'admin'], function () {
Route::get('/map/parkingSpaceList/{id}', [ParkingElectronicMapController::class, 'getParkingSpaceList']); Route::get('/map/parkingSpaceList/{id}', [ParkingElectronicMapController::class, 'getParkingSpaceList']);
Route::post('/map/save', [ParkingElectronicMapController::class, 'save']); Route::post('/map/save', [ParkingElectronicMapController::class, 'save']);
Route::get('/map/rule', [ParkingElectronicMapController::class, 'rule']); Route::get('/map/rule', [ParkingElectronicMapController::class, 'rule']);
Route::delete('/map/{id}', [ParkingElectronicMapController::class, 'destroy']);
// 车辆停车资讯 // 车辆停车资讯
Route::get('/information', [ParkingInformationController::class, 'index']); Route::get('/information', [ParkingInformationController::class, 'index']);
Route::get('/information/search', [ParkingInformationController::class, 'search']); Route::get('/information/search', [ParkingInformationController::class, 'search']);

Loading…
Cancel
Save