Эх сурвалжийг харах

优化删除网关设备接口

locky 2 жил өмнө
parent
commit
64854265eb

+ 13 - 31
Controller/SensorGateway/GatewayDeviceController.py

@@ -178,27 +178,17 @@ class GatewayDeviceView(View):
                 if device_id:
                 if device_id:
                     device_qs = Device_Info.objects.filter(id=device_id)
                     device_qs = Device_Info.objects.filter(id=device_id)
                     if device_qs.exists():
                     if device_qs.exists():
-                        family_device_qs = FamilyRoomDevice.objects.filter(device_id=device_id)
-                        if family_device_qs.exists():
-                            family_device_qs.delete()
-                        uid_set_qs = UidSetModel.objects.filter(uid=device_qs.first().UID)
-                        if uid_set_qs.exists():
-                            uid_set_qs.delete()
+                        FamilyRoomDevice.objects.filter(device_id=device_id).delete()
+                        UidSetModel.objects.filter(uid=device_qs.first().UID).delete()
                         socket_info_qs = SocketInfo.objects.filter(device_id=device_id)
                         socket_info_qs = SocketInfo.objects.filter(device_id=device_id)
                         if socket_info_qs.exists():
                         if socket_info_qs.exists():
                             # 设备在不在线, 都发布重置
                             # 设备在不在线, 都发布重置
                             serial_number = device_qs.first().serial_number
                             serial_number = device_qs.first().serial_number
                             cls.reset_device(serial_number)
                             cls.reset_device(serial_number)
                             socket_info_qs.delete()
                             socket_info_qs.delete()
-                            socket_power_qs = SocketPowerStatistics.objects.filter(device_id=device_id)
-                            if socket_power_qs.exists():
-                                socket_power_qs.delete()
-                            socket_schedule_qs = SocketSchedule.objects.filter(device_id=device_id)
-                            if socket_schedule_qs.exists():
-                                socket_schedule_qs.delete()
-                            scene_log_qs = SceneLog.objects.filter(device_id=serial_number)
-                            if scene_log_qs.exists():
-                                scene_log_qs.delete()
+                            SocketPowerStatistics.objects.filter(device_id=device_id).delete()
+                            SocketSchedule.objects.filter(device_id=device_id).delete()
+                            SceneLog.objects.filter(device_id=serial_number).delete()
                             SmartSocketView.delete_alexa_socket(serial_number)
                             SmartSocketView.delete_alexa_socket(serial_number)
 
 
                         # 如果有子设备,删除子设备和关联的场景数据
                         # 如果有子设备,删除子设备和关联的场景数据
@@ -227,22 +217,14 @@ class GatewayDeviceView(View):
                                 time.sleep(0.3)
                                 time.sleep(0.3)
                             smart_scene_qs.delete()
                             smart_scene_qs.delete()
                         gateway_qs.delete()  # 删除子设备
                         gateway_qs.delete()  # 删除子设备
-                        scene_log_qs = SceneLog.objects.filter(device_id=device_id)
-                        if scene_log_qs.exists():
-                            scene_log_qs.delete()
+                        SceneLog.objects.filter(device_id=device_id).delete()
                         device_qs.delete()
                         device_qs.delete()
                 elif sub_ids:
                 elif sub_ids:
-                    sub_ids = sub_ids.split(',')
-                    sub_id_list = []
-                    for sub_id in sub_ids:
-                        sub_id_list.append(int(sub_id))
+                    sub_id_list = list(map(int, sub_ids.split(',')))
+                    FamilyRoomDevice.objects.filter(sub_device__in=sub_id_list).delete()
+                    GatewaySubDevice.objects.filter(id__in=sub_id_list).delete()
 
 
-                    family_device_qs = FamilyRoomDevice.objects.filter(sub_device__in=sub_id_list)
-                    if family_device_qs.exists():
-                        family_device_qs.delete()
-                    gateway_sub_qs = GatewaySubDevice.objects.filter(id__in=sub_id_list)
-                    if gateway_sub_qs.exists():
-                        gateway_sub_qs.delete()
+                    # 删除场景,下发MQTT通知设备
                     smart_scene_qs = SmartScene.objects.filter(sub_device_id__in=sub_id_list)
                     smart_scene_qs = SmartScene.objects.filter(sub_device_id__in=sub_id_list)
                     if smart_scene_qs.exists():
                     if smart_scene_qs.exists():
                         # 查询网关序列号,确定MQTT主题
                         # 查询网关序列号,确定MQTT主题
@@ -265,9 +247,9 @@ class GatewayDeviceView(View):
                                 return response.json(10044)
                                 return response.json(10044)
                             time.sleep(0.3)
                             time.sleep(0.3)
                         smart_scene_qs.delete()
                         smart_scene_qs.delete()
-                    scene_log_qs = SceneLog.objects.filter(sub_device_id__in=sub_id_list)
-                    if scene_log_qs.exists():
-                        scene_log_qs.delete()
+
+                    SceneLog.objects.filter(sub_device_id__in=sub_id_list).delete()
+
                 return response.json(0)
                 return response.json(0)
         except Exception as e:
         except Exception as e:
             print(e)
             print(e)