Переглянути джерело

新增更新连接通道接口,查询设备列表返回linked_channel

locky 1 місяць тому
батько
коміт
a0d668734f
3 змінених файлів з 25 додано та 1 видалено
  1. 20 0
      Controller/EquipmentManagerV3.py
  2. 2 0
      Model/models.py
  3. 3 1
      Service/UserDeviceService.py

+ 20 - 0
Controller/EquipmentManagerV3.py

@@ -55,6 +55,8 @@ class EquipmentManagerV3(View):
             return self.change_device_password(request_dict, response)
         elif operation == 'modifyChannelName':
             return self.do_modify_channel_name(request_dict, response)
+        elif operation == 'updateLinkedChannel':
+            return self.update_linked_channel(request_dict, response)
 
         token = request_dict.get('token', None)
         tko = TokenObject(token)
@@ -778,6 +780,24 @@ class EquipmentManagerV3(View):
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    @staticmethod
+    def update_linked_channel(request_dict, response):
+        """
+        更新连接通道
+        @param request_dict:
+        @param response:
+        @return:
+        """
+        uid = request_dict.get('uid', None)
+        linked_channel = request_dict.get('linked_channel', None)
+        if not all([uid, linked_channel]):
+            return response.json(444)
+        try:
+            UidSetModel.objects.filter(uid=uid).update(linked_channel=linked_channel)
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
     def do_query(self, userID, request_dict, response):
         """
         首页查询设备列表

+ 2 - 0
Model/models.py

@@ -2291,6 +2291,8 @@ class UidSetModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     uid = models.CharField(max_length=20, db_index=True, unique=True, verbose_name='设备UID')
     channel = models.SmallIntegerField(default=0, verbose_name='通道数量')  #
+    # 连接的通道,转为二进制,如3 -> 0011,表示1,2通道
+    linked_channel = models.PositiveBigIntegerField(default=0, verbose_name='连接通道')
     detect_status = models.SmallIntegerField(default=0, verbose_name='推送开关')  # 状态[0:关闭,1:开启,2:用户解绑]
     detect_interval = models.IntegerField(verbose_name='推送间隔', default=60)  # 秒
     addTime = models.IntegerField(verbose_name='添加时间', default=0, db_index=True)

+ 3 - 1
Service/UserDeviceService.py

@@ -103,7 +103,7 @@ class UserDeviceService:
                     'OutdoorModel', 'WIFIName', 'isDetector',
                     'DetectorRank', 'is_human', 'is_custom_voice',
                     'is_ptz', 'double_wifi', 'is_ai', 'mobile_4g',
-                    'ai_type')
+                    'ai_type', 'linked_channel')
 
     @classmethod
     def query_device_channel(cls, uid_list):
@@ -144,6 +144,7 @@ class UserDeviceService:
                 'is_ai': us['is_ai'],
                 'ai_type': us['ai_type'],
                 'isSupportFourPoint': us['isSupportFourPoint'],
+                'linked_channel': us['linked_channel'],
             }
             uv_dict[us['uid']]['channels'] = cls.query_device_channel_set(us['id'])
         return uv_dict
@@ -261,6 +262,7 @@ class UserDeviceService:
         p_vo['is_ai'] = uv_dict[p_uid]['is_ai']
         p_vo['ai_type'] = uv_dict[p_uid]['ai_type']
         p_vo['isSupportFourPoint'] = uv_dict[p_uid]['isSupportFourPoint']
+        p_vo['linked_channel'] = uv_dict[p_uid]['linked_channel']
         # 设备昵称 调用影子信息昵称,先阶段不可
         if uv_dict[p_uid]['nickname']:
             p_vo['NickName'] = uv_dict[p_uid]['nickname']