package nsq import ( "apsClient/model" "apsClient/pkg/logx" "encoding/json" "fmt" ) type MsgHandler interface { HandleMessage(data []byte) (err error) } type ScheduleTask struct { } func (slf *ScheduleTask) HandleMessage(data []byte) (err error) { fmt.Println(string(data)) var tasks = make([]*DeliverScheduleTask, 0) err = json.Unmarshal(data, &tasks) if err != nil { logx.Errorf("ScheduleTask HandleMessage Unmarshal json err: %v", err.Error()) return err } for _, task := range tasks { taskRecord := model.ScheduleTask{ Id: 0, OrderId: task.Order.OrderID, ProductId: task.Order.ProductID, ProductName: task.Order.ProductName, Amount: task.Order.Amount, Unit: task.Order.Unit, StartTime: task.Order.StartTime, EndTime: task.Order.EndTime, } jsonStr, err := json.Marshal(task) if err != nil { logx.Errorf("ScheduleTask HandleMessage Marshal err: %v, old: %#v", err.Error(), task) return err } taskRecord.Data = string(jsonStr) err = model.NewScheduleTaskSearch(nil).Create(&taskRecord) if err != nil { logx.Errorf("ScheduleTask HandleMessage Create taskRecord err: %v, record: %#v", err.Error(), taskRecord) return err } } return nil }