refactor: 完成项目整体架构升级与依赖优化

此提交包含多项核心优化:
1.  依赖库升级:更新FastAPI、替换fastapi-limiter为slowapi,更换MySQL驱动为aiomysql,重构缓存系统使用fastapi-cache2-fork
2.  代码重构:移除自定义缓存工具,统一使用fastapi-cache2;重构请求限流逻辑,修复操作日志记录开关逻辑
3.  接口规范:统一将Depends分页/查询参数改为Query注解,补全File上传依赖注解
4.  前端优化:调整登录滑块进度条颜色、移除冗余demo页面样式类
5.  日志优化:重构日志配置,使用time.perf_counter替代time.time统计耗时
6.  测试优化:移除冗余的限流mock配置,改用官方限流方案
7.  模板优化:更新vue代码生成模板,移除冗余导入并优化组件使用
8.  导入功能优化:移除pandas依赖,使用Excel工具类重构文件导入逻辑
This commit is contained in:
zhangtao
2026-07-01 00:35:28 +08:00
parent a39bedabb9
commit a86233d6c2
51 changed files with 1126 additions and 42754 deletions
@@ -1,6 +1,6 @@
from typing import Annotated
from fastapi import APIRouter, Body, Depends, Path
from fastapi import APIRouter, Body, Depends, Path, Query
from fastapi.responses import JSONResponse
from app.common.response import ResponseSchema, SuccessResponse
@@ -28,8 +28,8 @@ WorkflowRouter = APIRouter(route_class=OperationLogRoute, prefix="/workflow/defi
response_model=ResponseSchema[WorkflowOutSchema],
)
async def get_workflow_detail_controller(
id: Annotated[int, Path(description="工作流ID")],
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:definition:detail"]))],
id: Annotated[int, Path(description="工作流ID")],
) -> JSONResponse:
result_dict = await WorkflowService(auth).get_workflow_detail(id=id)
return SuccessResponse(data=result_dict, msg="获取工作流详情成功")
@@ -41,9 +41,9 @@ async def get_workflow_detail_controller(
response_model=ResponseSchema[PageResultSchema[WorkflowOutSchema]],
)
async def get_workflow_list_controller(
page: Annotated[PaginationQueryParam, Depends()],
search: Annotated[WorkflowQueryParam, Depends()],
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:definition:query"]))],
page: Annotated[PaginationQueryParam, Query(description="分页参数")],
search: Annotated[WorkflowQueryParam, Query(description="查询参数")],
) -> JSONResponse:
result_dict = await WorkflowService(auth).get_workflow_page(
page_no=page.page_no,
@@ -60,8 +60,8 @@ async def get_workflow_list_controller(
response_model=ResponseSchema[WorkflowOutSchema],
)
async def create_workflow_controller(
data: WorkflowCreateSchema,
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:definition:create"]))],
data: Annotated[WorkflowCreateSchema, Body(description="创建工作流参数")],
) -> JSONResponse:
result_dict = await WorkflowService(auth).create_workflow(data=data)
return SuccessResponse(data=result_dict, msg="创建工作流成功")
@@ -73,9 +73,9 @@ async def create_workflow_controller(
response_model=ResponseSchema[WorkflowOutSchema],
)
async def update_workflow_controller(
id: Annotated[int, Path(description="工作流ID")],
data: WorkflowUpdateSchema,
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:definition:update"]))],
id: Annotated[int, Path(description="工作流ID")],
data: Annotated[WorkflowUpdateSchema, Body(description="更新工作流参数")],
) -> JSONResponse:
result_dict = await WorkflowService(auth).update_workflow(id=id, data=data)
return SuccessResponse(data=result_dict, msg="更新工作流成功")
@@ -87,8 +87,8 @@ async def update_workflow_controller(
response_model=ResponseSchema[None],
)
async def delete_workflow_controller(
ids: Annotated[list[int], Body(description="ID列表")],
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:definition:delete"]))],
ids: Annotated[list[int], Body(description="ID列表")],
) -> JSONResponse:
await WorkflowService(auth).delete_workflow(ids=ids)
return SuccessResponse(msg="删除工作流成功")
@@ -100,8 +100,8 @@ async def delete_workflow_controller(
response_model=ResponseSchema[WorkflowOutSchema],
)
async def publish_workflow_controller(
id: Annotated[int, Path(description="工作流ID")],
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:definition:update"]))],
id: Annotated[int, Path(description="工作流ID")],
) -> JSONResponse:
result_dict = await WorkflowService(auth).publish_workflow(id=id)
return SuccessResponse(data=result_dict, msg="发布工作流成功")
@@ -113,8 +113,8 @@ async def publish_workflow_controller(
response_model=ResponseSchema[WorkflowExecuteResultSchema],
)
async def execute_workflow_controller(
body: WorkflowExecuteSchema,
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:definition:execute"]))],
body: Annotated[WorkflowExecuteSchema, Body(description="执行工作流参数")],
) -> JSONResponse:
result_dict = await WorkflowService(auth).execute_workflow(body=body)
return SuccessResponse(data=result_dict, msg="执行工作流完成")