Browse Source

新增汇总重置设备按钮;新增删除序列号设备数据

guanhailong 2 years ago
parent
commit
9d76c5350f
1 changed files with 52 additions and 4 deletions
  1. 52 4
      AdminController/DeviceManagementController.py

+ 52 - 4
AdminController/DeviceManagementController.py

@@ -79,9 +79,10 @@ class DeviceManagement(View):
                 return self.edit_app_device_type(request_dict, response)
             elif operation == 'deleteAppDeviceType':  # 删除app设备类型数据
                 return self.delete_app_device_type(request_dict, response)
-
             elif operation == 'getAppBundle':  # 获取app版本包
                 return self.get_app_bundle(response)
+            elif operation == 'resetAll':  # 重置设备主用户/云存/AI
+                return self.reset_all(request, request_dict, response)
             else:
                 return response.json(444, 'operation')
 
@@ -445,12 +446,19 @@ class DeviceManagement(View):
     def del_device_data(request_dict, response):
         uidList = request_dict.get('uidList', None)
         delDataOptions = request_dict.get('delDataOptions', None)
-
-        if not all([uidList, delDataOptions]):
+        serialNumberList = request_dict.get('serialNumberList', None)
+        if not all([uidList or serialNumberList, delDataOptions]):
             return response.json(444)
         try:
             with transaction.atomic():
-                uidList = uidList.splitlines()  # 按行('\r', '\r\n', \n')切割字符串返回列表
+                if uidList:
+                    #  uid
+                    uidList = uidList.splitlines()  # 按行('\r', '\r\n', \n')切割字符串返回列表
+                else:
+                    #  序列号
+                    serialNumberList = serialNumberList.splitlines()  # 按行('\r', '\r\n', \n')切割字符串返回列表
+                    uid_qs = Device_Info.objects.filter(serial_number__in=serialNumberList).values_list('UID')
+                    uidList = [uid_qs]
                 # 根据删除项删除相关数据
                 if '设备信息数据' in delDataOptions:
                     Device_Info.objects.filter(UID__in=uidList).delete()
@@ -707,3 +715,43 @@ class DeviceManagement(View):
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
+
+    @staticmethod
+    def reset_all(request, request_dict, response):
+        uid = request_dict.get('uid', None)
+        if not uid:
+            return response.json(444)
+        try:
+            # 记录操作日志
+            ip = CommonService.get_ip_address(request)
+            content = json.loads(json.dumps(request_dict))
+            log = {
+                'ip': ip,
+                'user_id': 2,
+                'status': 200,
+                'time': int(time.time()),
+                'url': 'deviceManagement/resetVod',
+                'content': json.dumps(content),
+                'operation': '{}重置所有'.format(uid),
+            }
+            with transaction.atomic():
+                LogModel.objects.create(**log)
+                # 删除主用户
+                Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID='', vodPrimaryMaster='')
+                # 删除云存
+                UID_Bucket.objects.filter(uid=uid).delete()
+                Unused_Uid_Meal.objects.filter(uid=uid).delete()
+                Order_Model.objects.filter(UID=uid, order_type=0).delete()
+                StsCrdModel.objects.filter(uid=uid).delete()
+                VodHlsModel.objects.filter(uid=uid).delete()
+                # 删除vod_hls分表数据
+                split_vod_hls_obj = SplitVodHlsObject()
+                split_vod_hls_obj.del_vod_hls_data(uid=uid)
+                ExperienceContextModel.objects.filter(uid=uid).delete()
+                # 删除AI
+                ExperienceAiModel.objects.filter(uid=uid).delete()
+                AiService.objects.filter(uid=uid).delete()
+                return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))