|
@@ -1,8 +1,9 @@
|
|
|
package manager
|
|
package manager
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
|
+ "bytes"
|
|
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
"fmt"
|
|
|
- "github.com/gogf/gf/v2/encoding/gjson"
|
|
|
|
|
"sparrow/pkg/rpcs"
|
|
"sparrow/pkg/rpcs"
|
|
|
"sparrow/pkg/server"
|
|
"sparrow/pkg/server"
|
|
|
"sparrow/pkg/utils"
|
|
"sparrow/pkg/utils"
|
|
@@ -42,12 +43,18 @@ type PlcPubMessage struct {
|
|
|
// TaskExecutor 任务执行器,用来执行具体的任务动作
|
|
// TaskExecutor 任务执行器,用来执行具体的任务动作
|
|
|
type TaskExecutor struct {
|
|
type TaskExecutor struct {
|
|
|
Actions []*Action
|
|
Actions []*Action
|
|
|
|
|
+ client *utils.HttpClient
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func NewTaskExecutor(actions []*Action) *TaskExecutor {
|
|
func NewTaskExecutor(actions []*Action) *TaskExecutor {
|
|
|
|
|
+ client := utils.NewHttpClient()
|
|
|
|
|
+ client.SetLogger(server.Log)
|
|
|
|
|
+
|
|
|
return &TaskExecutor{
|
|
return &TaskExecutor{
|
|
|
Actions: actions,
|
|
Actions: actions,
|
|
|
|
|
+ client: client,
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (a *TaskExecutor) Do(id string) error {
|
|
func (a *TaskExecutor) Do(id string) error {
|
|
@@ -109,16 +116,33 @@ func getAccessRPCHost(deviceid string) (string, error) {
|
|
|
|
|
|
|
|
func (a *TaskExecutor) saveHis(id string, conditionId []string) error {
|
|
func (a *TaskExecutor) saveHis(id string, conditionId []string) error {
|
|
|
|
|
|
|
|
- client := utils.NewHttpClient()
|
|
|
|
|
url := "http://127.0.0.1:8199/iot/v1/scene_history"
|
|
url := "http://127.0.0.1:8199/iot/v1/scene_history"
|
|
|
body := make(map[string]interface{})
|
|
body := make(map[string]interface{})
|
|
|
body["scene_id"] = id
|
|
body["scene_id"] = id
|
|
|
- body["condition_id"] = strings.Join(conditionId, ",")
|
|
|
|
|
- fmt.Printf("sync his:%s", gjson.New(body).MustToJsonString())
|
|
|
|
|
- _, err := client.Post(url, "application/json", gjson.New(body))
|
|
|
|
|
|
|
+ if len(conditionId) > 0 {
|
|
|
|
|
+ body["condition_id"] = strings.Join(conditionId, ",")
|
|
|
|
|
+ }
|
|
|
|
|
+ w := new(bytes.Buffer)
|
|
|
|
|
+ if err := json.NewEncoder(w).Encode(body); err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
|
|
+ req, err := utils.NewRequest("POST", url, w)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- server.Log.Errorf("sync his error:%s", err.Error())
|
|
|
|
|
|
|
+ server.Log.Error(err)
|
|
|
|
|
+ return err
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ req.Header.Add("Content-Type", "application/json")
|
|
|
|
|
+ _, err = a.client.Do(req)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ server.Log.Errorf("请求出错%s", err.Error())
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //_, err := a.client.Post(url, "application/json", gjson.New(body))
|
|
|
|
|
+ //if err != nil {
|
|
|
|
|
+ // server.Log.Errorf("sync his error:%s", err.Error())
|
|
|
|
|
+ //}
|
|
|
return err
|
|
return err
|
|
|
//args := models.SceneHis{
|
|
//args := models.SceneHis{
|
|
|
// RecordId: guid.S(),
|
|
// RecordId: guid.S(),
|