edb_refresh_mapping.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package edb_refresh
  2. import (
  3. "errors"
  4. "eta_gn/eta_index_lib/global"
  5. "eta_gn/eta_index_lib/utils"
  6. "time"
  7. )
  8. type EdbRefreshMapping struct {
  9. EdbRefreshMappingId int `gorm:"primaryKey;autoIncrement;column:edb_refresh_mapping_id" description:"映射ID"`
  10. Source int `gorm:"column:source" description:"来源"`
  11. SubSource int `gorm:"column:sub_source" description:"来源名称"`
  12. EdbInfoId int `gorm:"column:edb_info_id" description:"指标id,如果是数据源(钢联、有色)的,那么就是数据源里面的id"`
  13. EdbRefreshConfigId int `gorm:"column:edb_refresh_config_id" description:"刷新配置id"`
  14. SysUserId int `gorm:"column:sys_user_id" description:"操作人id"`
  15. SysUserRealName string `gorm:"column:sys_user_real_name" description:"操作人真实姓名"`
  16. ModifyTime time.Time `gorm:"column:modify_time" description:"最晚一次的更新时间"`
  17. CreateTime time.Time `gorm:"column:create_time" description:"添加时间"`
  18. }
  19. func (m *EdbRefreshMapping) Add() (err error) {
  20. if m.EdbRefreshMappingId > 0 {
  21. err = errors.New("该配置已存在")
  22. return
  23. }
  24. err = global.DEFAULT_DmSQL.Create(m).Error
  25. return
  26. }
  27. func (m *EdbRefreshMapping) Update(cols []string) (err error) {
  28. err = global.DEFAULT_DmSQL.Model(m).Select(cols).Updates(m).Error
  29. return
  30. }
  31. func (m *EdbRefreshMapping) Delete() (err error) {
  32. err = global.DEFAULT_DmSQL.Delete(m).Error
  33. return
  34. }
  35. type EdbInfoListAndRefreshConfig struct {
  36. EdbInfoId int `gorm:"primaryKey;autoIncrement;column:edb_info_id"`
  37. SourceName string `gorm:"column:source_name" description:"来源名称"`
  38. Source int `gorm:"column:source" description:"来源id"`
  39. SubSource int `gorm:"column:sub_source" description:"子数据来源:0:经济数据库,1:日期序列"`
  40. SubSourceName string `gorm:"column:sub_source_name" description:"子数据来源名称"`
  41. EdbCode string `gorm:"column:edb_code" description:"指标编码"`
  42. EdbName string `gorm:"column:edb_name" description:"指标名称"`
  43. Frequency string `gorm:"column:frequency" description:"频率"`
  44. Unit string `gorm:"column:unit" description:"单位"`
  45. StartDate time.Time `gorm:"column:start_date" description:"起始日期"`
  46. EndDate time.Time `gorm:"column:end_date" description:"终止日期"`
  47. ClassifyId int `gorm:"column:classify_id" description:"分类id"`
  48. UniqueCode string `gorm:"column:unique_code" description:"指标唯一编码"`
  49. CalculateFormula string `gorm:"column:calculate_formula" description:"计算公式"`
  50. ModifyTime string `gorm:"column:modify_time" description:"更新时间"`
  51. NoUpdate int8 `gorm:"column:no_update" description:"是否停止更新,0:继续更新;1:停止更新"`
  52. EdbRefreshConfigId int `gorm:"column:edb_refresh_config_id" description:"刷新配置id"`
  53. DataRefreshNum int `gorm:"column:data_refresh_num" description:"刷新的期数"`
  54. }
  55. func GetConfigRefreshEdbInfoListBySourceAndSubSource(sourceList, configIdList []int) (list []*EdbInfoListAndRefreshConfig, err error) {
  56. num := len(configIdList)
  57. if num <= 0 {
  58. return
  59. }
  60. var pars []interface{}
  61. sql := `SELECT a.*,b.edb_refresh_config_id FROM edb_info a
  62. JOIN edb_refresh_mapping b ON a.edb_info_id = b.edb_info_id
  63. WHERE b.edb_refresh_config_id IN (` + utils.GetOrmInReplace(num) + `) `
  64. pars = append(pars, configIdList)
  65. sourceNum := len(sourceList)
  66. if sourceNum > 0 {
  67. sql += ` AND b.source not in (` + utils.GetOrmInReplace(sourceNum) + `) `
  68. pars = append(pars, sourceList)
  69. }
  70. err = global.DEFAULT_DmSQL.Raw(sql, pars...).Scan(&list).Error
  71. return
  72. }