edb_info_update_stat.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package data_stat
  2. import (
  3. "eta/eta_index_lib/global"
  4. "eta/eta_index_lib/utils"
  5. "gorm.io/gorm"
  6. "time"
  7. )
  8. // EdbInfoUpdateStat 指标更新/刷新 汇总表(数据源明细表)
  9. type EdbInfoUpdateStat struct {
  10. Id uint64 `gorm:"primaryKey;autoIncrement;column:id" description:"ID"`
  11. EdbInfoId int `gorm:"column:edb_info_id" description:"指标ID"`
  12. SourceName string `gorm:"column:source_name" description:"来源名称"`
  13. Source int `gorm:"column:source" description:"来源id"`
  14. EdbCode string `gorm:"column:edb_code" description:"指标编码"`
  15. EdbName string `gorm:"column:edb_name" description:"指标名称"`
  16. EdbNameSource string `gorm:"column:edb_name_source" description:"指标名称来源"`
  17. Frequency string `gorm:"column:frequency" description:"频率"`
  18. Unit string `gorm:"column:unit" description:"单位"`
  19. StartDate string `gorm:"column:start_date" description:"起始日期"`
  20. EndDate string `gorm:"column:end_date" description:"终止日期"`
  21. SysUserId int `gorm:"column:sys_user_id" description:"创建人ID"`
  22. SysUserRealName string `gorm:"column:sys_user_real_name" description:"创建人姓名"`
  23. UniqueCode string `gorm:"column:unique_code" description:"指标唯一编码"`
  24. EdbCreateTime time.Time `gorm:"column:edb_create_time" description:"指标创建时间"`
  25. EdbModifyTime time.Time `gorm:"column:edb_modify_time" description:"指标修改时间"`
  26. CreateTime time.Time `gorm:"column:create_time" description:"记录创建时间"`
  27. LatestDate string `gorm:"column:latest_date" description:"数据最新日期"`
  28. LatestValue float64 `gorm:"column:latest_value" description:"数据最新值"`
  29. TerminalCode string `gorm:"column:terminal_code" description:"终端编码,用于配置在机器上"`
  30. ErDataUpdateDate string `gorm:"column:er_data_update_date" description:"本次更新,数据发生变化的最早日期"`
  31. DataUpdateResult int `gorm:"column:data_update_result" description:"数据更新结果:1成功,2失败"`
  32. DataUpdateFailedReason string `gorm:"column:data_update_failed_reason" description:"数据未正常更新原因"`
  33. DataUpdateTime string `gorm:"column:data_update_time" description:"数据更新时间"`
  34. UpdateResult int `gorm:"column:update_result" description:"本次刷新操作结果:1成功,2失败"`
  35. UpdateFailedReason string `gorm:"column:update_failed_reason" description:"刷新失败原因"`
  36. UpdateTime string `gorm:"column:update_time" description:"刷新时间"`
  37. ModifyTime time.Time `gorm:"column:modify_time" description:"修改时间"`
  38. IsAdd int `gorm:"column:is_add" description:"是否是当日新增的指标:1是,2否"`
  39. NeedRefresh int `gorm:"column:need_refresh" description:"今日是否需要定时刷新,1需要,0不需要"`
  40. HasRefresh int `gorm:"column:has_refresh" description:"今日是否发起刷新服务,1是,0否"`
  41. }
  42. func (e *EdbInfoUpdateStat) AfterFind(db *gorm.DB) (err error) {
  43. e.LatestDate = utils.GormDateStrToDateStr(e.LatestDate)
  44. e.ErDataUpdateDate = utils.GormDateStrToDateStr(e.ErDataUpdateDate)
  45. e.DataUpdateTime = utils.GormDateStrToDateTimeStr(e.DataUpdateTime)
  46. e.UpdateTime = utils.GormDateStrToDateTimeStr(e.UpdateTime)
  47. return
  48. }
  49. // Add 新增
  50. func (r *EdbInfoUpdateStat) Add(list []*EdbInfoUpdateStat) (err error) {
  51. err = global.DEFAULT_DB.CreateInBatches(list, utils.MultiAddNum).Error
  52. return
  53. }
  54. // UpdateEdbUpdateStatMulti 批量更新
  55. func UpdateEdbUpdateStatMulti(list []*EdbInfoUpdateStat) (err error) {
  56. o := global.DEFAULT_DB.Begin()
  57. defer func() {
  58. if err != nil {
  59. _ = o.Rollback()
  60. } else {
  61. _ = o.Commit()
  62. }
  63. }()
  64. sql := `UPDATE edb_info_update_stat
  65. SET
  66. edb_name = ?,
  67. edb_name_source = ?,
  68. frequency = ?,
  69. unit = ?,
  70. start_date = ?,
  71. end_date = ?,
  72. edb_modify_time = ?,
  73. latest_date = ?,
  74. latest_value = ?,
  75. terminal_code = ?,
  76. modify_time = ?,
  77. er_data_update_date = ?,
  78. is_add = ?,
  79. need_refresh = ?,
  80. has_refresh = ?,
  81. data_update_result = ?,
  82. data_update_failed_reason = ?,
  83. data_update_time = ?,
  84. update_result = ?,
  85. update_failed_reason = ?,
  86. update_time = ?
  87. WHERE
  88. id = ?`
  89. for _, v := range list {
  90. err = o.Exec(sql, v.EdbName, v.EdbNameSource, v.Frequency, v.Unit, v.StartDate, v.EndDate, v.EdbModifyTime, v.LatestDate, v.LatestValue, v.TerminalCode, v.ModifyTime, v.ErDataUpdateDate, v.IsAdd, v.NeedRefresh, v.HasRefresh, v.DataUpdateResult, v.DataUpdateFailedReason, v.DataUpdateTime, v.UpdateResult, v.UpdateFailedReason, v.UpdateTime, v.Id).Error
  91. if err != nil {
  92. return
  93. }
  94. }
  95. return
  96. }
  97. // GetEdbUpdateStatByCondition 获取指标更新汇总记录
  98. func GetEdbUpdateStatByCondition(condition string, pars []interface{}) (item []*EdbInfoUpdateStat, err error) {
  99. sql := ` SELECT * FROM edb_info_update_stat WHERE 1=1 `
  100. if condition != "" {
  101. sql += condition
  102. }
  103. err = global.DEFAULT_DB.Raw(sql, pars...).Find(&item).Error
  104. return
  105. }