mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-20 20:39:55 +00:00
refactor(module): 重构模块结构,将示例模块和AI模块迁移至应用模块
- 删除原有的示例模块(module_example)和AI模块(module_ai) - 在应用模块(module_application)下新增AI子模块和示例子模块 - 更新相关路由配置,移除不再使用的模块路由 - 调整定时任务模块从监控模块迁移至应用模块 - 更新前端API路径和组件文件结构 - 修正数据库表名前缀,统一使用'app_'作为应用模块表前缀
This commit is contained in:
@@ -11,15 +11,9 @@ from .module_monitor import MonitorRouter
|
||||
# 通用模块
|
||||
from .module_common import CommonRouter
|
||||
|
||||
# 示例模块
|
||||
from .module_example import ExampleRouter
|
||||
|
||||
# 应用模块
|
||||
from .module_application import ApplicationRouter
|
||||
|
||||
# AI模块
|
||||
from .module_ai import AIRouter
|
||||
|
||||
# 代码生成模块
|
||||
from .module_generator import GeneratorRouter
|
||||
|
||||
@@ -31,7 +25,5 @@ router = APIRouter()
|
||||
router.include_router(SystemRouter)
|
||||
router.include_router(MonitorRouter)
|
||||
router.include_router(CommonRouter)
|
||||
router.include_router(ExampleRouter)
|
||||
router.include_router(ApplicationRouter)
|
||||
router.include_router(AIRouter)
|
||||
router.include_router(GeneratorRouter)
|
||||
@@ -1,14 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
AI模块初始化文件
|
||||
"""
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from .mcp.controller import MCPRouter
|
||||
|
||||
|
||||
AIRouter = APIRouter(prefix="/ai")
|
||||
|
||||
# 包含所有子路由
|
||||
AIRouter.include_router(MCPRouter)
|
||||
@@ -1,6 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
AI模块初始化文件
|
||||
"""
|
||||
|
||||
from .controller import MCPRouter
|
||||
@@ -3,9 +3,13 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
from .myapp.controller import MyAppRouter
|
||||
from .ai.controller import AIRouter
|
||||
from .job.controller import JobRouter
|
||||
|
||||
|
||||
ApplicationRouter = APIRouter(prefix="/application")
|
||||
|
||||
# 包含所有子路由
|
||||
ApplicationRouter.include_router(MyAppRouter)
|
||||
ApplicationRouter.include_router(MyAppRouter)
|
||||
ApplicationRouter.include_router(AIRouter)
|
||||
ApplicationRouter.include_router(JobRouter)
|
||||
@@ -0,0 +1 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
+14
-14
@@ -15,13 +15,13 @@ from .service import McpService
|
||||
from .schema import McpCreateSchema, McpUpdateSchema, ChatQuerySchema
|
||||
|
||||
|
||||
MCPRouter = APIRouter(route_class=OperationLogRoute, prefix="/mcp", tags=["MCP智能助手"])
|
||||
AIRouter = APIRouter(route_class=OperationLogRoute, prefix="/ai", tags=["MCP智能助手"])
|
||||
|
||||
|
||||
@MCPRouter.post("/chat", summary="智能对话", description="与MCP智能助手进行对话")
|
||||
@AIRouter.post("/chat", summary="智能对话", description="与MCP智能助手进行对话")
|
||||
async def chat_controller(
|
||||
query: ChatQuerySchema,
|
||||
auth: AuthSchema = Depends(AuthPermission(["ai:mcp:chat"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:ai:chat"]))
|
||||
) -> StreamingResponse:
|
||||
"""智能对话接口"""
|
||||
user_name = auth.user.name if auth.user else "未知用户"
|
||||
@@ -40,21 +40,21 @@ async def chat_controller(
|
||||
return StreamResponse(generate_response(), media_type="text/plain; charset=utf-8")
|
||||
|
||||
|
||||
@MCPRouter.get("/detail/{id}", summary="获取 MCP 服务器详情", description="获取 MCP 服务器详情")
|
||||
@AIRouter.get("/detail/{id}", summary="获取 MCP 服务器详情", description="获取 MCP 服务器详情")
|
||||
async def detail_controller(
|
||||
id: int = Path(..., description="MCP ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["ai:mcp:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:ai:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await McpService.detail_service(auth=auth, id=id)
|
||||
logger.info(f"获取 MCP 服务器详情成功 {id}")
|
||||
return SuccessResponse(data=result_dict, msg="获取 MCP 服务器详情成功")
|
||||
|
||||
|
||||
@MCPRouter.get("/list", summary="查询 MCP 服务器列表", description="查询 MCP 服务器列表")
|
||||
@AIRouter.get("/list", summary="查询 MCP 服务器列表", description="查询 MCP 服务器列表")
|
||||
async def list_controller(
|
||||
page: PaginationQueryParam = Depends(),
|
||||
search: McpQueryParam = Depends(),
|
||||
auth: AuthSchema = Depends(AuthPermission(["ai:mcp:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:ai:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict_list = await McpService.list_service(auth=auth, search=search, order_by=page.order_by)
|
||||
result_dict = await PaginationService.paginate(data_list=result_dict_list, page_no=page.page_no, page_size=page.page_size)
|
||||
@@ -62,38 +62,38 @@ async def list_controller(
|
||||
return SuccessResponse(data=result_dict, msg="查询 MCP 服务器列表成功")
|
||||
|
||||
|
||||
@MCPRouter.post("/create", summary="创建 MCP 服务器", description="创建 MCP 服务器")
|
||||
@AIRouter.post("/create", summary="创建 MCP 服务器", description="创建 MCP 服务器")
|
||||
async def create_controller(
|
||||
data: McpCreateSchema,
|
||||
auth: AuthSchema = Depends(AuthPermission(["ai:mcp:create"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:ai:create"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await McpService.create_service(auth=auth, data=data)
|
||||
logger.info(f"创建 MCP 服务器成功: {result_dict}")
|
||||
return SuccessResponse(data=result_dict, msg="创建 MCP 服务器成功")
|
||||
|
||||
|
||||
@MCPRouter.put("/update/{id}", summary="修改 MCP 服务器", description="修改 MCP 服务器")
|
||||
@AIRouter.put("/update/{id}", summary="修改 MCP 服务器", description="修改 MCP 服务器")
|
||||
async def update_controller(
|
||||
data: McpUpdateSchema,
|
||||
id: int = Path(..., description="MCP ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["ai:mcp:update"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:ai:update"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await McpService.update_service(auth=auth, id=id, data=data)
|
||||
logger.info(f"修改 MCP 服务器成功: {result_dict}")
|
||||
return SuccessResponse(data=result_dict, msg="修改 MCP 服务器成功")
|
||||
|
||||
|
||||
@MCPRouter.delete("/delete", summary="删除 MCP 服务器", description="删除 MCP 服务器")
|
||||
@AIRouter.delete("/delete", summary="删除 MCP 服务器", description="删除 MCP 服务器")
|
||||
async def delete_controller(
|
||||
ids: list[int] = Body(..., description="ID列表"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["ai:mcp:delete"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:ai:delete"]))
|
||||
) -> JSONResponse:
|
||||
await McpService.delete_service(auth=auth, ids=ids)
|
||||
logger.info(f"删除 MCP 服务器成功: {ids}")
|
||||
return SuccessResponse(msg="删除 MCP 服务器成功")
|
||||
|
||||
|
||||
@MCPRouter.websocket("/ws/chat", name="WebSocket聊天")
|
||||
@AIRouter.websocket("/ws/chat", name="WebSocket聊天")
|
||||
async def websocket_chat_controller(
|
||||
websocket: WebSocket,
|
||||
):
|
||||
+1
-1
@@ -12,7 +12,7 @@ class McpModel(CreatorMixin):
|
||||
MCP 服务器表
|
||||
"""
|
||||
|
||||
__tablename__ = 'ai_mcp'
|
||||
__tablename__ = 'app_ai_mcp'
|
||||
__table_args__ = ({'comment': 'MCP 服务器表'})
|
||||
|
||||
name: Mapped[str] = mapped_column(String(50), unique=True, comment='MCP 名称')
|
||||
+14
-14
@@ -25,7 +25,7 @@ JobRouter = APIRouter(route_class=OperationLogRoute, prefix="/job", tags=["定
|
||||
@JobRouter.get("/detail/{id}", summary="获取定时任务详情", description="获取定时任务详情")
|
||||
async def get_obj_detail_controller(
|
||||
id: int = Path(..., description="定时任务ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await JobService.get_job_detail_service(id=id, auth=auth)
|
||||
logger.info(f"获取定时任务详情成功 {id}")
|
||||
@@ -35,7 +35,7 @@ async def get_obj_detail_controller(
|
||||
async def get_obj_list_controller(
|
||||
page: PaginationQueryParam = Depends(),
|
||||
search: JobQueryParam = Depends(),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict_list = await JobService.get_job_list_service(auth=auth, search=search, order_by=page.order_by)
|
||||
result_dict = await PaginationService.paginate(data_list= result_dict_list, page_no= page.page_no, page_size = page.page_size)
|
||||
@@ -45,7 +45,7 @@ async def get_obj_list_controller(
|
||||
@JobRouter.post("/create", summary="创建定时任务", description="创建定时任务")
|
||||
async def create_obj_controller(
|
||||
data: JobCreateSchema,
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:create"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:create"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await JobService.create_job_service(auth=auth, data=data)
|
||||
logger.info(f"创建定时任务成功: {result_dict}")
|
||||
@@ -55,7 +55,7 @@ async def create_obj_controller(
|
||||
async def update_obj_controller(
|
||||
data: JobUpdateSchema,
|
||||
id: int = Path(..., description="定时任务ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:update"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:update"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await JobService.update_job_service(auth=auth, id=id, data=data)
|
||||
logger.info(f"修改定时任务成功: {result_dict}")
|
||||
@@ -64,7 +64,7 @@ async def update_obj_controller(
|
||||
@JobRouter.delete("/delete", summary="删除定时任务", description="删除定时任务")
|
||||
async def delete_obj_controller(
|
||||
ids: list[int] = Body(..., description="ID列表"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:delete"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:delete"]))
|
||||
) -> JSONResponse:
|
||||
await JobService.delete_job_service(auth=auth, ids=ids)
|
||||
logger.info(f"删除定时任务成功: {ids}")
|
||||
@@ -73,7 +73,7 @@ async def delete_obj_controller(
|
||||
@JobRouter.post('/export', summary="导出定时任务", description="导出定时任务")
|
||||
async def export_obj_list_controller(
|
||||
search: JobQueryParam = Depends(),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:export"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:export"]))
|
||||
) -> StreamingResponse:
|
||||
# 获取全量数据
|
||||
result_dict_list = await JobService.get_job_list_service(search=search, auth=auth)
|
||||
@@ -90,7 +90,7 @@ async def export_obj_list_controller(
|
||||
|
||||
@JobRouter.delete("/clear", summary="清空定时任务日志", description="清空定时任务日志")
|
||||
async def clear_obj_log_controller(
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:delete"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:delete"]))
|
||||
) -> JSONResponse:
|
||||
await JobService.clear_job_service(auth=auth)
|
||||
logger.info(f"清空定时任务成功")
|
||||
@@ -100,13 +100,13 @@ async def clear_obj_log_controller(
|
||||
async def option_obj_controller(
|
||||
id: int = Body(..., description="定时任务ID"),
|
||||
option: int = Body(..., description="操作类型 1: 暂停 2: 恢复 3: 重启"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:update"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:update"]))
|
||||
) -> JSONResponse:
|
||||
await JobService.option_job_service(auth=auth, id=id, option=option)
|
||||
logger.info(f"操作定时任务成功: {id}")
|
||||
return SuccessResponse(msg="操作定时任务成功")
|
||||
|
||||
@JobRouter.get("/log", summary="获取定时任务日志", description="获取定时任务日志", dependencies=[Depends(AuthPermission(["monitor:job:query"]))])
|
||||
@JobRouter.get("/log", summary="获取定时任务日志", description="获取定时任务日志", dependencies=[Depends(AuthPermission(["app:job:query"]))])
|
||||
async def get_job_log_controller():
|
||||
data = [
|
||||
{
|
||||
@@ -134,7 +134,7 @@ async def get_job_log_controller():
|
||||
@JobRouter.get("/log/detail/{id}", summary="获取定时任务日志详情", description="获取定时任务日志详情")
|
||||
async def get_job_log_detail_controller(
|
||||
id: int = Path(..., description="定时任务日志ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await JobLogService.get_job_log_detail_service(id=id, auth=auth)
|
||||
logger.info(f"获取定时任务日志详情成功 {id}")
|
||||
@@ -145,7 +145,7 @@ async def get_job_log_detail_controller(
|
||||
async def get_job_log_list_controller(
|
||||
page: PaginationQueryParam = Depends(),
|
||||
search: JobLogQueryParam = Depends(),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:query"]))
|
||||
) -> JSONResponse:
|
||||
order_by = [{"create_time": "desc"}]
|
||||
result_dict_list = await JobLogService.get_job_log_list_service(auth=auth, search=search, order_by=order_by)
|
||||
@@ -157,7 +157,7 @@ async def get_job_log_list_controller(
|
||||
@JobRouter.delete("/log/delete", summary="删除定时任务日志", description="删除定时任务日志")
|
||||
async def delete_job_log_controller(
|
||||
ids: list[int] = Body(..., description="ID列表"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:delete"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:delete"]))
|
||||
) -> JSONResponse:
|
||||
await JobLogService.delete_job_log_service(auth=auth, ids=ids)
|
||||
logger.info(f"删除定时任务日志成功: {ids}")
|
||||
@@ -166,7 +166,7 @@ async def delete_job_log_controller(
|
||||
|
||||
@JobRouter.delete("/log/clear", summary="清空定时任务日志", description="清空定时任务日志")
|
||||
async def clear_job_log_controller(
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:delete"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:delete"]))
|
||||
) -> JSONResponse:
|
||||
await JobLogService.clear_job_log_service(auth=auth)
|
||||
logger.info(f"清空定时任务日志成功")
|
||||
@@ -176,7 +176,7 @@ async def clear_job_log_controller(
|
||||
@JobRouter.post('/log/export', summary="导出定时任务日志", description="导出定时任务日志")
|
||||
async def export_job_log_list_controller(
|
||||
search: JobLogQueryParam = Depends(),
|
||||
auth: AuthSchema = Depends(AuthPermission(["monitor:job:export"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:job:export"]))
|
||||
) -> StreamingResponse:
|
||||
# 获取全量数据
|
||||
result_dict_list = await JobLogService.get_job_log_list_service(search=search, auth=auth)
|
||||
+3
-3
@@ -12,7 +12,7 @@ class JobModel(CreatorMixin):
|
||||
"""
|
||||
定时任务调度表
|
||||
"""
|
||||
__tablename__ = 'monitor_job'
|
||||
__tablename__ = 'app_job'
|
||||
__table_args__ = ({'comment': '定时任务调度表'})
|
||||
|
||||
name: Mapped[Optional[str]] = mapped_column(String(64), nullable=True, default='', comment='任务名称')
|
||||
@@ -35,7 +35,7 @@ class JobLogModel(MappedBase):
|
||||
"""
|
||||
定时任务调度日志表
|
||||
"""
|
||||
__tablename__ = 'monitor_job_log'
|
||||
__tablename__ = 'app_job_log'
|
||||
__table_args__ = ({'comment': '定时任务调度日志表'})
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True, comment='主键ID')
|
||||
@@ -48,7 +48,7 @@ class JobLogModel(MappedBase):
|
||||
job_trigger: Mapped[Optional[str]] = mapped_column(String(255),nullable=True,default='',comment='任务触发器')
|
||||
job_message: Mapped[Optional[str]] = mapped_column(String(500),nullable=True,default='',comment='日志信息')
|
||||
exception_info: Mapped[Optional[str]] = mapped_column(String(2000),nullable=True,default='',comment='异常信息')
|
||||
job_id: Mapped[Optional[int]] = mapped_column(ForeignKey('monitor_job.id'), comment='任务ID')
|
||||
job_id: Mapped[Optional[int]] = mapped_column(ForeignKey('app_job.id'), comment='任务ID')
|
||||
status: Mapped[bool] = mapped_column(Boolean(), default=True, nullable=False, comment="是否启用(True:启用 False:禁用)")
|
||||
create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|
||||
# 任务关联关系
|
||||
@@ -24,7 +24,7 @@ MyAppRouter = APIRouter(route_class=OperationLogRoute, prefix="/myapp", tags=["
|
||||
@MyAppRouter.get("/detail/{id}", summary="获取应用详情", description="获取应用详情")
|
||||
async def get_obj_detail_controller(
|
||||
id: int = Path(..., description="应用ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["application:myapp:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:myapp:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await ApplicationService.detail_service(id=id, auth=auth)
|
||||
logger.info(f"获取应用详情成功 {id}")
|
||||
@@ -34,7 +34,7 @@ async def get_obj_detail_controller(
|
||||
async def get_obj_list_controller(
|
||||
page: PaginationQueryParam = Depends(),
|
||||
search: ApplicationQueryParam = Depends(),
|
||||
auth: AuthSchema = Depends(AuthPermission(["application:myapp:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:myapp:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict_list = await ApplicationService.list_service(auth=auth, search=search, order_by=page.order_by)
|
||||
result_dict = await PaginationService.paginate(data_list=result_dict_list, page_no=page.page_no, page_size=page.page_size)
|
||||
@@ -44,7 +44,7 @@ async def get_obj_list_controller(
|
||||
@MyAppRouter.post("/create", summary="创建应用", description="创建应用")
|
||||
async def create_obj_controller(
|
||||
data: ApplicationCreateSchema,
|
||||
auth: AuthSchema = Depends(AuthPermission(["application:myapp:create"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:myapp:create"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await ApplicationService.create_service(auth=auth, data=data)
|
||||
logger.info(f"创建应用成功: {result_dict}")
|
||||
@@ -54,7 +54,7 @@ async def create_obj_controller(
|
||||
async def update_obj_controller(
|
||||
data: ApplicationUpdateSchema,
|
||||
id: int = Path(..., description="应用ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["application:myapp:update"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:myapp:update"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await ApplicationService.update_service(auth=auth, id=id, data=data)
|
||||
logger.info(f"修改应用成功: {result_dict}")
|
||||
@@ -63,7 +63,7 @@ async def update_obj_controller(
|
||||
@MyAppRouter.delete("/delete", summary="删除应用", description="删除应用")
|
||||
async def delete_obj_controller(
|
||||
ids: list[int] = Body(..., description="ID列表"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["application:myapp:delete"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:myapp:delete"]))
|
||||
) -> JSONResponse:
|
||||
await ApplicationService.delete_service(auth=auth, ids=ids)
|
||||
logger.info(f"删除应用成功: {ids}")
|
||||
@@ -72,7 +72,7 @@ async def delete_obj_controller(
|
||||
@MyAppRouter.patch("/available/setting", summary="批量修改应用状态", description="批量修改应用状态")
|
||||
async def batch_set_available_obj_controller(
|
||||
data: BatchSetAvailable,
|
||||
auth: AuthSchema = Depends(AuthPermission(["application:myapp:patch"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["app:myapp:patch"]))
|
||||
) -> JSONResponse:
|
||||
await ApplicationService.set_available_service(auth=auth, data=data)
|
||||
logger.info(f"批量修改应用状态成功: {data.ids}")
|
||||
|
||||
@@ -11,7 +11,7 @@ class ApplicationModel(CreatorMixin):
|
||||
应用系统表 - 用于管理分系统和外部应用
|
||||
"""
|
||||
|
||||
__tablename__ = 'application_myapp'
|
||||
__tablename__ = 'app_myapp'
|
||||
__table_args__ = ({'comment': '应用系统表'})
|
||||
|
||||
# 基本信息(必备字段)
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# 工作流接口-开发中...
|
||||
@@ -1,11 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from .demo.controller import DemoRouter
|
||||
|
||||
|
||||
ExampleRouter = APIRouter(prefix="/example")
|
||||
|
||||
# 包含所有子路由
|
||||
ExampleRouter.include_router(DemoRouter)
|
||||
@@ -2,9 +2,11 @@
|
||||
|
||||
from fastapi import APIRouter
|
||||
from .gencode.controller import GenRouter
|
||||
from .demo.controller import DemoRouter
|
||||
|
||||
# 创建代码生成模块路由
|
||||
GeneratorRouter = APIRouter(prefix="/generator")
|
||||
|
||||
# 包含代码生成路由
|
||||
GeneratorRouter.include_router(GenRouter)
|
||||
GeneratorRouter.include_router(GenRouter)
|
||||
GeneratorRouter.include_router(DemoRouter)
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
+9
-9
@@ -26,7 +26,7 @@ DemoRouter = APIRouter(route_class=OperationLogRoute, prefix="/demo", tags=["示
|
||||
@DemoRouter.get("/detail/{id}", summary="获取示例详情", description="获取示例详情")
|
||||
async def get_obj_detail_controller(
|
||||
id: int = Path(..., description="示例ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["demo:example:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["generator:demo:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await DemoService.detail_service(id=id, auth=auth)
|
||||
logger.info(f"获取示例详情成功 {id}")
|
||||
@@ -36,7 +36,7 @@ async def get_obj_detail_controller(
|
||||
async def get_obj_list_controller(
|
||||
page: PaginationQueryParam = Depends(),
|
||||
search: DemoQueryParam = Depends(),
|
||||
auth: AuthSchema = Depends(AuthPermission(["demo:example:query"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["generator:demo:query"]))
|
||||
) -> JSONResponse:
|
||||
result_dict_list = await DemoService.list_service(auth=auth, search=search, order_by=page.order_by)
|
||||
result_dict = await PaginationService.paginate(data_list=result_dict_list, page_no=page.page_no, page_size=page.page_size)
|
||||
@@ -46,7 +46,7 @@ async def get_obj_list_controller(
|
||||
@DemoRouter.post("/create", summary="创建示例", description="创建示例")
|
||||
async def create_obj_controller(
|
||||
data: DemoCreateSchema,
|
||||
auth: AuthSchema = Depends(AuthPermission(["demo:example:create"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["generator:demo:create"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await DemoService.create_service(auth=auth, data=data)
|
||||
logger.info(f"创建示例成功: {result_dict.get('name')}")
|
||||
@@ -56,7 +56,7 @@ async def create_obj_controller(
|
||||
async def update_obj_controller(
|
||||
data: DemoUpdateSchema,
|
||||
id: int = Path(..., description="示例ID"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["demo:example:update"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["generator:demo:update"]))
|
||||
) -> JSONResponse:
|
||||
result_dict = await DemoService.update_service(auth=auth, id=id, data=data)
|
||||
logger.info(f"修改示例成功: {result_dict.get('name')}")
|
||||
@@ -65,7 +65,7 @@ async def update_obj_controller(
|
||||
@DemoRouter.delete("/delete", summary="删除示例", description="删除示例")
|
||||
async def delete_obj_controller(
|
||||
ids: list[int] = Body(..., description="ID列表"),
|
||||
auth: AuthSchema = Depends(AuthPermission(["demo:example:delete"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["generator:demo:delete"]))
|
||||
) -> JSONResponse:
|
||||
await DemoService.delete_service(auth=auth, ids=ids)
|
||||
logger.info(f"删除示例成功: {ids}")
|
||||
@@ -74,7 +74,7 @@ async def delete_obj_controller(
|
||||
@DemoRouter.patch("/available/setting", summary="批量修改示例状态", description="批量修改示例状态")
|
||||
async def batch_set_available_obj_controller(
|
||||
data: BatchSetAvailable,
|
||||
auth: AuthSchema = Depends(AuthPermission(["demo:example:patch"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["generator:demo:patch"]))
|
||||
) -> JSONResponse:
|
||||
await DemoService.set_available_service(auth=auth, data=data)
|
||||
logger.info(f"批量修改示例状态成功: {data.ids}")
|
||||
@@ -83,7 +83,7 @@ async def batch_set_available_obj_controller(
|
||||
@DemoRouter.post('/export', summary="导出示例", description="导出示例")
|
||||
async def export_obj_list_controller(
|
||||
search: DemoQueryParam = Depends(),
|
||||
auth: AuthSchema = Depends(AuthPermission(["demo:example:export"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["generator:demo:export"]))
|
||||
) -> StreamingResponse:
|
||||
# 获取全量数据
|
||||
result_dict_list = await DemoService.list_service(search=search, auth=auth)
|
||||
@@ -101,13 +101,13 @@ async def export_obj_list_controller(
|
||||
@DemoRouter.post('/import', summary="导入示例", description="导入示例")
|
||||
async def import_obj_list_controller(
|
||||
file: UploadFile,
|
||||
auth: AuthSchema = Depends(AuthPermission(["demo:example:import"]))
|
||||
auth: AuthSchema = Depends(AuthPermission(["generator:demo:import"]))
|
||||
) -> JSONResponse:
|
||||
batch_import_result = await DemoService.batch_import_service(file=file, auth=auth, update_support=True)
|
||||
logger.info(f"导入示例成功: {batch_import_result}")
|
||||
return SuccessResponse(data=batch_import_result, msg="导入示例成功")
|
||||
|
||||
@DemoRouter.post('/download/template', summary="获取示例导入模板", description="获取示例导入模板", dependencies=[Depends(AuthPermission(["demo:example:download"]))])
|
||||
@DemoRouter.post('/download/template', summary="获取示例导入模板", description="获取示例导入模板", dependencies=[Depends(AuthPermission(["generator:demo:download"]))])
|
||||
async def export_obj_template_controller() -> StreamingResponse:
|
||||
example_import_template_result = await DemoService.import_template_download_service()
|
||||
logger.info('获取示例导入模板成功')
|
||||
+1
-1
@@ -11,7 +11,7 @@ class DemoModel(CreatorMixin):
|
||||
"""
|
||||
示例表
|
||||
"""
|
||||
__tablename__ = 'example_demo'
|
||||
__tablename__ = 'gen_demo'
|
||||
__table_args__ = ({'comment': '示例表'})
|
||||
|
||||
name: Mapped[Optional[str]] = mapped_column(String(64), nullable=True, default='', comment='名称')
|
||||
@@ -3,7 +3,6 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
from .cache.controller import CacheRouter
|
||||
from .job.controller import JobRouter
|
||||
from .online.controller import OnlineRouter
|
||||
from .server.controller import ServerRouter
|
||||
from .resource.controller import ResourceRouter
|
||||
@@ -13,7 +12,6 @@ MonitorRouter = APIRouter(prefix="/monitor")
|
||||
|
||||
# 包含所有子路由
|
||||
MonitorRouter.include_router(CacheRouter)
|
||||
MonitorRouter.include_router(JobRouter)
|
||||
MonitorRouter.include_router(OnlineRouter)
|
||||
MonitorRouter.include_router(ServerRouter)
|
||||
MonitorRouter.include_router(ResourceRouter)
|
||||
Reference in New Issue
Block a user