|
@@ -9,7 +9,7 @@ import time
|
|
|
|
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.db import transaction
|
|
from django.db import transaction
|
|
-from django.db.models import F, Q
|
|
|
|
|
|
+from django.db.models import F, Q, Count
|
|
from django.views import View
|
|
from django.views import View
|
|
|
|
|
|
from Model.models import FamilyRoomDevice, GatewaySubDevice, FamilyRoom, SmartScene, EffectiveTime, Device_Info, \
|
|
from Model.models import FamilyRoomDevice, GatewaySubDevice, FamilyRoom, SmartScene, EffectiveTime, Device_Info, \
|
|
@@ -52,6 +52,8 @@ class SmartSceneView(View):
|
|
return self.delete_smart_scene(request_dict, response)
|
|
return self.delete_smart_scene(request_dict, response)
|
|
elif operation == 'log': # 查询智能场景日志
|
|
elif operation == 'log': # 查询智能场景日志
|
|
return self.scene_log(request_dict, response)
|
|
return self.scene_log(request_dict, response)
|
|
|
|
+ elif operation == 'log-date':
|
|
|
|
+ return self.scene_log_date(request_dict, response)
|
|
else:
|
|
else:
|
|
return response.json(414)
|
|
return response.json(414)
|
|
|
|
|
|
@@ -546,7 +548,6 @@ class SmartSceneView(View):
|
|
return response.json(173)
|
|
return response.json(173)
|
|
serial_number = device_qs[0]['serial_number']
|
|
serial_number = device_qs[0]['serial_number']
|
|
|
|
|
|
-
|
|
|
|
task_list = []
|
|
task_list = []
|
|
for task in tasks_list:
|
|
for task in tasks_list:
|
|
task_temp = {
|
|
task_temp = {
|
|
@@ -685,3 +686,44 @@ class SmartSceneView(View):
|
|
except Exception as e:
|
|
except Exception as e:
|
|
print(repr(e))
|
|
print(repr(e))
|
|
return response.json(500, repr(e))
|
|
return response.json(500, repr(e))
|
|
|
|
+
|
|
|
|
+ @staticmethod
|
|
|
|
+ def scene_log_date(request_dict, response):
|
|
|
|
+ """
|
|
|
|
+ 查询场景日志日期
|
|
|
|
+ @param request_dict: 请求参数
|
|
|
|
+ @request_dict deviceId: 网关id
|
|
|
|
+ @request_dict subDeviceId: 子设备id
|
|
|
|
+ @param response: 响应对象
|
|
|
|
+ @return: response
|
|
|
|
+ """
|
|
|
|
+ device_id = request_dict.get('deviceId', None)
|
|
|
|
+ sub_device_id = request_dict.get('subDeviceId', None)
|
|
|
|
+
|
|
|
|
+ if device_id:
|
|
|
|
+ device_dict = {
|
|
|
|
+ 'device_id': device_id
|
|
|
|
+ }
|
|
|
|
+ else:
|
|
|
|
+ device_dict = {
|
|
|
|
+ 'sub_device_id': sub_device_id
|
|
|
|
+ }
|
|
|
|
+ if not any([device_id, sub_device_id]):
|
|
|
|
+ return response.json(444, {'error param': 'device_id and gatewaySubId'})
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ scene_log_qs = SceneLog.objects.extra(
|
|
|
|
+ select={'date': "FROM_UNIXTIME(created_time,'%%Y-%%m-%%d')"}).values('date'). \
|
|
|
|
+ filter(**device_dict). \
|
|
|
|
+ annotate(count=Count('created_time')). \
|
|
|
|
+ order_by('-date')[:31]
|
|
|
|
+ log_date_list = []
|
|
|
|
+ for scene_log in scene_log_qs:
|
|
|
|
+ log_date_list.append({
|
|
|
|
+ 'timestamp': CommonService.str_to_timestamp(scene_log['date'], '%Y-%m-%d'),
|
|
|
|
+ 'count': scene_log['count'],
|
|
|
|
+ 'format': scene_log['date'],
|
|
|
|
+ })
|
|
|
|
+ return response.json(0, log_date_list)
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response.json(500, repr(e))
|