فهرست منبع

新增智能插座开关上报接口

zhangdongming 2 سال پیش
والد
کامیت
c65eb60ec3
1فایلهای تغییر یافته به همراه26 افزوده شده و 5 حذف شده
  1. 26 5
      Controller/gatewayController.py

+ 26 - 5
Controller/gatewayController.py

@@ -17,6 +17,7 @@ from Service.CommonService import CommonService
 from Service.EquipmentInfoService import EquipmentInfoService
 from Service.HuaweiPushService.HuaweiPushService import HuaweiPushObject
 from Service.PushService import PushObject
+
 LOGGER = logging.getLogger('info')
 
 
@@ -37,7 +38,7 @@ class GatewayView(View):
             return self.gateway_push(request_dict, response)
         elif operation == 'sceneLogPush':  # 场景日志推送
             return self.scene_log_push(request_dict, response)
-        elif operation == 'socket-push':  # 插座推送
+        elif operation == 'socketPush':  # 插座推送
             return self.socket_msg_push(request_dict, response)
         else:
             return response.json(414)
@@ -299,7 +300,27 @@ class GatewayView(View):
 
     @classmethod
     def socket_msg_push(cls, request_dict, response):
-        event_type = request_dict.get('type', None)
-        status = request_dict.get('status', None)
-        LOGGER.info('已订阅成功接收:事件类型{},状态:{}'.format(event_type, status))
-        return response.json(0)
+        """
+        智能插座开关状态推送
+        """
+        logger = logging.getLogger('info')
+        try:
+            serial_number = request_dict.get('serialNumber', None)
+            status = request_dict.get('status', None)
+            if not all([serial_number, status]):
+                return response.json(444)
+            SceneLog.objects.create()
+            now_time = int(time.time())
+            LOGGER.info('已订阅成功接收:事件类型{},状态:{}'.format(serial_number, status))
+            # 获取主用户设备id
+            device_qs = Device_Info.objects.filter(serial_number=serial_number, isShare=False).values('id')
+            log_dict = {
+                'status': int(status),
+                'device_id': device_qs[0]['id'],
+                'created_time': now_time,
+            }
+            SceneLog.objects.create(**log_dict)
+            return response.json(0)
+        except Exception as e:
+            logger.info('---插座开关日志推送接口异常--- {}'.format(repr(e)))
+            return response.json(500, repr(e))