predict_edb_conf.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "hongze/hongze_edb_lib/utils"
  5. "time"
  6. )
  7. type PredictEdbConf struct {
  8. PredictEdbInfoId int `orm:"column(predict_edb_info_id);pk" description:"预测指标id"`
  9. SourceEdbInfoId int `description:"来源指标id"`
  10. RuleType int `description:"预测规则,1:最新,2:固定值"`
  11. FixedValue float64 `description:"固定值"`
  12. ModifyTime time.Time `description:"修改时间"`
  13. CreateTime time.Time `description:"添加时间"`
  14. }
  15. // GetPredictEdbConfById 根据预测指标id获取预测指标配置信息
  16. func GetPredictEdbConfById(edbInfoId int) (item *PredictEdbConf, err error) {
  17. o := orm.NewOrm()
  18. sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? `
  19. err = o.Raw(sql, edbInfoId).QueryRow(&item)
  20. return
  21. }
  22. // GetPredictEdbConfCount 根据来源指标id获取被引用的次数
  23. func GetPredictEdbConfCount(sourceEdbInfoId int) (count int, err error) {
  24. o := orm.NewOrm()
  25. sql := ` SELECT COUNT(1) AS count FROM predict_edb_conf WHERE source_edb_info_id=? `
  26. err = o.Raw(sql, sourceEdbInfoId).QueryRow(&count)
  27. return
  28. }
  29. // ModifyPredictEdbInfoMaxAndMinInfoBySourceEdbInfoId 根据来源指标修改预测指标的最新数据信息
  30. func ModifyPredictEdbInfoMaxAndMinInfoBySourceEdbInfoId(sourceEdbInfoId int, item *EdbInfoMaxAndMinInfo) (err error) {
  31. o := orm.NewOrm()
  32. var list []*PredictEdbConf
  33. sql := ` SELECT * FROM predict_edb_conf WHERE source_edb_info_id=? `
  34. total, err := o.Raw(sql, sourceEdbInfoId).QueryRows(&list)
  35. if err != nil {
  36. return
  37. }
  38. if total > 0 {
  39. idList := make([]int, 0)
  40. for _, v := range list {
  41. idList = append(idList, v.PredictEdbInfoId)
  42. }
  43. sql := ` UPDATE edb_info SET start_date=?,min_value=?,max_value=?,is_update=2,latest_date=?,latest_value=?,modify_time=NOW() WHERE edb_info_id in (` + utils.GetOrmInReplace(int(total)) + `) `
  44. _, err = o.Raw(sql, item.MinDate, item.MinValue, item.MaxValue, item.MaxDate, item.LatestValue, idList).Exec()
  45. }
  46. return
  47. }