瀏覽代碼

新增查询传感器记录日期接口

locky 3 年之前
父節點
當前提交
283545ebf4
共有 1 個文件被更改,包括 18 次插入6 次删除
  1. 18 6
      Controller/SensorGateway/SubDeviceController.py

+ 18 - 6
Controller/SensorGateway/SubDeviceController.py

@@ -8,11 +8,13 @@ import time
 from collections import OrderedDict
 
 from django.db import transaction
+from django.db.models import Count
 from django.views import View
 
 from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
+from Service.CommonService import CommonService
 
 
 class GatewaySubDeviceView(View):
@@ -46,7 +48,7 @@ class GatewaySubDeviceView(View):
             return self.records_tem_hum(request_dict, response)
         elif operation == 'records':  # 查询其他传感器记录
             return self.records(request_dict, response)
-        elif operation == 'recordsDate':  # 查询传感器记录日期
+        elif operation == 'records-date':  # 查询传感器记录日期
             return self.records_date(request_dict, response)
         else:
             return response.json(414)
@@ -324,12 +326,22 @@ class GatewaySubDeviceView(View):
         @return: response
         """
         sub_device_id = request_dict.get('gatewaySubId', None)
-        start_time = request_dict.get('startTime', None)
-        end_time = request_dict.get('endTime', None)
-        if not all([sub_device_id, start_time, end_time]):
-            return response.json(444, {'error param': 'gatewaySubId or startTime or endTime'})
+        if not sub_device_id:
+            return response.json(444, {'error param': 'gatewaySubId'})
 
         try:
-            return response.json(0)
+            sensor_record_qs = SensorRecord.objects.extra(
+                select={'date': "FROM_UNIXTIME(created_time,'%%Y-%%m-%%d')"}).values('date'). \
+                                   filter(gateway_sub_device_id=sub_device_id). \
+                                   annotate(count=Count('created_time')). \
+                                   order_by('-date')[:31]
+            record_date_list = []
+            for sensor_record in sensor_record_qs:
+                record_date_list.append({
+                    'timestamp': CommonService.str_to_timestamp(sensor_record['date'], '%Y-%m-%d'),
+                    'count': sensor_record['count'],
+                    'format': sensor_record['date'],
+                })
+            return response.json(0, record_date_list)
         except Exception as e:
             return response.json(500, repr(e))