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