فهرست منبع

添加/修改设备请求Alexa服务器更新事件网关

locky 4 سال پیش
والد
کامیت
8cb6302a56
2فایلهای تغییر یافته به همراه36 افزوده شده و 14 حذف شده
  1. 26 11
      Controller/EquipmentManagerV3.py
  2. 10 3
      Controller/UidSetController.py

+ 26 - 11
Controller/EquipmentManagerV3.py

@@ -213,9 +213,23 @@ class EquipmentManagerV3(View):
                 us_qs = UidSetModel.objects.filter(uid=UID)
 
             if us_qs.exists() and us_qs[0].is_alexa == 1:
-                asy = threading.Thread(target=ModelService.notify_alexa_add,
-                                       args=(UID, userID, NickName, encrypt_pass))
-                asy.start()
+                if us_qs[0].channel > 1:
+                    data_list = []
+                    uid_channel_set_qs = UidChannelSetModel.objects.filter(uid_id=us_qs[0].id).\
+                        values('channel', 'channel_name')
+                    if uid_channel_set_qs.exists():
+                        # 多通道设备名为 UidChannelSetModel 的 channel_name
+                        for uid_channel_set in uid_channel_set_qs:
+                            data_list.append({'userID': userID, 'UID': UID, 'uid_nick': uid_channel_set['channel_name'],
+                                              'channel': uid_channel_set['channel'], 'password': encrypt_pass})
+                else:
+                    data_list = [{'userID': userID, 'UID': UID, 'uid_nick': NickName, 'password': encrypt_pass}]
+
+                # 请求Alexa服务器更新事件网关
+                data_list = json.dumps(data_list)
+                data = {'data_list': data_list}
+                url = 'https://www.zositech.xyz/deviceStatus/addOrUpdateV2'
+                requests.post(url, data=data, timeout=2)
 
         except Exception as e:
             return response.json(10, repr(e))
@@ -241,7 +255,6 @@ class EquipmentManagerV3(View):
                         'endpoint': iotqs[0].endpoint,
                         'token_iot_number': iotqs[0].endpoint
                 }
-
             return response.json(0, res)
 
 
@@ -258,10 +271,8 @@ class EquipmentManagerV3(View):
         userID = tko.userID
         if userID is None:
             return response.json(309)
-        deviceData = None
-        dev_info_qs = None
+
         try:
-            # deviceData = json.loads(deviceContent)
             deviceData = eval(deviceContent)
             if deviceData.__contains__('userID_id'):
                 asy = threading.Thread(target=ModelService.update_log,
@@ -306,12 +317,16 @@ class EquipmentManagerV3(View):
                     UidSetModel.objects.create(**uid_set_create_dict)
                 di_qs = Device_Info.objects.filter(UID=uid)
                 di_qs.update(NickName=nickname)
+
                 if deviceData is not None and deviceData.__contains__('NickName') and us_qs[0].is_alexa == 1:
+                    # 请求Alexa服务器更新事件网关
+                    url = 'https://www.zositech.xyz/deviceStatus/addOrUpdateV2'
                     password = encrypt_pwd if deviceData.__contains__('View_Password') else ''
-                    asy = threading.Thread(target=ModelService.notify_alexa_add, args=(uid, userID, nickname, password))
-                    asy.start()
-            # redisObj = RedisObject(db=8)
-            # redisObj.del_data(key='uid_qs_' + userID)
+                    data_list = [{'userID': userID, 'UID': uid, 'uid_nick': nickname, 'password': password}]
+                    data_list = json.dumps(data_list)
+                    data = {'data_list': data_list}
+                    requests.post(url, data=data, timeout=2)
+
             return response.json(0, res)
 
     # 编辑通道名

+ 10 - 3
Controller/UidSetController.py

@@ -11,9 +11,11 @@
 @file: AliPayObject.py
 @Contact: pzb3076@163.com
 """
+import threading
 import time
 import traceback
 
+import requests
 from django.db.models import Count
 
 from Object.RedisObject import RedisObject
@@ -393,12 +395,10 @@ class UidSetView(View):
         if channel < 1:
             return response.json(444, 'channel')
         try:
-            # redisObj = RedisObject(db=8)
-            # redisObj.del_data(key='uid_qs_' + userID)
             deviceData = json.loads(channelContent)
             uid_channel_set_qs = UidChannelSetModel.objects.filter(uid__uid=uid, channel=channel)
+            uidObject = UidSetModel.objects.filter(uid=uid)
             if not uid_channel_set_qs.exists():
-                uidObject = UidSetModel.objects.filter(uid=uid)
                 ucs = {
                     'channel': channel,
                     'uid': uidObject[0]
@@ -410,6 +410,13 @@ class UidSetView(View):
             else:
                 uid_channel_set_qs.update(**deviceData)
 
+            if uidObject[0].is_alexa == 1 and 'channel_name' in deviceData.keys():
+                # 请求Alexa服务器更新事件网关
+                data_list = [{'userID': userID, 'UID': uid, 'uid_nick': deviceData['channel_name'], 'password': ''}]
+                data_list = json.dumps(data_list)
+                data = {'data_list': data_list}
+                url = 'https://www.zositech.xyz/deviceStatus/addOrUpdateV2'
+                requests.post(url, data=data, timeout=2)
         except Exception as e:
             return response.json(177, repr(e))
         else: