| | |
| | | } |
| | | return nil |
| | | } |
| | | |
| | | type Dashboard struct { |
| | | Topic string |
| | | } |
| | | |
| | | func (slf *Dashboard) HandleMessage(data []byte) (err error) { |
| | | logx.Infof("dashboard message: %s", data) |
| | | var dashboard model.Dashboard |
| | | err = json.Unmarshal(data, &dashboard) |
| | | if err != nil { |
| | | logx.Infof("unmarshal msg err :%s", err) |
| | | return err |
| | | } |
| | | old, err := model.NewDashboardSearch(nil).SetVersion(dashboard.Version).First() |
| | | if err == gorm.ErrRecordNotFound { |
| | | err = model.NewDashboardSearch(nil).SetVersion(dashboard.Version).Create(&dashboard) |
| | | } else { |
| | | err = model.NewDashboardSearch(nil).SetId(old.ID).Updates(&dashboard) |
| | | } |
| | | if err != nil { |
| | | logx.Infof("process pull data err :%s", err) |
| | | return err |
| | | } |
| | | return nil |
| | | } |