edb_refresh_default_config.go 4.0 KB

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