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

修改更新子设备在线状态接口,测试服和国内服token过期时间改为60天

locky преди 1 година
родител
ревизия
8fd2c0c393
променени са 3 файла, в които са добавени 23 реда и са изтрити 40 реда
  1. 1 31
      Controller/SensorGateway/SmartSceneController.py
  2. 7 4
      Controller/SensorGateway/SubDeviceController.py
  3. 15 5
      Object/TokenObject.py

+ 1 - 31
Controller/SensorGateway/SmartSceneController.py

@@ -7,16 +7,14 @@
 import json
 import time
 
-import requests
 from django.core.exceptions import ObjectDoesNotExist
 from django.db import transaction
 from django.db.models import F, Q, Count
 from django.views import View
 
-from Ansjer.config import DETECT_PUSH_DOMAINS
 from Ansjer.Config.gatewaySensorConfig import SMART_SCENE_TOPIC, SENSOR_TYPE, EVENT_TYPE, SCENE_EVENT_CREATE, \
     SCENE_EVENT_EDIT, SCENE_EVENT_DELETE, SCENE_STATUS_ON, SCENE_STATUS_OFF, SCENE_EVENT_EDIT_STATUS, \
-    VOICE_AUDITION_TOPIC, SMART_SOCKET_TOPIC, DEVICE_TYPE, SMART_SCENE_TASK
+    VOICE_AUDITION_TOPIC, DEVICE_TYPE, SMART_SCENE_TASK
 from Model.models import FamilyRoomDevice, GatewaySubDevice, FamilyRoom, SmartScene, EffectiveTime, Device_Info, \
     SceneLog
 from Object.CeleryBeatObject import CeleryBeatObj
@@ -1385,34 +1383,6 @@ class SmartSceneView(View):
         # 删除最后一个逗号并返回结果
         return weeks[:-1]
 
-    @staticmethod
-    def pub_mqtt(device_type, event_type, serial_number, scene_id=0):
-        """
-        发布mqtt消息
-        @param device_type: 设备类型
-        @param event_type: 事件类型
-        @param serial_number: 序列号
-        @param scene_id: 场景id
-        @return:
-        """
-        if device_type == DEVICE_TYPE['socket']:
-            topic_name = SMART_SOCKET_TOPIC.format(serial_number)
-            status = 1 if event_type == EVENT_TYPE['socket_power_on'] else 0
-            msg = {
-                'type': 1,
-                'data': {'deviceSwitch': status}
-            }
-            CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
-
-        # 没有设备任务时,最后一个任务上报场景日志
-        if scene_id:
-            data = {
-                'sceneId': scene_id,
-                'status': 1
-            }
-            url = DETECT_PUSH_DOMAINS + 'gatewayService/sceneLogPush'
-            requests.post(url=url, data=data, timeout=8)
-
     @staticmethod
     def del_celery_task(scene_data_dict):
         """

+ 7 - 4
Controller/SensorGateway/SubDeviceController.py

@@ -622,13 +622,15 @@ class GatewaySubDeviceView(View):
         """
         online = request_dict.get('online', None)
         ieee_addr = request_dict.get('ieee_addr', None)
+        serial_number = request_dict.get('serial_number')
 
-        if not all([online, ieee_addr]):
-            return response.json(444, {'error param': 'online or ieee_addr'})
+        if not all([online, ieee_addr, serial_number]):
+            return response.json(444, {'error param': 'online or ieee_addr or serial_number'})
         online = int(online)
         try:
             if online == 2:     # 复位删除设备
-                gateway_sub_device_qs = GatewaySubDevice.objects.filter(ieee_addr=ieee_addr)
+                gateway_sub_device_qs = GatewaySubDevice.objects.filter(
+                    ieee_addr=ieee_addr, device__serial_number=serial_number)
                 if not gateway_sub_device_qs.exists():
                     return response.json(0)
                 sub_device_id = gateway_sub_device_qs.values('id')[0]['id']
@@ -639,7 +641,8 @@ class GatewaySubDeviceView(View):
                     SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id).delete()
                     gateway_sub_device_qs.delete()
             else:
-                GatewaySubDevice.objects.filter(ieee_addr=ieee_addr).update(status=online)
+                GatewaySubDevice.objects.filter(ieee_addr=ieee_addr, device__serial_number=serial_number).\
+                    update(status=online)
             return response.json(0)
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))

+ 15 - 5
Object/TokenObject.py

@@ -1,7 +1,9 @@
+import datetime
+
 import jwt
 import time
 from Ansjer.config import OAUTH_ACCESS_TOKEN_SECRET, OAUTH_REFRESH_TOKEN_SECRET, OAUTH_ACCESS_TOKEN_TIME, \
-    OAUTH_REFRESH_TOKEN_TIME
+    OAUTH_REFRESH_TOKEN_TIME, CONFIG_INFO, CONFIG_TEST, CONFIG_CN
 
 
 class TokenObject:
@@ -58,8 +60,12 @@ class TokenObject:
         if data is None:
             data = {}
         try:
-            access_expire = int(OAUTH_ACCESS_TOKEN_TIME.total_seconds())
-            refresh_expire = int(OAUTH_REFRESH_TOKEN_TIME.total_seconds())
+            if CONFIG_INFO == CONFIG_TEST or CONFIG_INFO == CONFIG_CN:
+                access_expire = int(datetime.timedelta(days=60).total_seconds())
+                refresh_expire = int(datetime.timedelta(days=60).total_seconds())
+            else:
+                access_expire = int(OAUTH_ACCESS_TOKEN_TIME.total_seconds())
+                refresh_expire = int(OAUTH_REFRESH_TOKEN_TIME.total_seconds())
             now_stamp = int(time.time())
             access_data = data
             refresh_data = data
@@ -99,8 +105,12 @@ class TokenObject:
         if data is None:
             data = {}
         try:
-            access_expire = int(OAUTH_ACCESS_TOKEN_TIME.total_seconds())
-            refresh_expire = int(OAUTH_REFRESH_TOKEN_TIME.total_seconds())
+            if CONFIG_INFO == CONFIG_TEST or CONFIG_INFO == CONFIG_CN:
+                access_expire = int(datetime.timedelta(days=60).total_seconds())
+                refresh_expire = int(datetime.timedelta(days=60).total_seconds())
+            else:
+                access_expire = int(OAUTH_ACCESS_TOKEN_TIME.total_seconds())
+                refresh_expire = int(OAUTH_REFRESH_TOKEN_TIME.total_seconds())
             now_stamp = int(time.time())
             access_data = data
             refresh_data = data