package edb_refresh import ( "errors" "eta/eta_index_lib/utils" "github.com/beego/beego/v2/client/orm" "time" ) // EdbRefreshMapping // @Description: 指标刷新时间配置关系表 type EdbRefreshMapping struct { EdbRefreshMappingId int `orm:"column(edb_refresh_mapping_id);pk"` Source int `description:"来源"` SubSource int `description:"来源名称"` EdbInfoId int `description:"指标id,如果是数据源(钢联、有色)的,那么就是数据源里面的id"` EdbRefreshConfigId int `description:"刷新配置id"` SysUserId int `description:"操作人id"` SysUserRealName string `description:"操作人真实姓名"` ModifyTime time.Time `description:"最晚一次的更新时间"` CreateTime time.Time `description:"添加时间"` } // Add // @Description: 添加 // @author: Roc // @receiver m // @datetime 2023-12-14 16:11:10 // @param cols []string // @return err error func (m *EdbRefreshMapping) Add() (err error) { if m.EdbRefreshMappingId > 0 { err = errors.New("该配置已存在") return } o := orm.NewOrm() lastId, err := o.Insert(m) if err != nil { return } m.EdbRefreshMappingId = int(lastId) return } // Update // @Description: 更新 // @author: Roc // @receiver m // @datetime 2023-12-14 16:11:10 // @param cols []string // @return err error func (m *EdbRefreshMapping) Update(cols []string) (err error) { o := orm.NewOrm() _, err = o.Update(m, cols...) return } // Delete // @Description: 删除 // @author: Roc // @receiver m // @datetime 2023-12-14 16:11:10 // @return err error func (m *EdbRefreshMapping) Delete() (err error) { o := orm.NewOrm() _, err = o.Delete(m) return } type EdbInfoListAndRefreshConfig struct { EdbInfoId int `orm:"column(edb_info_id);pk"` SourceName string `description:"来源名称"` Source int `description:"来源id"` SubSource int `description:"子数据来源:0:经济数据库,1:日期序列"` SubSourceName string `description:"子数据来源名称"` EdbCode string `description:"指标编码"` EdbName string `description:"指标名称"` Frequency string `description:"频率"` Unit string `description:"单位"` StartDate time.Time `description:"起始日期"` EndDate time.Time `description:"终止日期"` ClassifyId int `description:"分类id"` UniqueCode string `description:"指标唯一编码"` CalculateFormula string `description:"计算公式"` ModifyTime string `description:"更新时间"` NoUpdate int8 `description:"是否停止更新,0:继续更新;1:停止更新"` EdbRefreshConfigId int `description:"刷新配置id"` DataRefreshNum int `description:"刷新的期数"` } // GetConfigRefreshEdbInfoListBySourceAndSubSource // @Description: 根据来源和配置id列表获取指标列表 // @author: Roc // @datetime 2024-01-09 17:28:06 // @param sourceList []int // @param configIdList []int // @return list []*data_manage.EdbInfoList // @return err error func GetConfigRefreshEdbInfoListBySourceAndSubSource(sourceList, configIdList []int) (list []*EdbInfoListAndRefreshConfig, err error) { num := len(configIdList) if num <= 0 { return } var pars []interface{} o := orm.NewOrm() sql := `SELECT a.*,b.edb_refresh_config_id FROM edb_info a JOIN edb_refresh_mapping b ON a.edb_info_id = b.edb_info_id WHERE b.edb_refresh_config_id IN (` + utils.GetOrmInReplace(num) + `) ` pars = append(pars, configIdList) sourceNum := len(sourceList) if sourceNum > 0 { sql += ` AND b.source not in (` + utils.GetOrmInReplace(sourceNum) + `) ` pars = append(pars, sourceList) } _, err = o.Raw(sql, pars).QueryRows(&list) return }