liuxiulin il y a 2 jours
Parent
commit
d403313344

+ 5 - 2
services/scene-service/internal/service/manager/device_status.go

@@ -128,9 +128,12 @@ func (d *DeviceSceneService) monitorTask(config DeviceSceneConfig) {
 			}
 			taskExecutor := NewTaskExecutor(config.Actions)
 			if err = taskExecutor.Do(config.SceneId); err != nil {
-				server.Log.Errorf("weather do taskid :%s error:%s", config.SceneId, err.Error())
+				server.Log.Errorf("device_status do taskid :%s error:%s", config.SceneId, err.Error())
+			}
+			err = taskExecutor.saveHis(config.SceneId, result.ConditionId)
+			if err != nil {
+				server.Log.Errorf("device_status save taskid :%s error:%s", config.SceneId, err.Error())
 			}
-			err = taskExecutor.saveHis(config.SceneId, result.ConditionId, config.Actions[0])
 		case <-config.stopChan: // 收到停止信号
 			config.ticker.Stop()
 			return

+ 17 - 19
services/scene-service/internal/service/manager/executer.go

@@ -2,9 +2,7 @@ package manager
 
 import (
 	"fmt"
-	"github.com/gogf/gf/util/guid"
 	"github.com/gogf/gf/v2/encoding/gjson"
-	"sparrow/pkg/models"
 	"sparrow/pkg/rpcs"
 	"sparrow/pkg/server"
 	"sparrow/pkg/utils"
@@ -108,7 +106,7 @@ func getAccessRPCHost(deviceid string) (string, error) {
 	return reply.AccessRPCHost, nil
 }
 
-func (a *TaskExecutor) saveHis(id string, conditionId []string, action *Action) error {
+func (a *TaskExecutor) saveHis(id string, conditionId []string) error {
 
 	client := utils.NewHttpClient()
 	url := "http://127.0.0.1:8199/iot/v1/scene_history"
@@ -120,20 +118,20 @@ func (a *TaskExecutor) saveHis(id string, conditionId []string, action *Action)
 	if err != nil {
 		server.Log.Errorf("sync his error:%s", err.Error())
 	}
-
-	args := models.SceneHis{
-		RecordId:    guid.S(),
-		SceneID:     id,
-		DeviceId:    action.DeviceID,
-		SubDeviceId: action.SubDeviceId,
-	}
-	if action.ExecutorProperty.FunctionCode != "" {
-		args.Cmd = action.ExecutorProperty.FunctionCode
-		args.Params = gjson.New(action.ExecutorProperty.FunctionValue).MustToJsonString()
-	}
-	if action.PlcPubMessage != nil {
-		args.Topic = action.PlcPubMessage.Topic
-		args.Payload = string(action.PlcPubMessage.Payload)
-	}
-	return server.RPCCallByName(nil, rpcs.RegistryServerName, "Registry.CreateSceneHis", args, &rpcs.ReplyEmptyResult{})
+	return err
+	//args := models.SceneHis{
+	//	RecordId:    guid.S(),
+	//	SceneID:     id,
+	//	DeviceId:    action.DeviceID,
+	//	SubDeviceId: action.SubDeviceId,
+	//}
+	//if action.ExecutorProperty.FunctionCode != "" {
+	//	args.Cmd = action.ExecutorProperty.FunctionCode
+	//	args.Params = gjson.New(action.ExecutorProperty.FunctionValue).MustToJsonString()
+	//}
+	//if action.PlcPubMessage != nil {
+	//	args.Topic = action.PlcPubMessage.Topic
+	//	args.Payload = string(action.PlcPubMessage.Payload)
+	//}
+	//return server.RPCCallByName(nil, rpcs.RegistryServerName, "Registry.CreateSceneHis", args, &rpcs.ReplyEmptyResult{})
 }

+ 6 - 1
services/scene-service/internal/service/manager/timer.go

@@ -59,9 +59,14 @@ func (t *TimerSceneService) Add(config string) error {
 }
 func (t *TimerSceneService) addTask(sceneId string, c *TimerTaskCondition, actions []*Action) error {
 	_, err := t.cron.AddTimes(context.Background(), c.Cron, c.Times, func(ctx context.Context) {
-		if err := NewTaskExecutor(actions).Do(sceneId); err != nil {
+		taskExecutor := NewTaskExecutor(actions)
+		if err := taskExecutor.Do(sceneId); err != nil {
 			server.Log.Errorf("do task :%s error:%s", c.TaskId, err.Error())
 		}
+		err := taskExecutor.saveHis(sceneId, []string{c.TaskId})
+		if err != nil {
+			server.Log.Errorf("save task history error:sceneId:%s", sceneId)
+		}
 	}, c.TaskId)
 	return err
 }

+ 1 - 1
services/scene-service/internal/service/manager/weather.go

@@ -78,7 +78,7 @@ func (w *WeatherSceneService) monitorTask(task WeatherSceneConfig) {
 			}
 			if result.Result {
 				taskExecutor := NewTaskExecutor(task.Actions)
-				if err := taskExecutor.Do(task.SceneId); err != nil {
+				if err = taskExecutor.Do(task.SceneId); err != nil {
 					server.Log.Errorf("weather do taskid :%s error:%s", task.SceneId, err.Error())
 				}
 				err = taskExecutor.saveHis(task.SceneId, result.ConditionId, task.Actions[0])