Procházet zdrojové kódy

删除场景删除定时任务

locky před 1 rokem
rodič
revize
717733b891
1 změnil soubory, kde provedl 13 přidání a 3 odebrání
  1. 13 3
      Controller/SensorGateway/SmartSceneController.py

+ 13 - 3
Controller/SensorGateway/SmartSceneController.py

@@ -766,8 +766,8 @@ class SmartSceneView(View):
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
-    @staticmethod
-    def delete_smart_scene(request_dict, response):
+    @classmethod
+    def delete_smart_scene(cls, request_dict, response):
         """
         删除智能场景
         @param request_dict: 请求参数
@@ -792,7 +792,17 @@ class SmartSceneView(View):
                     values('device__serial_number')[0]['device__serial_number']
             topic_name = SMART_SCENE_TOPIC.format(serial_number)
             with transaction.atomic():
-                SmartScene.objects.filter(id__in=smart_scene_id_list).delete()
+                smart_scene_qs = SmartScene.objects.filter(id__in=smart_scene_id_list).values('scene_data')
+
+                # 删除定时任务
+                for smart_scene in smart_scene_qs:
+                    scene_data = smart_scene['scene_data']
+                    if scene_data:
+                        scene_data_dict = eval(scene_data)
+                        cls.del_aps_job(scene_data_dict)
+
+                smart_scene_qs.delete()
+
                 for smart_scene_id in smart_scene_id_list:
                     # 通知设备删除场景id
                     msg = {