edb_refresh_default_config.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. package edb_refresh
  2. import (
  3. "errors"
  4. "eta/eta_index_lib/global"
  5. "time"
  6. )
  7. // EdbRefreshDefaultConfig
  8. // @Description: 指标的默认刷新时间配置表
  9. type EdbRefreshDefaultConfig struct {
  10. Id int `gorm:"primaryKey;autoIncrement;column:id" description:"唯一ID"`
  11. Source int `gorm:"column:source" description:"来源"`
  12. SubSource int `gorm:"column:sub_source" description:"来源名称"`
  13. Frequency string `gorm:"column:frequency" description:"频度"`
  14. RefreshFrequency string `gorm:"column:refresh_frequency" description:"刷新频率"`
  15. RefreshFrequencyDay int `gorm:"column:refresh_frequency_day" description:"具体刷新的日期"`
  16. RefreshTime string `gorm:"column:refresh_time" description:"刷新时间"`
  17. RefreshAllData int `gorm:"column:refresh_all_data" description:"是否刷新所有数据,0:否,1:刷新所有数据"`
  18. RefreshDataNum int `gorm:"column:refresh_data_num" description:"刷新单元格数"`
  19. ModifyTime time.Time `gorm:"column:modify_time" description:"最晚一次的更新时间"`
  20. CreateTime time.Time `gorm:"column:create_time" description:"添加时间"`
  21. }
  22. // Add
  23. // @Description: 添加
  24. // @author: Roc
  25. // @receiver m
  26. // @datetime 2023-12-14 16:11:10
  27. // @param cols []string
  28. // @return err error
  29. func (m *EdbRefreshDefaultConfig) Add() (err error) {
  30. if m.Id > 0 {
  31. err = errors.New("该配置已存在")
  32. return
  33. }
  34. err = global.DEFAULT_DB.Create(m).Error
  35. return
  36. }
  37. // Update
  38. // @Description: 更新
  39. // @author: Roc
  40. // @receiver m
  41. // @datetime 2023-12-14 16:11:10
  42. // @param cols []string
  43. // @return err error
  44. func (m *EdbRefreshDefaultConfig) Update(cols []string) (err error) {
  45. err = global.DEFAULT_DB.Model(m).Select(cols).Updates(m).Error
  46. return
  47. }
  48. // Delete
  49. // @Description: 删除
  50. // @author: Roc
  51. // @receiver m
  52. // @datetime 2023-12-14 16:11:10
  53. // @return err error
  54. func (m *EdbRefreshDefaultConfig) Delete() (err error) {
  55. err = global.DEFAULT_DB.Delete(m).Error
  56. return
  57. }
  58. // GetListBySourceAndFrequency
  59. // @Description: 根据来源和频度获取列表
  60. // @author: Roc
  61. // @datetime 2024-01-04 17:39:47
  62. // @param source int
  63. // @param subSource int
  64. // @param frequency string
  65. // @return list []*EdbRefreshDefaultConfig
  66. // @return err error
  67. func GetListBySourceAndFrequency(source, subSource int, frequency string) (list []*EdbRefreshDefaultConfig, err error) {
  68. sql := `SELECT * FROM edb_refresh_default_config
  69. WHERE source = ? AND sub_source = ? AND frequency = ? ORDER BY id ASC `
  70. err = global.DEFAULT_DB.Raw(sql, source, subSource, frequency).Find(&list).Error
  71. return
  72. }
  73. // GetListByCondition
  74. // @Description: 根据条条件获取默认配置列表
  75. // @author: Roc
  76. // @datetime 2024-01-09 13:28:49
  77. // @param condition string
  78. // @param pars []interface{}
  79. // @return list []*EdbRefreshDefaultConfig
  80. // @return err error
  81. func GetListByCondition(condition string, pars []interface{}) (list []*EdbRefreshDefaultConfig, err error) {
  82. sql := `SELECT * FROM edb_refresh_default_config
  83. WHERE 1 = 1 `
  84. if condition != "" {
  85. sql += condition
  86. }
  87. sql += ` ORDER BY id ASC `
  88. err = global.DEFAULT_DB.Raw(sql, pars...).Find(&list).Error
  89. return
  90. }
  91. // GetDefaultRefreshEdbInfoListBySourceAndSubSource
  92. // @Description: 根据来源获取默认刷新的指标列表
  93. // @author: Roc
  94. // @datetime 2024-01-09 16:22:49
  95. // @param source int
  96. // @param subSource int
  97. // @return list []*data_manage.EdbInfo
  98. // @return err error
  99. func GetDefaultRefreshEdbInfoListBySourceAndSubSource(source, subSource int, frequencyList []string) (list []*EdbInfoListAndRefreshConfig, err error) {
  100. num := len(frequencyList)
  101. if num <= 0 {
  102. return
  103. }
  104. sql := `SELECT a.* FROM edb_info a
  105. LEFT JOIN edb_refresh_mapping b ON a.edb_info_id = b.edb_info_id
  106. WHERE a.source = ? AND a.sub_source = ? AND a.frequency IN (?) AND b.edb_info_id is null`
  107. err = global.DEFAULT_DB.Raw(sql, source, subSource, frequencyList).Find(&list).Error
  108. return
  109. }