Browse Source

查询电池电量修改筛选

zhangdongming 4 months ago
parent
commit
b3aa658266
1 changed files with 10 additions and 3 deletions
  1. 10 3
      Controller/UserDevice/DeviceReportController.py

+ 10 - 3
Controller/UserDevice/DeviceReportController.py

@@ -56,17 +56,22 @@ class DeviceReportView(View):
         if operation == 'getBatteryCapacityList':  # 获取电池电量列表
         if operation == 'getBatteryCapacityList':  # 获取电池电量列表
             return self.get_battery_capacity_list(userID, request, request_dict, response)
             return self.get_battery_capacity_list(userID, request, request_dict, response)
         elif operation == 'getWakeSleepData':
         elif operation == 'getWakeSleepData':
-            return self.get_wake_sleep_data(response)
+            return self.get_wake_sleep_data(userID, request_dict, response)
 
 
     @classmethod
     @classmethod
-    def get_wake_sleep_data(cls, response):
+    def get_wake_sleep_data(cls, userID, request_dict, response):
         """
         """
         获取设备睡眠唤醒统计数据
         获取设备睡眠唤醒统计数据
+        :param userID: 响应对象
+        :param request_dict: 参数对象
         :param response: 响应对象
         :param response: 响应对象
         :return: 包含7天汇总统计和30天明细数据的JSON响应
         :return: 包含7天汇总统计和30天明细数据的JSON响应
         """
         """
         try:
         try:
             # region 时间参数计算
             # region 时间参数计算
+            uid = request_dict.get('device_id', None)
+            if not uid:
+                return response.json(444)
             current_time = int(time.time())
             current_time = int(time.time())
             SECONDS_PER_DAY = 24 * 60 * 60  # 单日秒数常量
             SECONDS_PER_DAY = 24 * 60 * 60  # 单日秒数常量
 
 
@@ -78,6 +83,7 @@ class DeviceReportView(View):
             # region 7天汇总统计 (使用Coalesce避免空值)
             # region 7天汇总统计 (使用Coalesce避免空值)
 
 
             seven_days_stats = DeviceDailyReport.objects.filter(
             seven_days_stats = DeviceDailyReport.objects.filter(
+                device_id=uid,
                 report_time__range=(seven_days_ago, current_time)  # 时间范围查询
                 report_time__range=(seven_days_ago, current_time)  # 时间范围查询
             ).aggregate(
             ).aggregate(
                 total_human_detection=Coalesce(Sum('human_detection'), Value(0)),
                 total_human_detection=Coalesce(Sum('human_detection'), Value(0)),
@@ -88,6 +94,7 @@ class DeviceReportView(View):
 
 
             # region 30天明细数据(按时间倒序)
             # region 30天明细数据(按时间倒序)
             thirty_days_details = DeviceDailyReport.objects.filter(
             thirty_days_details = DeviceDailyReport.objects.filter(
+                device_id=uid,
                 report_time__gte=thirty_days_ago,
                 report_time__gte=thirty_days_ago,
                 report_time__lte=current_time
                 report_time__lte=current_time
             ).order_by('-report_time').values_list(
             ).order_by('-report_time').values_list(
@@ -109,7 +116,7 @@ class DeviceReportView(View):
             return response.json(0, result_data)
             return response.json(0, result_data)
 
 
         except Exception as e:
         except Exception as e:
-            error_msg = f"查询异常: {str(e)}"
+            error_msg = f"查询异常: {str(e)},userID: {userID}"
             error_line = e.__traceback__.tb_lineno
             error_line = e.__traceback__.tb_lineno
             LOGGER.error(f"{error_msg} 行号: {error_line}")
             LOGGER.error(f"{error_msg} 行号: {error_line}")