package controllers import ( "basic.com/valib/bhomeclient.git" "time" "vamicro/config" "vamicro/device-client/models" "vamicro/device-client/tasks" ) type ReportServiceController struct { bk bhomeclient.Broker } func (ac ReportServiceController) GetDevInfo(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { var module models.Device config, _ := module.FindAll() return &bhomeclient.Reply{Success: true, Data: config} } func (ac ReportServiceController) SetDevInfo(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { var params models.Device if err := c.BindJSON(¶ms); err != nil { return &bhomeclient.Reply{Success: false, Msg: "参数格式错误,非法的json格式"} } params.DevId = config.Server.AnalyServerId // 第一次保存, 设置安装时间 if params.InstallTime == "" { params.InstallTime = time.Now().Format("2006-01-02 15:04:05") } if err := params.Update(); err != nil { return &bhomeclient.Reply{Success: false, Msg: "更新失败"} } // 更新全局 models.DeviceInfo.Read() models.ReportConfig.Read() // 重置上报任务 tasks.ResetDeviceInfoReportTask() return &bhomeclient.Reply{Success: true, Data: params} } func (ac ReportServiceController) GetReportConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { var module models.Report config, _ := module.FindAll() return &bhomeclient.Reply{Success: true, Data: config} } func (ac ReportServiceController) SetReportConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { var params models.Report // 记录之前配置的值 oldServerAddr := models.ReportConfig.ServerAddr oldInterval := models.ReportConfig.Interval if err := c.BindJSON(¶ms); err != nil { return &bhomeclient.Reply{Success: false, Msg: "参数格式错误,非法的json格式"} } if err := params.Update(); err != nil { return &bhomeclient.Reply{Success: false, Msg: "更新失败"} } // 更新全局 models.ReportConfig.Read() // 判断是否修改 if oldServerAddr != models.ReportConfig.ServerAddr || oldInterval != models.ReportConfig.Interval { tasks.ResetDeviceInfoReportTask() } return &bhomeclient.Reply{Success: true, Data: params} }