Răsfoiți Sursa

删除设备连同删除日志

peng 3 ani în urmă
părinte
comite
6cf4f7653e

+ 13 - 3
Controller/SensorGateway/GatewayDeviceController.py

@@ -13,7 +13,7 @@ from django.views.generic.base import View
 from Ansjer.config import SMART_SCENE_TOPIC_NAME
 from Controller.SensorGateway.EquipmentFamilyController import EquipmentFamilyView
 from Model.models import FamilyRoomDevice, FamilyRoom, GatewaySubDevice, Device_Info, UserFamily, FamilyMember, \
-    UidSetModel, iotdeviceInfoModel, SmartScene
+    UidSetModel, iotdeviceInfoModel, SmartScene, SceneLog
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -161,7 +161,12 @@ class GatewayDeviceView(View):
                         uid_set_qs = UidSetModel.objects.filter(uid=device_qs.first().UID)
                         if uid_set_qs.exists():
                             uid_set_qs.delete()
-                        SmartScene.objects.filter(device_id=device_id).delete()
+                        smart_scene_qs = SmartScene.objects.filter(device_id=device_id)
+                        if smart_scene_qs.exists():
+                            smart_scene_qs.delete()
+                        scene_log_qs = SceneLog.objects.filter(device_id=device_id)
+                        if scene_log_qs.exists():
+                            scene_log_qs.delete()
                         device_qs.delete()
                 elif sub_ids:
                     sub_ids = sub_ids.split(',')
@@ -187,7 +192,12 @@ class GatewayDeviceView(View):
                     gateway_sub_qs = GatewaySubDevice.objects.filter(id__in=ids)
                     if gateway_sub_qs.exists():
                         gateway_sub_qs.delete()
-                    SmartScene.objects.filter(sub_device_id__in=ids).delete()
+                    smart_scene_qs = SmartScene.objects.filter(sub_device_id__in=ids)
+                    if smart_scene_qs.exists():
+                        smart_scene_qs.delete()
+                    scene_log_qs = SceneLog.objects.filter(sub_device_id__in=ids)
+                    if scene_log_qs.exists():
+                        scene_log_qs.delete()
                 return response.json(0)
         except Exception as e:
             print(e)

+ 7 - 2
Controller/SensorGateway/SubDeviceController.py

@@ -12,7 +12,7 @@ from django.db.models import Count
 from django.views import View
 
 from Ansjer.config import SMART_SCENE_TOPIC_NAME
-from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord, SmartScene
+from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord, SmartScene, SceneLog
 from Service.CommonService import CommonService
 
 
@@ -195,7 +195,12 @@ class GatewaySubDeviceView(View):
         try:
             with transaction.atomic():
                 GatewaySubDevice.objects.filter(id=sub_device_id).delete()
-                SmartScene.objects.filter(sub_device_id=sub_device_id).delete()
+                smart_scene_qs = SmartScene.objects.filter(sub_device_id=sub_device_id)
+                if smart_scene_qs.exists():
+                    smart_scene_qs.delete()
+                scene_log_qs = SceneLog.objects.filter(sub_device_id=sub_device_id)
+                if scene_log_qs.exists():
+                    scene_log_qs.delete()
             return response.json(0)
         except Exception as e:
             return response.json(500, repr(e))