package data_stat import ( "errors" "eta_gn/eta_api/models/data_manage" "eta_gn/eta_api/utils" "fmt" "time" ) // SaveEdbTerminal 保存数据源终端信息 func SaveEdbTerminal(req *data_manage.AddEdbTerminalListReq) (errMsg string, err error) { nowTime := time.Now().Local() // 更新 if req.TerminalId > 0 { item, e := data_manage.GetEdbTerminalById(req.TerminalId) if e != nil { if utils.IsErrNoRow(e) { errMsg = "终端不存在" err = errors.New(errMsg) return } errMsg = "获取终端信息失败" err = errors.New("获取终端信息失败, Err:" + e.Error()) return } updateCols := make([]string, 0) updateCols = append(updateCols, "Source", "Name", "ServerUrl", "DirPath", "Num", "Value", "ModifyTime") item.Source = req.Source item.Name = req.Name item.ServerUrl = req.ServerUrl item.DirPath = req.DirPath item.Num = req.Num item.Value = req.Value // todo 状态是否可修改 //item.Status = 1 item.ModifyTime = nowTime if e := item.Update(updateCols); e != nil { errMsg = "更新失败" err = errors.New("更新终端失败, Err:" + e.Error()) } return } terminalCode := createTerminalCode(req.Source, req.Name) //item.TerminalCode = req.TerminalCode // 新增 newTerminal := &data_manage.EdbTerminal{ Source: req.Source, Name: req.Name, TerminalCode: terminalCode, ServerUrl: req.ServerUrl, DirPath: req.DirPath, Num: req.Num, Status: 1, Value: req.Value, CreateTime: nowTime, ModifyTime: nowTime, } if e := newTerminal.Add(); e != nil { errMsg = "新增失败" err = errors.New("新增终端失败, Err:" + e.Error()) } return } // SetEdbTerminalStatus 启用/禁用 终端 func SetEdbTerminalStatus(id int, status int) (errMsg string, err error) { nowTime := time.Now().Local() // 更新 item, e := data_manage.GetEdbTerminalById(id) if e != nil { if utils.IsErrNoRow(e) { errMsg = "终端不存在" err = errors.New(errMsg) return } errMsg = "获取终端信息失败" err = errors.New("获取终端信息失败, Err:" + e.Error()) return } updateCols := make([]string, 0) updateCols = append(updateCols, "Status", "ModifyTime") item.Status = status item.ModifyTime = nowTime if e := item.Update(updateCols); e != nil { errMsg = "更新失败" err = errors.New("更新终端失败, Err:" + e.Error()) } return } func createTerminalCode(source int, sourceName string) (terminalCode string) { randInt := utils.GetRandNumber(1000) terminalCode = utils.MD5(fmt.Sprintf("%d_%s_%s_%d", source, sourceName, time.Now(), randInt)) return }