Răsfoiți Sursa

查询子设备记录数据接口分页

locky 3 ani în urmă
părinte
comite
f8c4792666
1 a modificat fișierele cu 18 adăugiri și 9 ștergeri
  1. 18 9
      Controller/SensorGateway/SubDeviceController.py

+ 18 - 9
Controller/SensorGateway/SubDeviceController.py

@@ -39,7 +39,7 @@ class GatewaySubDeviceView(View):
         elif operation == 'query':  # 查询子设备
             return self.query(request_dict, user_id, response)
         elif operation == 'update':  # 更新子设备信息
-            return self.sensor_update(user_id, request_dict, response)
+            return self.sensor_update(request_dict, response)
         elif operation == 'delete':  # 删除子设备
             return self.delete(request_dict, user_id, response)
         elif operation == 'records':  # 查询子设备记录数据
@@ -127,10 +127,9 @@ class GatewaySubDeviceView(View):
             return response.json(500, repr(e))
 
     @classmethod
-    def sensor_update(cls, user_id, request_dict, response):
+    def sensor_update(cls, request_dict, response):
         """
         传感器修改
-        @param user_id: 登录用户id
         @param request_dict: 请求参数
         @request_dict gateway_sub_id: 子设备id
         @request_dict nickName: 设备名
@@ -183,6 +182,8 @@ class GatewaySubDeviceView(View):
         @param request_dict: 请求参数
         @request_dict subDeviceId: 子设备id
         @request_dict cycle: 时间周期
+        @request_dict page: 页数
+        @request_dict size: 条数
         @param response: 响应对象
         @return: response
         """
@@ -193,8 +194,14 @@ class GatewaySubDeviceView(View):
         now_time = int(time.time())
         try:
             if not cycle:
+                page = request_dict.get('page', None)
+                size = request_dict.get('size', None)
+                if not all([page, size]):
+                    return response.json(444)
+                page, size = int(page), int(size)
                 sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id). \
-                    values('alarm', 'event_type', 'created_time').order_by('-created_time')
+                                       values('alarm', 'created_time').order_by('-created_time')[
+                                   (page - 1) * size:page * size]
                 if not sensor_record_qs.exists():
                     return response.json(0)
                 return response.json(0, list(sensor_record_qs))
@@ -202,8 +209,9 @@ class GatewaySubDeviceView(View):
                 record_dict = {}
                 record_list = []
                 if cycle == '24 hours':
-                    start_time = now_time - 24*60*60
-                    sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id, created_time__range=(start_time, now_time)). \
+                    start_time = now_time - 24 * 60 * 60
+                    sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id,
+                                                                   created_time__range=(start_time, now_time)). \
                         values('alarm', 'created_time').order_by('-created_time')
                     if not sensor_record_qs.exists():
                         return response.json(0)
@@ -222,8 +230,9 @@ class GatewaySubDeviceView(View):
                             record_dict[str(hour)] = [alarm]
 
                 elif cycle == 'Week':
-                    start_time = now_time - 24*60*60*7
-                    sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id, created_time__range=(start_time, now_time)). \
+                    start_time = now_time - 24 * 60 * 60 * 7
+                    sensor_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id,
+                                                                   created_time__range=(start_time, now_time)). \
                         values('alarm', 'created_time').order_by('-created_time')
                     if not sensor_record_qs.exists():
                         return response.json(0)
@@ -260,7 +269,7 @@ class GatewaySubDeviceView(View):
 
                 # 组织响应数据列表,value为每 小时/天 的平均值
                 for k, v in record_dict.items():
-                    record_list.append({'key': k, 'value': round(sum(v)/len(v), 1)})
+                    record_list.append({'key': k, 'value': round(sum(v) / len(v), 1)})
                 return response.json(0, record_list)
         except Exception as e:
             return response.json(500, repr(e))