129 lines
6.6 KiB
Python
129 lines
6.6 KiB
Python
from contextlib import asynccontextmanager
|
|
from fastapi import FastAPI
|
|
from config.env import AppConfig
|
|
from config.get_db import init_create_table
|
|
from config.get_redis import RedisUtil
|
|
from config.get_scheduler import SchedulerUtil
|
|
from exceptions.handle import handle_exception
|
|
from middlewares.handle import handle_middleware
|
|
from module_admin.controller.cache_controller import cacheController
|
|
from module_admin.controller.captcha_controller import captchaController
|
|
from module_admin.controller.common_controller import commonController
|
|
from module_admin.controller.config_controller import configController
|
|
from module_admin.controller.dept_controller import deptController
|
|
from module_admin.controller.dict_controller import dictController
|
|
from module_admin.controller.log_controller import logController
|
|
from module_admin.controller.login_controller import loginController
|
|
from module_admin.controller.job_controller import jobController
|
|
from module_admin.controller.menu_controller import menuController
|
|
from module_admin.controller.notice_controller import noticeController
|
|
from module_admin.controller.online_controller import onlineController
|
|
from module_admin.controller.post_controler import postController
|
|
from module_admin.controller.role_controller import roleController
|
|
from module_admin.controller.server_controller import serverController
|
|
from module_admin.controller.user_controller import userController
|
|
from module_admin.controller.test_controller import testController
|
|
from module_admin.controller.words_controller import wordsController
|
|
from module_admin.controller.info_controller import infoController
|
|
from module_generator.controller.gen_controller import genController
|
|
from module_admin.controller.message_controller import messageController
|
|
from module_admin.controller.robot_role_pairing_controller import pairingController
|
|
from module_admin.controller.explanation_content_controller import explanationContentController
|
|
from module_admin.controller.explanation_style_robot_pair_controller import explanation_style_robot_pairController
|
|
from module_admin.controller.sys_statistics_controller import sys_statisticsController
|
|
from module_admin.controller.identification_statistics_controller import identification_statisticsController
|
|
# from module_admin.controller.identify_record_controller import identify_recordController
|
|
from module_admin.controller.ragflow_controller import ragflowController
|
|
from module_admin.controller.robot_action_controller import robot_actionController
|
|
from module_admin.controller.identification_record_controller import identification_recordController
|
|
from module_admin.controller.door_controller import doorController
|
|
from module_admin.controller.haikang_controller import haikang_controller
|
|
from module_admin.controller.sys_alert_controller import sys_alertController
|
|
from module_admin.controller.compreface_controller import comprefaceController
|
|
|
|
from sub_applications.handle import handle_sub_applications
|
|
from utils.common_util import worship
|
|
from utils.log_util import logger
|
|
from module_admin.controller.scheduler_controller import init_scheduled_tasks
|
|
|
|
|
|
# 生命周期事件
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
logger.info(f'{AppConfig.app_name}开始启动')
|
|
worship()
|
|
await init_create_table()
|
|
app.state.redis = await RedisUtil.create_redis_pool()
|
|
await RedisUtil.init_sys_dict(app.state.redis)
|
|
await RedisUtil.init_sys_config(app.state.redis)
|
|
await SchedulerUtil.init_system_scheduler()
|
|
# 初始化自定义定时任务
|
|
# init_scheduled_tasks()
|
|
logger.info(f'{AppConfig.app_name}启动成功')
|
|
yield
|
|
await RedisUtil.close_redis_pool(app)
|
|
await SchedulerUtil.close_system_scheduler()
|
|
|
|
|
|
# 初始化FastAPI对象
|
|
app = FastAPI(
|
|
title=AppConfig.app_name,
|
|
description=f'{AppConfig.app_name}接口文档',
|
|
version=AppConfig.app_version,
|
|
lifespan=lifespan,
|
|
docs_url=AppConfig.app_docs_url,
|
|
redoc_url=AppConfig.app_redoc_url,
|
|
openapi_url=AppConfig.app_openapi_url,
|
|
)
|
|
|
|
|
|
# 挂载子应用
|
|
handle_sub_applications(app)
|
|
# 加载中间件处理方法
|
|
handle_middleware(app)
|
|
# 加载全局异常处理方法
|
|
handle_exception(app)
|
|
|
|
|
|
# 加载路由列表
|
|
controller_list = [
|
|
{'router': loginController, 'tags': ['登录模块']},
|
|
{'router': captchaController, 'tags': ['验证码模块']},
|
|
{'router': userController, 'tags': ['系统管理-用户管理']},
|
|
{'router': roleController, 'tags': ['系统管理-角色管理']},
|
|
{'router': menuController, 'tags': ['系统管理-菜单管理']},
|
|
# {'router': deptController, 'tags': ['系统管理-部门管理']},
|
|
# {'router': postController, 'tags': ['系统管理-岗位管理']},
|
|
{'router': dictController, 'tags': ['系统管理-字典管理']},
|
|
# {'router': configController, 'tags': ['系统管理-参数管理']},
|
|
# {'router': noticeController, 'tags': ['系统管理-通知公告管理']},
|
|
{'router': logController, 'tags': ['系统管理-日志管理']},
|
|
{'router': onlineController, 'tags': ['系统监控-在线用户']},
|
|
{'router': jobController, 'tags': ['系统监控-定时任务']},
|
|
{'router': serverController, 'tags': ['系统监控-菜单管理']},
|
|
# {'router': cacheController, 'tags': ['系统监控-缓存监控']},
|
|
{'router': commonController, 'tags': ['通用模块']},
|
|
{'router': genController, 'tags': ['代码生成']},
|
|
# {'router': testController, 'tags': ['测试模块']},
|
|
{'router': wordsController, 'tags': ['引导词管理']},
|
|
{'router': infoController, 'tage':['机器人信息管理']},
|
|
{'router': messageController, 'tags': ['消息管理']},
|
|
{'router': pairingController, 'tags': ['机器人角色']},
|
|
{'router': explanationContentController, 'tags': ['讲解管理']},
|
|
{'router': explanation_style_robot_pairController, 'tags': ['讲解风格管理']},
|
|
{'router': sys_statisticsController, 'tags': ['系统统计数据管理']},
|
|
# {'router': identify_recordController, 'tags': ['识别记录管理']},
|
|
{'router': ragflowController, 'tags': ['ragflow管理']},
|
|
{'router': robot_actionController, 'tags': ['机器人动作管理']},
|
|
{'router': identification_recordController, 'tags': ['识别记录管理']},
|
|
{'router': doorController, 'tags': ['门禁设备管理']},
|
|
{'router': identification_statisticsController, 'tags': ['识别统计管理']},
|
|
{'router': haikang_controller, 'tags': ['海康']},
|
|
{'router': comprefaceController, 'tags': ['人脸识别管理']},
|
|
# {'router': sys_alertController, 'tags': ['系统告警消息']}
|
|
|
|
]
|
|
|
|
for controller in controller_list:
|
|
app.include_router(router=controller.get('router'), tags=controller.get('tags'))
|