1.实现获取门禁识别率接口

This commit is contained in:
haotian 2025-08-01 11:36:01 +08:00
parent d248154c37
commit 0912e75abd
3 changed files with 38 additions and 1 deletions

View File

@ -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'))]

View File

@ -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 = (

View File

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