From 0912e75abd0673594d826e10dee8b52dea287689 Mon Sep 17 00:00:00 2001 From: haotian <2421912570@qq.com> Date: Fri, 1 Aug 2025 11:36:01 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=AE=9E=E7=8E=B0=E8=8E=B7=E5=8F=96=E9=97=A8?= =?UTF-8?q?=E7=A6=81=E8=AF=86=E5=88=AB=E7=8E=87=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/sys_statistics_controller.py | 12 +++++++++++- .../module_admin/dao/sys_statistics_dao.py | 16 ++++++++++++++++ .../service/sys_statistics_service.py | 11 +++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/ruoyi-fastapi-backend/module_admin/controller/sys_statistics_controller.py b/ruoyi-fastapi-backend/module_admin/controller/sys_statistics_controller.py index 4dca9da..27eb7af 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/sys_statistics_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/sys_statistics_controller.py @@ -37,12 +37,22 @@ async def get_statistics_data( async def get_visitor_count( request: Request, day: int, - query_db: AsyncSession = Depends(get_db), ): data = await Sys_statisticsService.get_visitor_count_services(query_db, day) return ResponseUtil.success(data=data) +# 获取门禁识别成功率 +@sys_statisticsController.get( + '/access_control_success_rate/{day}' +) +async def get_access_control_success_rate( + request: Request, + day: int, + query_db: AsyncSession = Depends(get_db), +): + data = await Sys_statisticsService.get_access_control_success_rate_services(query_db, day) + return ResponseUtil.success(data=data) # @sys_statisticsController.get( # '/list', response_model=PageResponseModel # # , dependencies=[Depends(CheckUserInterfaceAuth('system:sys_statistics:list'))] diff --git a/ruoyi-fastapi-backend/module_admin/dao/sys_statistics_dao.py b/ruoyi-fastapi-backend/module_admin/dao/sys_statistics_dao.py index 9aae997..4daa510 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/sys_statistics_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/sys_statistics_dao.py @@ -11,6 +11,22 @@ class Sys_statisticsDao: 系统统计数据模块数据库操作层 """ + + @classmethod + async def get_access_control_success_rate(cls, db: AsyncSession, start_time: datetime, end_time: datetime): + stmt = ( + select(SysStatistics.access_control_success_rate, SysStatistics.stat_date) + .where( + and_( + SysStatistics.stat_date >= start_time, + SysStatistics.stat_date <= end_time + ) + ) + .order_by(desc(SysStatistics.stat_date)) + ) + + return (await db.execute(stmt)).mappings().all() + @classmethod async def get_visitor_count(cls, db: AsyncSession, start_time: date, end_time: date): stmt = ( diff --git a/ruoyi-fastapi-backend/module_admin/service/sys_statistics_service.py b/ruoyi-fastapi-backend/module_admin/service/sys_statistics_service.py index 5136e7d..2f418b2 100644 --- a/ruoyi-fastapi-backend/module_admin/service/sys_statistics_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/sys_statistics_service.py @@ -14,6 +14,17 @@ class Sys_statisticsService: """ 系统统计数据模块服务层 """ + + # 根据时间区间获取门禁识别成功率 + @classmethod + async def get_access_control_success_rate_services(cls, query_db: AsyncSession, day: int): + end_date = datetime.now().date() - timedelta(days=1) + start_date = end_date - timedelta(days=day) + result = await Sys_statisticsDao.get_access_control_success_rate(query_db, start_date, end_date) + return result + + + # 根据时间区间获取访客数量 @classmethod async def get_visitor_count_services(cls, query_db: AsyncSession, day: int):