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):