perf: 优化通用模块service层及异常处理

This commit is contained in:
insistence
2024-07-10 21:14:41 +08:00
parent bbd4a4cd95
commit f255595b30
2 changed files with 21 additions and 45 deletions

View File

@@ -4,6 +4,7 @@ from fastapi import UploadFile
from datetime import datetime
from config.env import UploadConfig
from module_admin.entity.vo.common_vo import *
from exceptions.exception import ServiceException
from utils.upload_util import UploadUtil
@@ -21,7 +22,7 @@ class CommonService:
:return: 上传结果
"""
if not UploadUtil.check_file_extension(file):
result = dict(is_success=False, message='文件类型不合法')
raise ServiceException(message='文件类型不合法')
else:
relative_path = f'upload/{datetime.now().strftime("%Y")}/{datetime.now().strftime("%m")}/{datetime.now().strftime("%d")}'
dir_path = os.path.join(UploadConfig.UPLOAD_PATH, relative_path)
@@ -36,7 +37,7 @@ class CommonService:
for chunk in iter(lambda: file.file.read(1024 * 1024 * 10), b''):
f.write(chunk)
result = dict(
return CrudResponseModel(
is_success=True,
result=UploadResponseModel(
fileName=f'{UploadConfig.UPLOAD_PREFIX}/{relative_path}/{filename}',
@@ -47,8 +48,6 @@ class CommonService:
message='上传成功'
)
return CrudResponseModel(**result)
@classmethod
async def download_services(cls, background_tasks: BackgroundTasks, file_name, delete: bool):
"""
@@ -60,14 +59,13 @@ class CommonService:
"""
filepath = os.path.join(UploadConfig.DOWNLOAD_PATH, file_name)
if '..' in file_name:
result = dict(is_success=False, message='文件名称不合法')
raise ServiceException(message='文件名称不合法')
elif not UploadUtil.check_file_exists(filepath):
result = dict(is_success=False, message='文件不存在')
raise ServiceException(message='文件不存在')
else:
result = dict(is_success=True, result=UploadUtil.generate_file(filepath), message='下载成功')
if delete:
background_tasks.add_task(UploadUtil.delete_file, filepath)
return CrudResponseModel(**result)
return CrudResponseModel(is_success=True, result=UploadUtil.generate_file(filepath), message='下载成功')
@classmethod
async def download_resource_services(cls, resource: str):
@@ -79,9 +77,8 @@ class CommonService:
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):
result = dict(is_success=False, message='文件名称不合法')
raise ServiceException(message='文件名称不合法')
elif not UploadUtil.check_file_exists(filepath):
result = dict(is_success=False, message='文件不存在')
raise ServiceException(message='文件不存在')
else:
result = dict(is_success=True, result=UploadUtil.generate_file(filepath), message='下载成功')
return CrudResponseModel(**result)
return CrudResponseModel(is_success=True, result=UploadUtil.generate_file(filepath), message='下载成功')