From 90cb9aaf0d09a75899cdf31f6a192aeb4581830d Mon Sep 17 00:00:00 2001 From: ytqh Date: Sat, 29 Mar 2025 21:03:57 +0800 Subject: [PATCH] remove date filter in risk stats --- api/controllers/admin/stats/stats.py | 28 ---------------------------- api/services/stats_service.py | 14 +++++--------- 2 files changed, 5 insertions(+), 37 deletions(-) diff --git a/api/controllers/admin/stats/stats.py b/api/controllers/admin/stats/stats.py index e192aca27f..06688ea16b 100644 --- a/api/controllers/admin/stats/stats.py +++ b/api/controllers/admin/stats/stats.py @@ -20,19 +20,6 @@ class RiskStats(Resource): description: Get counts of users at different risk levels and their changes security: - ApiKeyAuth: [] - parameters: - - name: start_date - in: query - type: string - format: date - required: true - description: Start date of the statistics period (YYYY-MM-DD) - - name: end_date - in: query - type: string - format: date - required: true - description: End date of the statistics period (YYYY-MM-DD) responses: 200: description: Risk statistics retrieved successfully @@ -59,23 +46,8 @@ class RiskStats(Resource): description: Invalid date parameters """ try: - # Parse date parameters - start_date_str = request.args.get('start_date') - end_date_str = request.args.get('end_date') - - if not start_date_str or not end_date_str: - raise BadRequest("start_date and end_date are required") - - try: - end_date = datetime.strptime(end_date_str, '%Y-%m-%d') - start_date = datetime.strptime(start_date_str, '%Y-%m-%d') - except ValueError: - raise BadRequest("Invalid date format. Use YYYY-MM-DD") - # Get risk statistics from service risk_stats = StatsService.get_risk_stats( - start_date=start_date, - end_date=end_date, app_id=app_model.id, organization_id=account.current_organization_id, ) diff --git a/api/services/stats_service.py b/api/services/stats_service.py index cd0a2ac19d..7f973e2241 100644 --- a/api/services/stats_service.py +++ b/api/services/stats_service.py @@ -8,9 +8,7 @@ from sqlalchemy import and_, distinct, func class StatsService: @staticmethod - def get_risk_stats( - start_date: datetime, end_date: datetime, app_id: Optional[str] = None, organization_id: Optional[str] = None - ) -> Dict[str, Any]: + def get_risk_stats(app_id: Optional[str] = None, organization_id: Optional[str] = None) -> Dict[str, Any]: """ Get statistics about high risk users @@ -24,10 +22,8 @@ class StatsService: Dictionary containing high risk user count and changes """ # Build query with filters - high_risk_query = db.session.query(EndUser).filter( - EndUser.health_status == 'critical', EndUser.updated_at >= start_date, EndUser.updated_at <= end_date - ) - total_query = db.session.query(EndUser).filter(EndUser.updated_at >= start_date, EndUser.updated_at <= end_date) + high_risk_query = db.session.query(EndUser).filter(EndUser.health_status == 'critical') + total_query = db.session.query(EndUser) # Apply app_id filter if provided if app_id: @@ -43,7 +39,7 @@ class StatsService: total_count = total_query.count() # Get yesterday's count - yesterday = end_date - timedelta(days=1) + yesterday = datetime.now() - timedelta(days=1) yesterday_query = db.session.query(EndUser).filter( EndUser.health_status == 'critical', EndUser.updated_at <= yesterday ) @@ -59,7 +55,7 @@ class StatsService: yesterday_high_risk_count = yesterday_query.count() # Get last week's count - last_week = end_date - timedelta(days=7) + last_week = datetime.now() - timedelta(days=7) last_week_query = db.session.query(EndUser).filter( EndUser.health_status == 'critical', EndUser.updated_at <= last_week )