diff --git a/ruoyi-fastapi-backend/module_admin/controller/common_controller.py b/ruoyi-fastapi-backend/module_admin/controller/common_controller.py index dc93030..d2fd621 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/common_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/common_controller.py @@ -1,14 +1,13 @@ -from fastapi import APIRouter -from fastapi import Depends, File, Query +from fastapi import APIRouter, BackgroundTasks, Depends, File, Query, Request, UploadFile +from module_admin.service.common_service import CommonService from module_admin.service.login_service import LoginService -from module_admin.service.common_service import * -from utils.response_util import * -from utils.log_util import * +from utils.log_util import logger +from utils.response_util import ResponseUtil commonController = APIRouter(prefix='/common', dependencies=[Depends(LoginService.get_current_user)]) -@commonController.post("/upload") +@commonController.post('/upload') async def common_upload(request: Request, file: UploadFile = File(...)): upload_result = await CommonService.upload_service(request, file) logger.info('上传成功') @@ -16,16 +15,21 @@ async def common_upload(request: Request, file: UploadFile = File(...)): return ResponseUtil.success(model_content=upload_result.result) -@commonController.get("/download") -async def common_download(request: Request, background_tasks: BackgroundTasks, file_name: str = Query(alias='fileName'), delete: bool = Query()): +@commonController.get('/download') +async def common_download( + request: Request, + background_tasks: BackgroundTasks, + file_name: str = Query(alias='fileName'), + delete: bool = Query(), +): download_result = await CommonService.download_services(background_tasks, file_name, delete) logger.info(download_result.message) return ResponseUtil.streaming(data=download_result.result) -@commonController.get("/download/resource") -async def common_download(request: Request, resource: str = Query()): +@commonController.get('/download/resource') +async def common_download_resource(request: Request, resource: str = Query()): download_resource_result = await CommonService.download_resource_services(resource) logger.info(download_resource_result.message) diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/common_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/common_vo.py index b99534e..258be5d 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/common_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/common_vo.py @@ -1,12 +1,13 @@ from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel -from typing import Optional, Any +from typing import Any, Optional class CrudResponseModel(BaseModel): """ 操作响应模型 """ + is_success: bool = Field(description='操作是否成功') message: str = Field(description='响应信息') result: Optional[Any] = Field(default=None, description='响应结果') @@ -16,6 +17,7 @@ class UploadResponseModel(BaseModel): """ 上传响应模型 """ + model_config = ConfigDict(alias_generator=to_camel) file_name: Optional[str] = Field(default=None, description='新文件映射路径') diff --git a/ruoyi-fastapi-backend/module_admin/service/common_service.py b/ruoyi-fastapi-backend/module_admin/service/common_service.py index 105f351..bea97c2 100644 --- a/ruoyi-fastapi-backend/module_admin/service/common_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/common_service.py @@ -1,10 +1,9 @@ -from fastapi import Request, BackgroundTasks import os -from fastapi import UploadFile from datetime import datetime +from fastapi import BackgroundTasks, Request, UploadFile from config.env import UploadConfig -from module_admin.entity.vo.common_vo import * from exceptions.exception import ServiceException +from module_admin.entity.vo.common_vo import CrudResponseModel, UploadResponseModel from utils.upload_util import UploadUtil @@ -43,9 +42,9 @@ class CommonService: fileName=f'{UploadConfig.UPLOAD_PREFIX}/{relative_path}/{filename}', newFileName=filename, originalFilename=file.filename, - url=f'{request.base_url}{UploadConfig.UPLOAD_PREFIX[1:]}/{relative_path}/{filename}' + url=f'{request.base_url}{UploadConfig.UPLOAD_PREFIX[1:]}/{relative_path}/{filename}', ), - message='上传成功' + message='上传成功', ) @classmethod @@ -75,8 +74,13 @@ class CommonService: :return: 上传结果 """ filepath = os.path.join(resource.replace(UploadConfig.UPLOAD_PREFIX, UploadConfig.UPLOAD_PATH)) - filename = resource.rsplit("/", 1)[-1] - if '..' in filename or not UploadUtil.check_file_timestamp(filename) or not UploadUtil.check_file_machine(filename) or not UploadUtil.check_file_random_code(filename): + filename = resource.rsplit('/', 1)[-1] + if ( + '..' in filename + or not UploadUtil.check_file_timestamp(filename) + or not UploadUtil.check_file_machine(filename) + or not UploadUtil.check_file_random_code(filename) + ): raise ServiceException(message='文件名称不合法') elif not UploadUtil.check_file_exists(filepath): raise ServiceException(message='文件不存在')