From 64f476acdf75403b25c0b4a413de02b1a1356638 Mon Sep 17 00:00:00 2001 From: haotian <2421912570@qq.com> Date: Thu, 11 Sep 2025 11:19:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=8E=B7=E5=8F=96=E6=9C=BA?= =?UTF-8?q?=E5=99=A8=E4=BA=BA=E8=A7=86=E9=A2=91=E6=B5=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/door_controller.py | 9 +++++++++ .../module_admin/dao/info_dao.py | 20 +++++++++++++++++++ .../module_admin/service/door_service.py | 9 +++++++++ 3 files changed, 38 insertions(+) diff --git a/ruoyi-fastapi-backend/module_admin/controller/door_controller.py b/ruoyi-fastapi-backend/module_admin/controller/door_controller.py index f88f173..ec9cff7 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/door_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/door_controller.py @@ -100,6 +100,15 @@ async def get_door_status(request: Request, query_db: AsyncSession = Depends(get return ResponseUtil.error(msg=result[1]) +# 获取视频流地址 +@doorController.get('/video_uri/{robot_id}') +async def get_video_uri(request: Request + , robot_id: int + , query_db: AsyncSession = Depends(get_db) + ): + result = await DoorService.get_video_uri_service(robot_id, query_db) + return ResponseUtil.success(data=result) + # @doorController.get( # '/{id}', response_model=DoorModel, dependencies=[Depends(CheckUserInterfaceAuth('system:door:query'))] diff --git a/ruoyi-fastapi-backend/module_admin/dao/info_dao.py b/ruoyi-fastapi-backend/module_admin/dao/info_dao.py index 0e75867..0724b95 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/info_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/info_dao.py @@ -11,6 +11,26 @@ class InfoDao: """ 机器人信息模块数据库操作层 """ + + + @classmethod + async def get_video_uri(cls, robot_id: int, query_db: AsyncSession): + """根据机器人id获取视频流地址 + + Args: + robot_id (int): 机器人地址 + query_db (AsyncSession): _description_ + """ + stmt = ( + select(RobotInfo.video_uri) + .select_from(RobotInfo) + .where(RobotInfo.robot_id == robot_id) + ) + + result = await query_db.execute(stmt) + + return result.scalars().first() + @classmethod async def refresh_robot_by_ids(cls, db: AsyncSession, robot_ids: str): id_list = map(int, robot_ids.strip(" ").split(',')) diff --git a/ruoyi-fastapi-backend/module_admin/service/door_service.py b/ruoyi-fastapi-backend/module_admin/service/door_service.py index ea40213..70537ba 100644 --- a/ruoyi-fastapi-backend/module_admin/service/door_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/door_service.py @@ -4,6 +4,7 @@ from config.constant import CommonConstant from exceptions.exception import ServiceException from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.dao.door_dao import DoorDao +from module_admin.dao.info_dao import InfoDao from module_admin.entity.vo.door_vo import DeleteDoorModel, DoorModel, DoorPageQueryModel from utils.common_util import CamelCaseUtil from utils.excel_util import ExcelUtil @@ -15,6 +16,14 @@ class DoorService: 门禁设备模块服务层 """ + @classmethod + async def get_video_uri_service(cls, robot_id: int , query_db: AsyncSession): + """获取机器人视频流 + """ + video_uri = await InfoDao.get_video_uri(robot_id, query_db) + return video_uri + + @classmethod async def get_door_status_service(cls, query_db: AsyncSession): """获取门禁状态