edb_data_wind.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package data_manage
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "time"
  6. )
  7. type EdbDataWind struct {
  8. EdbDataId int `gorm:"primaryKey" `
  9. EdbInfoId int
  10. EdbCode string
  11. DataTime string
  12. Value float64
  13. Status int
  14. CreateTime time.Time
  15. ModifyTime time.Time
  16. DataTimestamp int64
  17. }
  18. func GetEdbDataWindMaxOrMinDate(edbCode string) (minDate, maxDate string, err error) {
  19. sql := ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date FROM edb_data_wind WHERE edb_code=? `
  20. var tmpDate SmmMaxOrMinDate
  21. err = global.DmSQL["data"].Raw(sql, edbCode).Scan(&tmpDate).Error
  22. if err != nil {
  23. return
  24. }
  25. minDate = tmpDate.MinDate
  26. maxDate = tmpDate.MaxDate
  27. return
  28. }
  29. type EdbDataFromWind struct {
  30. Close map[string]float64 `json:"CLOSE"`
  31. Dt map[string]int64 `json:"DT"`
  32. ErrMsg string
  33. }
  34. func EdbInfoUpdateStatusByEdbInfoId(edbInfoIds []int, isStop int, calculateEdbInfoIds []int) (err error) {
  35. o := global.DmSQL["data"].Begin()
  36. defer func() {
  37. if err != nil {
  38. _ = o.Rollback()
  39. return
  40. }
  41. _ = o.Commit()
  42. }()
  43. // 更改指标的更新状态
  44. if len(edbInfoIds) == 1 {
  45. sql := ` UPDATE edb_info SET no_update = ? WHERE edb_info_id=? `
  46. err = o.Exec(sql, isStop, edbInfoIds[0]).Error
  47. if err != nil {
  48. return
  49. }
  50. } else {
  51. sql := ` UPDATE edb_info SET no_update = ? WHERE edb_info_id IN (` + utils.GetOrmInReplace(len(edbInfoIds)) + `) `
  52. err = o.Exec(sql, isStop, edbInfoIds).Error
  53. if err != nil {
  54. return
  55. }
  56. }
  57. if len(calculateEdbInfoIds) > 0 {
  58. // 批量更新相关联的指标ID
  59. sql := ` UPDATE edb_info SET no_update = ? WHERE edb_info_id IN (` + utils.GetOrmInReplace(len(calculateEdbInfoIds)) + `) `
  60. err = o.Exec(sql, isStop, calculateEdbInfoIds).Error
  61. if err != nil {
  62. return
  63. }
  64. }
  65. return
  66. }