package controllers
|
|
import (
|
"basic.com/valib/bhomeclient.git"
|
"vamicro/report-service/models"
|
"vamicro/report-service/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格式"}
|
}
|
|
if err := params.Update(); err != nil {
|
return &bhomeclient.Reply{Success: false, Msg: "更新失败"}
|
}
|
|
// 更新全局
|
models.IntervalConfig.Read()
|
|
// 重置上报任务
|
tasks.ResetDeviceInfoReport()
|
|
return &bhomeclient.Reply{Success: true, Data: params}
|
}
|
|
func (ac ReportServiceController) GetIntervalConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
var module models.Interval
|
config, _ := module.FindAll()
|
|
return &bhomeclient.Reply{Success: true, Data: config}
|
}
|
|
func (ac ReportServiceController) SetIntervalConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
var params models.Interval
|
// 记录之前配置的值
|
oldDevInfoInterval := models.IntervalConfig.DevInfo
|
oldDevStateInterval := models.IntervalConfig.DevState
|
|
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.IntervalConfig.Read()
|
|
// 判断是否修改
|
if oldDevInfoInterval != models.IntervalConfig.DevInfo {
|
tasks.ResetDeviceInfoReport()
|
}
|
|
// 判断是否修改
|
if oldDevStateInterval != models.IntervalConfig.DevState {
|
tasks.ResetDeviceStateReport()
|
}
|
|
return &bhomeclient.Reply{Success: true, Data: params}
|
}
|