From 2bc0b42e26d572c32d39db44354eaefbb4c917d8 Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq.com> Date: Thu, 26 Feb 2026 15:56:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0=EF=BC=8C?= =?UTF-8?q?=E6=A5=BC=E5=B1=82=E9=85=8D=E7=BD=AE=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Admin/FloorController.php | 17 +++++ ...tionLog.php => OperationLogController.php} | 2 +- .../Controllers/Admin/UploadController.php | 69 +++++++++++++++++++ routes/admin/api.php | 9 ++- 4 files changed, 93 insertions(+), 4 deletions(-) rename app/Http/Controllers/Admin/{OperationLog.php => OperationLogController.php} (98%) create mode 100644 app/Http/Controllers/Admin/UploadController.php diff --git a/app/Http/Controllers/Admin/FloorController.php b/app/Http/Controllers/Admin/FloorController.php index 6e635a7..528ffac 100644 --- a/app/Http/Controllers/Admin/FloorController.php +++ b/app/Http/Controllers/Admin/FloorController.php @@ -12,6 +12,7 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\ValidationException; +use Psr\SimpleCache\InvalidArgumentException; class FloorController extends BaseController { @@ -194,4 +195,20 @@ class FloorController extends BaseController ); } } + + + /** + * @return JsonResponse + * @throws InvalidArgumentException + */ + public function rule(): JsonResponse + { + try { + return $this->responseService->success($this->methodShow('floors')); + } catch (Exception $e) { + return $this->responseService->systemError( + __('exception.get_data_failed') . ':' . $e->getMessage() + ); + } + } } diff --git a/app/Http/Controllers/Admin/OperationLog.php b/app/Http/Controllers/Admin/OperationLogController.php similarity index 98% rename from app/Http/Controllers/Admin/OperationLog.php rename to app/Http/Controllers/Admin/OperationLogController.php index 6339843..508db71 100644 --- a/app/Http/Controllers/Admin/OperationLog.php +++ b/app/Http/Controllers/Admin/OperationLogController.php @@ -10,7 +10,7 @@ use Exception; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -class OperationLog extends Controller +class OperationLogController extends Controller { /** * @var ApiResponseService diff --git a/app/Http/Controllers/Admin/UploadController.php b/app/Http/Controllers/Admin/UploadController.php new file mode 100644 index 0000000..475ae54 --- /dev/null +++ b/app/Http/Controllers/Admin/UploadController.php @@ -0,0 +1,69 @@ +responseService = $responseService; + } + + /** + * 上传图片 + * @param Request $request + * @return JsonResponse + * @throws ValidationException + */ + public function uploadImage(Request $request): JsonResponse + { + try { + $rules = [ + 'image' => 'required|image|max:10240', // 10MB = 10240KB + ]; + $messages = [ + 'image.required' => __('upload.i_empty'), + 'image.image' => __('upload.i_image'), + 'image.max' => __('upload.i_max'), + ]; + $validator = Validator::make($request->all(), $rules, $messages); + if ($validator->fails()) { + throw new ValidationException($validator); + } + $file = $request->file('image'); + $filename = time() . '_' . md5($file->getClientOriginalName()) . '.' + . $file->getClientOriginalExtension(); + $path = $file->storeAs('images', $filename, 'public'); + return $this->responseService->success( + ['url' => Storage::url($path)] + ); + } catch (ValidationException $e) { + throw $e; + } catch (Exception $e) { + return $this->responseService->systemError( + __('exception.upload.error') . ':' + . $e->getMessage() + ); + } + } + +} diff --git a/routes/admin/api.php b/routes/admin/api.php index bc3ad48..0ff1256 100644 --- a/routes/admin/api.php +++ b/routes/admin/api.php @@ -4,9 +4,10 @@ use App\Http\Controllers\Admin\AuthController; use App\Http\Controllers\Admin\ConfigController; use App\Http\Controllers\Admin\FloorController; use App\Http\Controllers\Admin\IndexController; -use App\Http\Controllers\Admin\OperationLog; +use App\Http\Controllers\Admin\OperationLogController; use App\Http\Controllers\Admin\RolesController; use App\Http\Controllers\Admin\TranslationController; +use App\Http\Controllers\Admin\UploadController; use App\Http\Controllers\Admin\UserController; use Illuminate\Support\Facades\Route; @@ -26,8 +27,8 @@ Route::group(['prefix' => 'admin'], function () { Route::get('/index', [IndexController::class, 'index']); Route::get('/menu', [IndexController::class, 'menu']); // 系统日志 - Route::get('/operationLog/index', [OperationLog::class, 'index']); - Route::get('/operationLog/search', [OperationLog::class, 'search']); + Route::get('/operationLog/index', [OperationLogController::class, 'index']); + Route::get('/operationLog/search', [OperationLogController::class, 'search']); // 系统总配置 Route::get('/config/index', [ConfigController::class, 'index']); @@ -35,6 +36,8 @@ Route::group(['prefix' => 'admin'], function () { // 楼层配置 Route::apiResource('floor', FloorController::class); Route::get('/floor/rule', [FloorController::class, 'rule']); + // 图片上传 + Route::post('/uploadImage', [UploadController::class, 'uploadImage']); // 角色 Route::apiResource('translations', TranslationController::class); Route::get('/translation/rule', [TranslationController::class, 'rule']);