|
@@ -11,7 +11,8 @@ import threading
|
|
|
import time
|
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import SwitchInfo, SwitchDimmingSettings, SwitchChronopher, Device_Info, SceneLog, FamilyRoomDevice
|
|
|
+from Model.models import SwitchDimmingSettings, SwitchChronopher, Device_Info, SceneLog, FamilyRoomDevice, \
|
|
|
+ SwitchOperateLog
|
|
|
from Service.CommonService import CommonService
|
|
|
from Object.ApschedulerObject import ApschedulerObject
|
|
|
from django.db import transaction
|
|
@@ -34,8 +35,10 @@ class SmartSwitchView(View):
|
|
|
|
|
|
def validation(self, request_dict, request, operation):
|
|
|
token_code, user_id, response = CommonService.verify_token_get_user_id(request_dict, request)
|
|
|
- if operation == 'switch-report-log': # 设备上报执行日志
|
|
|
- return self.create_log(request_dict, response)
|
|
|
+ if operation == 'switch-chronopher-log': # 设备上报排程日志
|
|
|
+ return self.create_chronopher_log(request_dict, response)
|
|
|
+ if operation == 'switch-operate-log': # 设备上报操作日志
|
|
|
+ return self.create_operate_log(request_dict, response)
|
|
|
elif operation == 'reset': # 设备重置
|
|
|
return self.reset(request_dict, response)
|
|
|
else:
|
|
@@ -386,13 +389,15 @@ class SmartSwitchView(View):
|
|
|
@param task_id: 任务id
|
|
|
@return: response
|
|
|
"""
|
|
|
+ now_time = int(time.time())
|
|
|
+ msg['implementTime'] = now_time
|
|
|
result = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
|
|
|
LOGGER.info('定时发送mqtt结果:{},参数:{},{},{},{},{},线程:{},进程:{}'.format(result, serial_number, topic_name, msg,
|
|
|
- int(time.time()), task_id,
|
|
|
+ now_time, task_id,
|
|
|
threading.get_ident(), os.getpid()))
|
|
|
|
|
|
@staticmethod
|
|
|
- def create_log(request_dict, response):
|
|
|
+ def create_chronopher_log(request_dict, response):
|
|
|
"""
|
|
|
生成执行日志
|
|
|
@param request_dict: 请求参数
|
|
@@ -404,10 +409,11 @@ class SmartSwitchView(View):
|
|
|
"""
|
|
|
serial_number = request_dict.get('serialNumber', None)
|
|
|
chronopher_id = request_dict.get('taskId', None)
|
|
|
- status = request_dict.get('status', None)
|
|
|
+ operate_status = request_dict.get('status', None)
|
|
|
+ switch_status = request_dict.get('switchStatus', None)
|
|
|
implement_time = request_dict.get('implementTime', None)
|
|
|
|
|
|
- if not all([serial_number, chronopher_id, status, implement_time]):
|
|
|
+ if not all([serial_number, chronopher_id, operate_status, switch_status, implement_time]):
|
|
|
return response.json(444, {'error param': 'deviceId or chronopherId'})
|
|
|
device_qs = Device_Info.objects.filter(serial_number=serial_number).values('id')
|
|
|
if not device_qs.exists():
|
|
@@ -423,13 +429,21 @@ class SmartSwitchView(View):
|
|
|
'scene_id': chronopher_id,
|
|
|
'device_id': device_id,
|
|
|
'tasks': json.dumps(chronopher_qs[0]),
|
|
|
- 'status': status,
|
|
|
+ 'status': operate_status,
|
|
|
'created_time': implement_time,
|
|
|
}
|
|
|
scene_qs = SceneLog.objects.filter(created_time=implement_time, device_id=device_id,
|
|
|
scene_id=chronopher_id)
|
|
|
if not scene_qs.exists():
|
|
|
SceneLog.objects.create(**scene_log)
|
|
|
+ operate_log = {
|
|
|
+ 'device_id': device_id,
|
|
|
+ 'status': switch_status,
|
|
|
+ 'created_time': implement_time
|
|
|
+ }
|
|
|
+ operate_qs = SwitchOperateLog.objects.filter(**operate_log)
|
|
|
+ if not operate_qs.exists():
|
|
|
+ SwitchOperateLog.objects.create(**operate_log)
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
@@ -524,3 +538,37 @@ class SmartSwitchView(View):
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
|
LOGGER.info('error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def create_operate_log(request_dict, response):
|
|
|
+ """
|
|
|
+ 设备上报排程日志
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @request_dict serialNumber: 设备序列号
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ serial_number = request_dict.get('serialNumber', None)
|
|
|
+ status = request_dict.get('switchStatus', None)
|
|
|
+ implement_time = request_dict.get('implementTime', None)
|
|
|
+
|
|
|
+ if not all([serial_number, status, implement_time]):
|
|
|
+ return response.json(444, {'error param': 'deviceId or chronopherId'})
|
|
|
+ device_qs = Device_Info.objects.filter(serial_number=serial_number).values('id')
|
|
|
+ if not device_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+ device_id = device_qs[0]['id']
|
|
|
+
|
|
|
+ try:
|
|
|
+ scene_log = {
|
|
|
+ 'device_id': device_id,
|
|
|
+ 'status': status,
|
|
|
+ 'created_time': implement_time,
|
|
|
+ }
|
|
|
+ operate_qs = SwitchOperateLog.objects.filter(**scene_log)
|
|
|
+ if not operate_qs.exists():
|
|
|
+ SwitchOperateLog.objects.create(**scene_log)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|