diff --git a/api/api_v1/endpoints/dashboard.py b/api/api_v1/endpoints/dashboard.py index d98d58f..aa20429 100644 --- a/api/api_v1/endpoints/dashboard.py +++ b/api/api_v1/endpoints/dashboard.py @@ -162,7 +162,7 @@ async def edit_report(data_in: schemas.EditReport, """编辑报表""" res = await crud.dashboard.update_one(db, {'_id': data_in.id, 'reports.report_id': data_in.report.report_id}, - {'$set': {'reports.$': data_in.report.dict(skip_defaults=True)}}) + {'$set': {f'reports.$.{k}':v for k,v in data_in.report.dict(skip_defaults=True).items()}}) return schemas.Msg(code=0, msg='ok', data='ok') diff --git a/core/config.py b/core/config.py index 7a411c7..385bde5 100644 --- a/core/config.py +++ b/core/config.py @@ -288,6 +288,7 @@ class Settings(BaseSettings): 'total': lambda col, zone: func.toStartOfDay(func.addHours(col, zone)).label('date'), 'P1W': lambda col, zone: func.toStartOfWeek(func.addHours(col, zone)).label('date'), 'P1M': lambda col, zone: func.toStartOfMonth(func.addHours(col, zone)).label('date'), + 'HOUR': lambda col, zone: func.toHour(func.addHours(col, zone)).label('date'), } diff --git a/models/behavior_analysis.py b/models/behavior_analysis.py index d6ed3b7..9d03395 100644 --- a/models/behavior_analysis.py +++ b/models/behavior_analysis.py @@ -185,6 +185,10 @@ class BehaviorAnalysis: def _get_date_range(self) -> Tuple[str, str, list]: start_date: str = self.event_view.get('startTime') end_date: str = self.event_view.get('endTime') + if self.time_particle == 'HOUR': + date_range = [i for i in range(24)] + return start_date, end_date, date_range + date_range = pd.date_range(start_date, end_date, freq=settings.PROPHET_TIME_GRAIN_MAP[self.time_particle], tz='UTC').tolist() if self.time_particle in ('P1D', 'P1W', 'P1M'):