|
@@ -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))
|