chenjunkai 6 роки тому
батько
коміт
02dd21efac

+ 34 - 2
Controller/EquipmentManager.py

@@ -637,8 +637,9 @@ def uid_status(request):
     response.lang = tko.lang
     if tko.code != 0:
         return response.json(tko.code)
+    # 判断用户是否绑定设备
     qs = UidSetModel.objects.filter(uid=uid).values('uid', 'detect_status', 'detect_interval', 'version', 'ucode',
-                                                    'p2p_region')
+                                                    'p2p_region', 'tz', 'video_code', 'channel', 'cloud_vod')
     # 判断uid配置表信息是否存在
     if qs.exists():
         data = {
@@ -646,7 +647,11 @@ def uid_status(request):
             'push_interval': qs[0]['detect_interval'],  # 推送间隔
             'ucode': qs[0]['ucode'],
             'version': qs[0]['version'],
-            'p2p_region': qs[0]['p2p_region']
+            'p2p_region': qs[0]['p2p_region'],
+            'tz': qs[0]['tz'],
+            'video_code': qs[0]['video_code'],
+            'channel': qs[0]['channel'],
+            'cloud_vod': qs[0]['cloud_vod'],
         }
         # 查询云存储相关信息
         ubqs = UID_Bucket.objects.filter(uid=uid). \
@@ -724,6 +729,13 @@ def update_device_shadow(request):
         tz = request_dict.get('tz', None)
         video_code = request_dict.get('video_code', None)
         ip = CommonService.get_ip_address(request)
+        is_reset = request_dict.get('is_reset', None)
+        channel = request_dict.get('channel', None)
+        cloud_vod = request_dict.get('cloud_vod', None)
+        push_status = request_dict.get('push_status', None)
+        # 传1则重置设备信息
+        if is_reset == 1:
+            UidSetModel.objects.filter(uid=uid).delete()
         us_qs = UidSetModel.objects.filter(uid=uid)
         # 更新
         nowTime = int(time.time())
@@ -732,6 +744,8 @@ def update_device_shadow(request):
                 'updTime': nowTime,
                 'ip': ip
             }
+            if channel:
+                update_dict['channel'] = channel
             if p2p_region:
                 update_dict['p2p_region'] = p2p_region
             if ucode:
@@ -742,6 +756,14 @@ def update_device_shadow(request):
                 update_dict['tz'] = tz
             if video_code:
                 update_dict['video'] = video_code
+            if cloud_vod:
+                update_dict['cloud_vod'] = cloud_vod
+            if push_status:
+                update_dict['push_status'] = push_status
+            if account:
+                update_dict['account'] = account
+            if password:
+                update_dict['password'] = password
             us_qs.update(**update_dict)
             return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
         # 新增
@@ -752,6 +774,8 @@ def update_device_shadow(request):
                 'updTime': nowTime,
                 'ip': ip
             }
+            if channel:
+                create_dict['channel'] = channel
             if p2p_region:
                 create_dict['p2p_region'] = p2p_region
             if ucode:
@@ -762,6 +786,14 @@ def update_device_shadow(request):
                 create_dict['tz'] = tz
             if video_code:
                 create_dict['video_code'] = video_code
+            if cloud_vod:
+                create_dict['cloud_vod'] = cloud_vod
+            if push_status:
+                create_dict['push_status'] = push_status
+            if account:
+                create_dict['account'] = account
+            if password:
+                create_dict['password'] = password
             UidSetModel.objects.create(**create_dict)
             return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
     else:

+ 18 - 7
Controller/UidSetController.py

@@ -19,7 +19,7 @@ from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 
-from Model.models import UidSetModel
+from Model.models import UidSetModel, Device_User, Device_Info
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -64,7 +64,9 @@ class UidSetView(View):
         if tko.code != 0:
             return response.json(tko.code)
         userID = tko.userID
-        if operation == 'adminDelete':
+        if operation == 'queryAll':
+            return self.do_queryAll(request_dict, userID, response)
+        elif operation == 'adminDelete':
             return self.do_admin_delete(request_dict, userID, response)
         elif operation == 'adminQuery':
             return self.do_admin_query(request_dict, userID, response)
@@ -75,7 +77,19 @@ class UidSetView(View):
         else:
             return response.json(444, 'error path')
 
-    # 管理员删除
+    def do_queryAll(self, request_dict, userID, response):
+        uid_list = Device_Info.objects.filter(userID_id=userID).values_list('UID', flat=True)
+        uid_set_qs = UidSetModel.objects.filter(uid__in=uid_list).values('uid', 'detect_status', 'detect_interval',
+                                                                         'version', 'ucode', 'p2p_region', 'tz',
+                                                                         'video_code', 'channel', 'cloud_vod')
+        
+        if uid_set_qs.exists():
+            return response.json(0, list(uid_set_qs))
+        else:
+            return response.json(0)
+
+        # 管理员删除
+
     def do_admin_delete(self, request_dict, userID, response):
         own_perm = ModelService.check_perm(userID, 20)
         if own_perm is True:
@@ -101,7 +115,7 @@ class UidSetView(View):
             line = request_dict.get('line', None)
             page = int(page)
             line = int(line)
-            omqs = UidSetModel.objects.all().order_by( '-id')
+            omqs = UidSetModel.objects.all().order_by('-id')
             if not omqs.exists():
                 return response.json(0, [])
             count = omqs.count()
@@ -157,6 +171,3 @@ class UidSetView(View):
             errorInfo = traceback.format_exc()
             print(errorInfo)
             return response.json(500, {'details': errorInfo})
-
-
-

+ 3 - 1
Model/models.py

@@ -654,6 +654,7 @@ class SysMsgModel(models.Model):
 class UidSetModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     uid = models.CharField(max_length=20, verbose_name='设备UID')
+    channel = models.SmallIntegerField(default=0, verbose_name='通道数量')  #
     detect_status = models.SmallIntegerField(default=0, verbose_name='推送开关')  # 状态[0:关闭,1:开启,2:用户解绑]
     detect_interval = models.IntegerField(verbose_name='推送间隔', default=0)  # 秒
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
@@ -664,10 +665,11 @@ class UidSetModel(models.Model):
     p2p_region = models.CharField(max_length=16, verbose_name='设备区域', default='ALL')  # ALL CN EU US
     # addTime Thu Jun 27 02:32:45 UTC 2019
     cloud_vod = models.SmallIntegerField(default=2, verbose_name='云存开关')  # 0,关闭,1开启,2,不支持
-    push_status = models.SmallIntegerField(default=2, verbose_name='云存开关')  # 0,关闭,1开启,2,不支持
     tz = models.CharField(default='', max_length=16, verbose_name='设备时区')  # utc+8
     video_code = models.SmallIntegerField(default=0, verbose_name='编码类型')  # 0:264,1:265
 
+    nickname = models.CharField(default='', max_length=64, verbose_name='设备昵称')
+
     class Meta:
         db_table = 'uid_set'
         verbose_name = u'设备配置'

+ 1 - 1
Object/TokenObject.py

@@ -21,7 +21,7 @@ class TokenObject:
 
     def __init__(self, token=None):
         if token == 'local':
-            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiZW4iLCJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJtX2NvZGUiOiIxMjM0MTMyNDMyMTQiLCJleHAiOjE1NjAzMjQ5MDJ9.aVvJaXQwNX3AM_q-x2rsghEc118FIj38TT275fU5MSM'
+            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiZW4iLCJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJtX2NvZGUiOiIxMjM0MTMyNDMyMTQiLCJleHAiOjE1NjQzMDc0MzZ9.xGTQTwcLvU4tH9pm45Y-nCi-P7wkWl-1EzsVKeudMhQ'
         if token == 'test':
             token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJ1c2VySUQiOiIxNTE1NjQyNjIzMzc5Mzk1MTM4MDAxMzgwMDEiLCJsYW5nIjoiZW4iLCJleHAiOjE1NTI2MTIxOTF9.sO8BtSclN6B-qwqNmYWbICatHYEtyMdoqzZ0hcOSsmg'
         self.token = token