locky 1 жил өмнө
parent
commit
0c743fbaee

+ 11 - 13
Controller/SensorGateway/SmartSceneController.py

@@ -1364,26 +1364,22 @@ class SmartSceneView(View):
         # 判断条件是否为设置时间
         time_type = scene_data_dict['condition'].get('time')
         if time_type:
-            time_task_list = scene_data_dict['task_list']
             apscheduler_obj = ApschedulerObject()
             # 关闭: 暂停任务, 打开: 恢复任务
             if scene_status == SCENE_STATUS_OFF:
-                cls.pause_job(apscheduler_obj, time_task_list)
+                cls.pause_time_job(apscheduler_obj, scene_data_dict)
             else:
-                time_stamp = cls.resume_job(apscheduler_obj, time_type, time_task_list)
-                # 返回时间戳,则更新
-                if time_stamp:
-                    scene_data_dict['condition']['time_dict']['time_stamp'] = time_stamp
-                    return scene_data_dict
+                cls.resume_time_job(apscheduler_obj, time_type, scene_data_dict)
 
     @staticmethod
-    def pause_job(apscheduler_obj, time_task_list):
+    def pause_time_job(apscheduler_obj, scene_data_dict):
         """
         暂停定时任务
         @param apscheduler_obj: apscheduler对象
-        @param time_task_list: 定时任务列表
+        @param scene_data_dict: 场景数据
         @return:
         """
+        time_task_list = scene_data_dict['task_list']
         for time_task in time_task_list:
             task_id = time_task.get('task_id')
             if task_id:
@@ -1393,14 +1389,15 @@ class SmartSceneView(View):
                     continue
 
     @classmethod
-    def resume_job(cls, apscheduler_obj, time_type, time_task_list):
+    def resume_time_job(cls, apscheduler_obj, time_type, scene_data_dict):
         """
         恢复定时任务
         @param apscheduler_obj: apscheduler对象
         @param time_type: 时间类型: date, cron
-        @param time_task_list: 定时任务列表
+        @param scene_data_dict: 场景数据
         @return: None or time_stamp
         """
+        time_task_list = scene_data_dict['task_list']
         if time_type == 'cron':
             for time_task in time_task_list:
                 task_id = time_task.get('task_id')
@@ -1412,7 +1409,7 @@ class SmartSceneView(View):
             return None
         else:
             now_time = int(time.time())
-            time_stamp = time_task_list[0]['time_dict']['time_stamp']
+            time_stamp = scene_data_dict['condition']['time_dict']['time_stamp']
             if time_stamp > now_time:
                 for time_task in time_task_list:
                     task_id = time_task.get('task_id')
@@ -1434,7 +1431,8 @@ class SmartSceneView(View):
                                                     args=(device_type, event_type, serial_number))
                     # 更新task_id
                     time_task['task_id'] = task_id
-                return time_stamp
+                # 更新场景数据的时间戳
+                scene_data_dict['condition']['time_dict']['time_stamp'] = time_stamp
 
 
 #