解析device和task的配置全部用内置方法处理

This commit is contained in:
2025-09-27 00:58:22 +08:00
parent 29fa23ba36
commit aed665b6b0
8 changed files with 46 additions and 15 deletions

View File

@@ -77,7 +77,7 @@ func newDeviceResponse(device *models.Device) (*DeviceResponse, error) {
var props map[string]interface{}
if len(device.Properties) > 0 && string(device.Properties) != "null" {
if err := json.Unmarshal(device.Properties, &props); err != nil {
if err := device.ParseProperties(&props); err != nil {
return nil, fmt.Errorf("解析设备属性失败 (ID: %d): %w", device.ID, err)
}
}

View File

@@ -189,7 +189,7 @@ func TaskToResponse(task *models.Task) (TaskResponse, error) {
var params map[string]interface{}
if len(task.Parameters) > 0 && string(task.Parameters) != "null" {
if err := json.Unmarshal(task.Parameters, &params); err != nil {
if err := task.ParseParameters(&params); err != nil {
return TaskResponse{}, fmt.Errorf("parsing task parameters failed (ID: %d): %w", task.ID, err)
}
}

View File

@@ -1,7 +1,6 @@
package task
import (
"encoding/json"
"fmt"
"time"
@@ -46,7 +45,7 @@ func (d *DelayTask) parseParameters() error {
}
var params DelayTaskParams
err := json.Unmarshal(d.executionTask.Task.Parameters, &params)
err := d.executionTask.Task.ParseParameters(&params)
if err != nil {
d.logger.Errorf("任务 %v: 解析参数失败: %v", d.executionTask.TaskID, err)
return fmt.Errorf("任务 %v: 解析参数失败: %v", d.executionTask.TaskID, err)

View File

@@ -122,7 +122,7 @@ func (r *ReleaseFeedWeightTask) parseParameters() error {
}
var params ReleaseFeedWeightTaskParams
err := json.Unmarshal(r.claimedLog.Task.Parameters, &params)
err := r.claimedLog.Task.ParseParameters(&params)
if err != nil {
r.logger.Errorf("任务 %v: 解析参数失败: %v", r.claimedLog.TaskID, err)
return fmt.Errorf("任务 %v: 解析参数失败: %v", r.claimedLog.TaskID, err)

View File

@@ -1,7 +1,6 @@
package task
import (
"encoding/json"
"errors"
"sync"
"time"
@@ -305,7 +304,7 @@ func (s *Scheduler) analysisPlan(claimedLog *models.TaskExecutionLog) error {
var params struct {
PlanID uint `json:"plan_id"`
}
if err := json.Unmarshal(claimedLog.Task.Parameters, &params); err != nil {
if err := claimedLog.Task.ParseParameters(&params); err != nil {
s.logger.Errorf("解析任务参数中的计划ID失败日志ID: %d, 错误: %v", claimedLog.ID, err)
return err
}