package data_manage import ( "eta/eta_api/utils" "time" "github.com/beego/beego/v2/client/orm" "github.com/rdlucklib/rdluck_tools/paging" ) type BaseFromUsdaFasIndex struct { BaseFromUsdaFasIndexId int `orm:"column(base_from_usda_fas_index_id);pk"` ClassifyId int IndexCode string IndexName string Frequency string Unit string Sort int StartDate string `description:"开始日期"` EndDate string `description:"结束日期"` EndValue float64 CreateTime time.Time ModifyTime time.Time } type BaseFromUsdaFasIndexList struct { BaseFromUsdaFasIndexId int `orm:"column(base_from_usda_fas_index_id);pk"` ClassifyId int Interface string EdbInfoId int EdbUniqueCode string `description:"指标库唯一编码"` EdbClassifyId int `description:"指标库分类ID"` StartDate string EndDate string EndValue float64 IndexCode string IndexName string Frequency string Unit string Sort int CreateTime string ModifyTime string EdbExist int `description:"指标库是否已添加:0-否;1-是"` DataList []*BaseFromUsdaFasData Paging *paging.PagingItem `description:"分页数据"` } type BaseFromUsdaFasIndexSearchList struct { List []*BaseFromUsdaFasIndexList Paging *paging.PagingItem `description:"分页数据"` } type UsdaFasSingleDataResp struct { BaseFromUsdaFasIndexId int ClassifyId int EdbInfoId int IndexCode string IndexName string Frequency string Unit string StartTime string CreateTime string ModifyTime string EdbExist int `description:"指标库是否已添加:0-否;1-是"` Data []*UsdaFasSingleData } type UsdaFasSingleData struct { Value string `orm:"column(value)" description:"日期"` DataTime string `orm:"column(data_time)" description:"值"` } func GetUsdaFasIndexByClassifyId(classifyId int) (items []*BaseFromUsdaFasIndex, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT base_from_usda_fas_index_id, classify_id, index_code, index_name FROM base_from_usda_fas_index WHERE classify_id=? ORDER BY sort ASC, base_from_usda_fas_index_id ASC ` _, err = o.Raw(sql, classifyId).QueryRows(&items) return } func GetUsdaFasIndex(condition string, pars interface{}) (items []*BaseFromUsdaFasIndexList, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_usda_fas_index WHERE 1=1 ` if condition != "" { sql += condition } sql += ` ORDER BY sort ASC, base_from_usda_fas_index_id asc` _, err = o.Raw(sql, pars).QueryRows(&items) return } func GetUsdaFasIndexPage(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromUsdaFasIndexList, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_usda_fas_index WHERE 1=1 ` if condition != "" { sql += condition } sql += ` ORDER BY sort ASC, base_from_usda_fas_index_id asc LIMIT ?,?` _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items) return } func GetUsdaFasIndexPageCount(condition string, pars interface{}) (count int, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT COUNT(1) AS count FROM base_from_usda_fas_index WHERE 1=1 ` if condition != "" { sql += condition } err = o.Raw(sql, pars).QueryRow(&count) return } func GetUsdaFasIndexDataCount(indexCode string) (count int, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT COUNT(1) AS count FROM base_from_usda_fas_data WHERE index_code=? ` err = o.Raw(sql, indexCode).QueryRow(&count) return } func GetUsdaFasIndexDataByDataTime(indexCodes []string, startDate, endDate string) (items []*BaseFromUsdaFasData, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCodes)) + `) and data_time >=? and data_time <? ORDER BY data_time DESC ` _, err = o.Raw(sql, indexCodes, startDate, endDate).QueryRows(&items) return } func GetUsdaFasIndexDataTimePageByCodes(indexCodes []string, startSize, pageSize int) (dataTimes []string, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT data_time FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCodes)) + `) GROUP BY data_time ORDER BY data_time DESC LIMIT ?,? ` _, err = o.Raw(sql, indexCodes, startSize, pageSize).QueryRows(&dataTimes) return } func GetUsdaFasIndexDataTimePageCount(indexCodes []string) (count int, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT COUNT(DISTINCT data_time) AS count FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCodes)) + `) ` err = o.Raw(sql, indexCodes).QueryRow(&count) return } func GetUsdaFasIndexDataByCodes(indexCode []string) (items []*BaseFromUsdaFasData, err error) { if len(indexCode) == 0 { return } o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_usda_fas_data WHERE index_code in (` + utils.GetOrmInReplace(len(indexCode)) + `) ORDER BY data_time DESC ` _, err = o.Raw(sql, indexCode).QueryRows(&items) return } // GetUsdaFasByConditionAndFrequency 根据条件获取涌益咨询指标列表 func GetUsdaFasByConditionAndFrequency(condition, frequency string, pars []interface{}) (items []*BaseFromUsdaFasIndex, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_usda_fas_index WHERE 1=1 ` if condition != "" { sql += condition } sql += ` AND frequency=?` sql += ` ORDER BY sort ASC, base_from_usda_fas_index_id ASC` _, err = o.Raw(sql, pars, frequency).QueryRows(&items) return } func GetUsdaFasFrequencyByCondition(condition string, pars []interface{}) (items []string, err error) { sql := `SELECT DISTINCT frequency FROM base_from_usda_fas_index WHERE 1=1 ` if condition != "" { sql += condition } sql += ` ORDER BY FIELD(frequency,'日度','周度','旬度','月度','季度','半年度','年度') ` o := orm.NewOrmUsingDB("data") _, err = o.Raw(sql, pars...).QueryRows(&items) return } // GetUsdaFasDataDataTimeByIndexId 根据指标id获取指标数据的日期列表 func GetUsdaFasDataDataTimeByIndexId(indexIdList []int) (items []string, err error) { if len(indexIdList) == 0 { return } o := orm.NewOrmUsingDB("data") sql := ` SELECT DISTINCT data_time FROM base_from_usda_fas_data WHERE base_from_usda_fas_index_id IN (` + utils.GetOrmInReplace(len(indexIdList)) + `) ORDER BY data_time DESC` _, err = o.Raw(sql, indexIdList).QueryRows(&items) return } type BaseFromUsdaFasData struct { BaseFromUsdaFasDataId int `orm:"column(base_from_usda_fas_data_id);pk"` BaseFromUsdaFasIndexId int IndexCode string DataTime string Value string CreateTime string ModifyTime string DataTimestamp int64 } type BaseFromUsdaFasIndexSearchItem struct { BaseFromUsdaFasIndexId int `orm:"column(base_from_usda_fas_index_id);pk"` ClassifyId int ParentClassifyId int IndexCode string IndexName string } // BatchCheckUsdaFasEdbReq 指标数据结构体 type BatchCheckUsdaFasEdbReq struct { //IsJoinEdb int `form:"IsJoinEdb" description:"是否加到指标库,0:未加到指标库"` Frequencies string `description:"频度;枚举值:日度、周度、月度、季度、半年度、年度"` Keyword string `description:"关键字"` ClassifyIds string `description:"所选品种id列表"` ListAll bool `form:"ListAll" json:"ListAll" description:"列表全选"` TradeCodeList string `form:"TradeCodeList" json:"TradeCodeList" description:"全选为false时, 该数组为选中; 全选为true时, 该数组为不选的指标"` } // GetUsdaFasItemList 模糊查询UsdaFas数据库指标列表 func GetUsdaFasItemList(condition string) (items []*BaseFromUsdaFasIndexSearchItem, err error) { o := orm.NewOrmUsingDB("data") sql := "SELECT * FROM base_from_usda_fas_index WHERE 1=1" if condition != "" { sql += condition } _, err = o.Raw(sql).QueryRows(&items) return } func GetUsdaFasIndexDataByCode(indexCode string) (list []*BaseFromUsdaFasData, err error) { o := orm.NewOrmUsingDB("data") sql := `SELECT * FROM base_from_usda_fas_data WHERE index_code=? ` _, err = o.Raw(sql, indexCode).QueryRows(&list) return } func GetBaseFromUsdaFasIndexByIndexCode(indexCode string) (list *BaseFromUsdaFasIndex, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_usda_fas_index WHERE index_code=? ` err = o.Raw(sql, indexCode).QueryRow(&list) return } type BaseFromUsdaFasIndexType struct { Type2 string `orm:"column(type_2)"` Type3 string `orm:"column(type_3)"` } // Update 更新UsdaFas指标基础信息 func (item *BaseFromUsdaFasIndex) Update(cols []string) (err error) { o := orm.NewOrmUsingDB("data") _, err = o.Update(item, cols...) return } // EditUsdaFasIndexInfoResp 新增指标的返回 type EditUsdaFasIndexInfoResp struct { BaseFromUsdaFasIndexId int `description:"指标ID"` IndexCode string `description:"指标code"` } type UsdaFasIndexSource2EdbReq struct { EdbCode string EdbName string Frequency string Unit string ClassifyId int AdminId int AdminRealName string } func GetUsdaFasFrequencyByClassifyId(classifyId int) (items []*GlFrequency, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT frequency FROM base_from_usda_fas_index WHERE classify_id = ? ` sql += ` GROUP BY frequency ORDER BY frequency ASC ` _, err = o.Raw(sql, classifyId).QueryRows(&items) return }