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']);