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
|
}
|