Преглед на файлове

alexa智能插座分区

peng преди 1 година
родител
ревизия
6aa296e2f4
променени са 2 файла, в които са добавени 32 реда и са изтрити 36 реда
  1. 13 12
      controller/deviceStatus.py
  2. 19 24
      controller/index.py

+ 13 - 12
controller/deviceStatus.py

@@ -215,7 +215,7 @@ class deviceStatus(TemplateView):
         logger = logging.getLogger('django')
         logger.info('--------添加/更新插座信息--------')
 
-        region = request_dict.get("region", 'EN')
+        region = request_dict.get("region", 'US')
         nick_name = request_dict.get("nick_name", '')
         serial_number = request_dict.get("serial_number", '')
         user_id = request_dict.get("user_id", '')
@@ -350,21 +350,22 @@ class deviceStatus(TemplateView):
         if not user_qs.exists():
             return response.json(10, res={'msg': '用户数据不存在'})
         user_id = user_qs.first().userID
+        switch_qs = SwitchModel.objects.filter(serial_number=serial_number).values('region')
+        if not switch_qs.exists():
+            return response.json(10, res={'msg': '设备不存在'})
         try:
-            auth_request_url = '{}/api/loocam/open/socket/getSocketState'.format(SERVER_PREFIX)
+            region = switch_qs[0]['region']
+            if region == 'EU':
+                domain_name = SERVER_PREFIX_EU
+            elif region == 'CN':
+                domain_name = SERVER_PREFIX_TEST
+            else:
+                domain_name = SERVER_PREFIX
+            auth_request_url = '{}/api/loocam/open/socket/getSocketState'.format(domain_name)
             requests_data = {'serial_number': serial_number, 'alexa_user_id': user_id}
             res = requests.post(url=auth_request_url, data=requests_data)
             res_json = res.json()
-            logger.info('正式服务器响应: {}'.format(res_json))
-
-            # 添加测试服务器测试
-            if res_json['result_code'] != 0:
-                auth_request_url = '{}/api/loocam/open/socket/getSocketState'.format(SERVER_PREFIX_TEST)
-                res = requests.post(url=auth_request_url, data=requests_data)
-                res_json = res.json()
-
-            logger.info('请求服务器url: {}'.format(auth_request_url))
-            logger.info('服务器响应: {}'.format(res_json))
+            logger.info('{}正式服务器响应: {}'.format(region, res_json))
             if res_json['result_code'] != 0:
                 return response.json(10, res={'msg': 'error'})
             power_state = res_json['result']['power_state']

+ 19 - 24
controller/index.py

@@ -552,7 +552,8 @@ class oa2DiscoverySwitch(TemplateView):
         response = ResObject()
         user = user_qs.first()
         userID = user.userID
-        logger.info('userID: {}'.format(userID))
+        region_code = user.region_code
+        logger.info('userID: {},region_code:{}'.format(userID, region_code))
 
         # 更新事件网关接口
         alexAuth = AlexaAuthModel.objects.filter(token=access_token, skill_name=skill_name).order_by('-addTime')
@@ -580,12 +581,12 @@ class oa2DiscoverySwitch(TemplateView):
                 alexa_region=event_alexa_region,
                 skill_name=skill_name,
             )
-
-        auth_request_url = '{}/oalexa/discoveryswitch'.format(SERVER_PREFIX)
+        domain_name = SERVER_PREFIX_EU if region_code == 'EU' else SERVER_PREFIX
+        auth_request_url = '{}/oalexa/discoveryswitch'.format(domain_name)
         requests_data = {'sid': 'admin', 'sst': 'admin', 'alexa_user_id': userID}
         res = requests.post(url=auth_request_url, data=requests_data)
         res_json = res.json()
-        logger.info('正式服务器响应: {}'.format(res_json))
+        logger.info('{}正式服务器响应: {}'.format(region_code, res_json))
 
         # 添加测试服务器测试
         if res_json['result_code'] != 0:
@@ -605,13 +606,12 @@ class oa2DiscoverySwitch(TemplateView):
         for switch in switch_list:
             serial_number = switch['uid']
             nick = switch['nick']
-            region = 'EU' if switch['region'] == 'EU' else 'EN'
             switch_info_qs = SwitchModel.objects.filter(serial_number=serial_number, userID=userID)
             if switch_info_qs.exists():
-                switch_info_qs.update(nick=nick, region=region, updTime=now_time)
+                switch_info_qs.update(nick=nick, region=switch['region'], updTime=now_time)
             else:
-                SwitchModel.objects.create(serial_number=serial_number, nick=nick, region=region, addTime=now_time,
-                                           updTime=now_time, userID=userID)
+                SwitchModel.objects.create(serial_number=serial_number, nick=nick, region=switch['region'],
+                                           addTime=now_time, updTime=now_time, userID=userID)
             ur_data = {
                 'endpointId': serial_number,
                 'friendlyName': nick,
@@ -655,27 +655,22 @@ class powerController(TemplateView):
         logger = logging.getLogger('django')
         logger.info('{} 控制插座 {}'.format(skill_name, serial_number))
         # 请求MQTT发布消息
-        url = '{}/api/loocam/open/socket/alexa-socket-switch'.format(SERVER_PREFIX)  # 国外服务器
+        region = switch_qs[0]['region']
+        if region == 'EU':
+            domain_name = SERVER_PREFIX_EU
+        elif region == 'CN':
+            domain_name = SERVER_PREFIX_TEST
+        else:
+            domain_name = SERVER_PREFIX
+        url = '{}/api/loocam/open/socket/alexa-socket-switch'.format(domain_name)
         requests_data = {'serial_number': serial_number, 'power_controller': power_controller}  # TurnOn, TurnOff
         r = requests.post(url, requests_data)
         if r.status_code != 200:
-            return JsonResponse({'result_code': '500', '错误': '请求国外服务器响应异常'})
-
+            return JsonResponse({'result_code': '500', '错误': '请求服务器响应异常'})
         res = r.json()
-        logger.info('国外服务器返回状态: {}'.format(res))
+        logger.info('{}服务器返回状态: {}'.format(region, res))
         if res['result_code'] != 0:
-            url = '{}/api/loocam/open/socket/alexa-socket-switch'.format(SERVER_PREFIX_TEST)  # 测试服务器
-            requests_data = {'serial_number': serial_number, 'power_controller': power_controller}  # TurnOn, TurnOff
-            r = requests.post(url, requests_data)
-            if r.status_code != 200:
-                return JsonResponse({'result_code': '500', '错误': '请求测试服务器响应异常'})
-            res = r.json()
-            logger.info('测试服务器返回状态: {}'.format(res))
-            if res['result_code'] != 0:
-                return JsonResponse({'result_code': '500', '错误': '请求MQTT下发指令失败'})
-            else:
-                logger.info('请求MQTT下发指令成功')
-                return JsonResponse({'result_code': '0'})
+            return JsonResponse({'result_code': '500', '错误': '请求MQTT下发指令失败'})
         else:
             logger.info('请求MQTT下发指令成功')
             return JsonResponse({'result_code': '0'})