liuxiulin 1 dia atrás
pai
commit
16d8807d29

+ 4 - 7
services/scene-service/internal/service/manager/device_status.go

@@ -80,13 +80,10 @@ func (d *DeviceSceneService) Update(config string) error {
 	return nil
 }
 
-func (d *DeviceSceneService) Remove(config string) error {
-	var c DeviceSceneConfig
-	err := json.Unmarshal([]byte(config), &c)
-	if err != nil {
-		server.Log.Errorf("config to timerConfig error :%s", err.Error())
-	}
-
+func (d *DeviceSceneService) Remove(id string) error {
+	scene := d.tasks.Get(id)
+	c := scene.(DeviceSceneConfig)
+	c.stopChan <- struct{}{}
 	d.tasks.Remove(c.SceneId)
 	server.Log.Debugf("RemoveTimeScene :%s", c.SceneId)
 	return nil

+ 4 - 4
services/scene-service/internal/service/scene.go

@@ -40,9 +40,9 @@ func NewSceneService() *SceneService {
 type TaskManager interface {
 	Add(config string) error
 	Update(config string) error
-	Remove(config string) error
-	Start(config string) error
-	Stop(config string) error
+	Remove(id string) error
+	Start(id string) error
+	Stop(id string) error
 }
 
 // getServiceByType 根据场景类型获取对应的服务实例
@@ -85,7 +85,7 @@ func (m *SceneService) SubmitAction(args rpcs.ArgsSubmitSceneAction, reply *rpcs
 		m.scenes.Set(scene.Id, scene)
 		return m.saveSceneRedis(scene)
 	case "remove":
-		err = srv.Remove(scene.Config)
+		err = srv.Remove(scene.Id)
 		if err != nil {
 			server.Log.Errorf("delete scene error: Id: %s, error: %v", scene.Id, err)
 		}