Browse Source

解决v3/equipment/query的查询问题

tanghongbin 5 years ago
parent
commit
fd97270d68
2 changed files with 51 additions and 36 deletions
  1. 15 4
      Controller/EquipmentManager.py
  2. 36 32
      Controller/EquipmentManagerV3.py

+ 15 - 4
Controller/EquipmentManager.py

@@ -955,9 +955,10 @@ def update_device_shadow(request):
         request_dict = request.GET
     else:
         return response.json(444)
-    etk = request_dict.get('etk', None)
-    eto = ETkObject(etk)
-    uid = eto.uid
+    # etk = request_dict.get('etk', None)
+    # eto = ETkObject(etk)
+    # uid = eto.uid
+    uid = request_dict.get('uid', None)
     if uid:
         # 重置按钮
         is_reset = request_dict.get('is_reset', None)
@@ -965,7 +966,17 @@ def update_device_shadow(request):
         if is_reset == '1':
             UidSetModel.objects.filter(uid=uid).delete()
             # 重置设备,判断设备为已删除
-            Device_Info.objects.filter(UID=uid).update(isExist=2)
+            di_qs = Device_Info.objects.filter(UID=uid)
+            di_qs.update(isExist=2)
+            # 清除redis缓存
+            data = di_qs.values()
+            redisObj = RedisObject(db=8)
+            for di in data:
+                key = 'uid_qs_' + di['userID_id']
+                redis_value = redisObj.get_data(key=key)
+                if redis_value is not False:
+                    redisObj.del_data(key)
+
         ucode = request_dict.get('ucode', None)
         version = request_dict.get('version', None)
         p2p_region = request_dict.get('p2p_region', None)

+ 36 - 32
Controller/EquipmentManagerV3.py

@@ -184,6 +184,7 @@ class EquipmentManagerV3(View):
         if tko.code == 0:
             redisObj = RedisObject(db=8)
             redis_value = redisObj.get_data(key='uid_qs_'+userID)
+            result = []
             if redis_value == False:
                 # print('缓存不存在就开始添加到缓存')
                 userID = tko.userID
@@ -301,14 +302,15 @@ class EquipmentManagerV3(View):
                     data.append(p)
                 # 缓存时间为一个钟
                 redisObj.set_data(key='uid_qs_'+userID, val=data, expire=3600)
+                result = data
                 print('分页')
-                items=[]
-                for index, item in enumerate(data):
-                    if (page - 1) * line <= index:
-                        if index < page * line:
-                            item['View_Password']=self.encrypt_pwd(item['View_Password'])
-                            items.append(item)
-                return response.json(0, items)
+                # items=[]
+                # for index, item in enumerate(data):
+                #     if (page - 1) * line <= index:
+                #         if index < page * line:
+                #             item['View_Password']=self.encrypt_pwd(item['View_Password'])
+                #             items.append(item)
+                # return response.json(0, items)
             else:
                 # print('去缓存找数据')
                 redis_value = redis_value.replace("'", '"')
@@ -322,31 +324,33 @@ class EquipmentManagerV3(View):
                 except Exception as e:
                     print(repr(e))
                     return response.json(0, {'data': redis_value})
-                if NickName:
-                    # print('NickName搜索缓存')
-                    for index, item in enumerate(redis_value):
-                        if NickName ==item['NickName']:
-                            # 加密
-                            item['View_Password'] = self.encrypt_pwd(item['View_Password'])
-                            return response.json(0, item)
-                if uid:
-                    # print('uid搜索缓存')
-                    for index, item in enumerate(redis_value):
-                        if uid == item['UID']:
-                            # 加密
-                            item['View_Password'] = self.encrypt_pwd(item['View_Password'])
-                            return response.json(0, item)
-                items = []
-                # print('缓存分页')
-                for index, item in enumerate(redis_value):
-                    if (page - 1) * line <= index:
-                        if index < page * line:
-                            # 加密
-                            item['View_Password'] = self.encrypt_pwd(item['View_Password'])
-                            print(item)
-                            items.append(item)
-                print(items)
-                return response.json(0, items)
+                result = redis_value
+
+            if NickName:
+                # print('NickName搜索缓存')
+                for index, item in enumerate(result):
+                    if NickName == item['NickName']:
+                        # 加密
+                        item['View_Password'] = self.encrypt_pwd(item['View_Password'])
+                        return response.json(0, item)
+            if uid:
+                # print('uid搜索缓存')
+                for index, item in enumerate(result):
+                    if uid == item['UID']:
+                        # 加密
+                        item['View_Password'] = self.encrypt_pwd(item['View_Password'])
+                        return response.json(0, item)
+            items = []
+            # print('缓存分页')
+            for index, item in enumerate(result):
+                if (page - 1) * line <= index:
+                    if index < page * line:
+                        # 加密
+                        item['View_Password'] = self.encrypt_pwd(item['View_Password'])
+                        print(item)
+                        items.append(item)
+            print(items)
+            return response.json(0, items)
         else:
             return response.json(tko.code)